diff --git a/.env.development b/.env.development new file mode 100644 index 000000000..c3a620cfe --- /dev/null +++ b/.env.development @@ -0,0 +1,3 @@ +NEXT_PUBLIC_BASE_URL=http://localost:3000 +NEXT_PUBLIC_API_BASE_URL=https://stage.dev.lubimovka.ru/api/v1/ +NEXT_PUBLIC_API_MOCKING=false diff --git a/.env.test b/.env.test new file mode 100644 index 000000000..e761126be --- /dev/null +++ b/.env.test @@ -0,0 +1 @@ +NEXT_PUBLIC_API_BASE_URL=http://localhost/ diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 000000000..5a31fd316 --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +**/__generated__/* diff --git a/.eslintrc.json b/.eslintrc.json index d631f5433..4ab85dd90 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,102 +1,14 @@ { "extends": [ + "./config/eslint/.eslintrc.js", "next/core-web-vitals" ], - "plugins": [ - "@typescript-eslint" - ], - "rules": { - "indent": ["error", 2], - - "quotes": ["error", "single"], - - "jsx-quotes": ["error", "prefer-double"], - - "semi": ["error", "always"], - - "semi-spacing": ["error"], - - "object-curly-spacing": ["error", "always"], - - "object-curly-newline": ["error", { - "multiline": true, - "consistent": true - }], - - "no-multiple-empty-lines": ["error", { - "max": 1, - "maxEOF": 1 - }], - - "operator-linebreak": ["error", "before"], - - "quote-props": ["error", "as-needed"], - - "no-trailing-spaces": ["error"], - - "no-mixed-operators": ["error"], - - "no-nested-ternary": ["warn"], - - "no-var": ["error"], - - "camelcase": ["warn"], - - "eol-last": ["error", "always"], - - "no-console": ["error"], - - "no-else-return": ["error"], - - "no-unreachable": ["error"], - - "react/jsx-indent": ["error", 2], - - "react/jsx-curly-spacing": ["error", { - "when": "never", - "attributes": { - "allowMultiline": false - }, - "children": true - }], - - "react/jsx-tag-spacing": ["error", { - "closingSlash": "never", - "beforeSelfClosing": "never", - "afterOpening": "never", - "beforeClosing": "never" - }], - - "react/jsx-first-prop-new-line": ["error", "multiline-multiprop"], - - "react/jsx-max-props-per-line": ["error", { - "maximum": 1, - "when": "multiline" - }], - - "react/jsx-wrap-multilines": ["error", { - "declaration": "parens-new-line", - "assignment": "parens-new-line", - "return": "parens-new-line", - "arrow": "parens-new-line", - "condition": "parens-new-line", - "logical": "parens-new-line", - "prop": "parens-new-line" - }], - - "react/jsx-closing-bracket-location": ["error", "line-aligned"], - - "react/jsx-one-expression-per-line": ["error"], - - "react/jsx-boolean-value": ["error", "never"], - - "react/self-closing-comp": ["error", { - "component": true, - "html": true - }], - - "react/no-array-index-key": ["warn"], - - "@typescript-eslint/no-unused-vars": ["error"] - } + "overrides": [ + { + "files": ["src/pages/**/*", "src/components/**/*.stories.*"], + "rules": { + "import/no-default-export": "off" + } + } + ] } diff --git a/.github/workflows/deploy-staging.yaml b/.github/workflows/deploy-staging.yaml index 5201c68dc..a3bbf97a3 100644 --- a/.github/workflows/deploy-staging.yaml +++ b/.github/workflows/deploy-staging.yaml @@ -1,64 +1,29 @@ -name: Build and Deploy +name: Deploy staging + concurrency: group: stage_deploy cancel-in-progress: true on: - push: - branches: - - develop + workflow_run: + workflows: [Publish staging Docker image] + types: [completed] env: - REGISTRY: ghcr.io - IMAGE_NAME: lubimovka_frontend DEPLOY_PATH: /LUBIMOVKA jobs: - build: - name: Build and publish + deployment: + name: Deployment runs-on: ubuntu-latest environment: stage_deploy - permissions: - contents: read - packages: write steps: - - uses: actions/checkout@v2 + - name: Check out the repo + uses: actions/checkout@v3 with: ref: develop - - uses: docker/login-action@v1 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: Set environment variables - run: | - echo REPOSITORY_OWNER=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV - - name: Build and publish to Github Packages Registry - uses: docker/build-push-action@v3 - with: - context: . - file: config/docker/Dockerfile - labels: runnumber=${GITHUB_RUN_ID} - push: true - build-args: | - BASE_URL=${{ secrets.STAGING_BASE_URL }} - API_BASE_URL=${{ secrets.STAGING_API_BASE_URL }} - tags: | - ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/${{ env.IMAGE_NAME }}:stage - ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/${{ env.IMAGE_NAME }}:latest - ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/${{ env.IMAGE_NAME }}:${{ github.sha }} - deploy: - name: Deploy package - runs-on: ubuntu-latest - environment: stage_deploy - needs: build - steps: - - uses: actions/checkout@v2 - with: - ref: develop - - name: Create ssh key - # (SSH_KNOWN_HOSTS=ssh-keyscan -H сервер, SSH_PRIVATE_KEY - ключ с ПК, которому разрешен вход) + - name: Create SSH key run: | mkdir -p ~/.ssh chmod 700 ~/.ssh @@ -66,10 +31,13 @@ jobs: chmod 644 ~/.ssh/known_hosts echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa + - name: Create application directory run: ssh ${{ secrets.USERNAME }}@${{ secrets.HOST }} mkdir -p ${{ env.DEPLOY_PATH }} + - name: Copy configuration run: scp -r config/docker/staging/* ${{ secrets.USERNAME }}@${{ secrets.HOST }}:${{ env.DEPLOY_PATH }}/stage + - name: Execute remote ssh commands uses: appleboy/ssh-action@master with: @@ -82,13 +50,7 @@ jobs: # Используем переменные окружения, сохраненные от CI/CD backend # Создание сети вынесено отдельно для возможности независимо перезапускать контейнеры (через external networks) - # docker network create stage_db_network || true docker network create stage_swag_network || true - # Установка приложения - frontend - cp -rf ${{ env.DEPLOY_PATH }}/stage/lubimovka-frontend.service /etc/systemd/system/lubimovka-frontend.service systemctl daemon-reload systemctl restart lubimovka-frontend.service - - # После установки удаляем файлы - rm ${{ env.DEPLOY_PATH }}/stage/lubimovka-frontend.service diff --git a/.github/workflows/docker-publish-production.yaml b/.github/workflows/docker-publish-production.yaml new file mode 100644 index 000000000..844c5f2c2 --- /dev/null +++ b/.github/workflows/docker-publish-production.yaml @@ -0,0 +1,63 @@ +name: Publish production Docker image + +concurrency: + group: prod_deploy + cancel-in-progress: true + +on: + pull_request: + branches: + - main + types: + - closed + workflow_dispatch: + inputs: + git-ref: + description: Git Ref (Optional) + required: false + +env: + REGISTRY: ghcr.io + IMAGE_NAME: lubimovka_frontend + +jobs: + push_to_registry: + name: Build and push Docker image + runs-on: ubuntu-latest + environment: production + permissions: + contents: read + packages: write + steps: + - name: Check out the repo + uses: actions/checkout@v3 + if: github.event.inputs.git-ref != '' + with: + ref: ${{ github.event.inputs.git-ref }} + + - name: Log in to Github Packages Registry + uses: docker/login-action@v1 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set environment variables + run: | + echo REPOSITORY_OWNER=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV + + - name: Build and publish to Github Packages Registry + uses: docker/build-push-action@v3 + with: + context: . + file: config/docker/Dockerfile + labels: runnumber=${GITHUB_RUN_ID} + push: true + build-args: | + BASE_URL=${{ secrets.BASE_URL }} + API_BASE_URL=${{ secrets.API_BASE_URL }} + GA_TRACKING_ID=${{ secrets.GA_TRACKING_ID }} + tags: | + ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/${{ env.IMAGE_NAME }}:production + ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/${{ env.IMAGE_NAME }}:latest + ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/${{ env.IMAGE_NAME }}:${{ github.sha }} diff --git a/.github/workflows/deploy-production.yaml b/.github/workflows/docker-publish-staging.yaml similarity index 69% rename from .github/workflows/deploy-production.yaml rename to .github/workflows/docker-publish-staging.yaml index 4e4cb5b0e..26be39790 100644 --- a/.github/workflows/deploy-production.yaml +++ b/.github/workflows/docker-publish-staging.yaml @@ -1,39 +1,40 @@ -name: Build and Deploy +name: Publish staging Docker image + concurrency: - group: prod_deploy + group: stage_deploy cancel-in-progress: true on: - pull_request: - branches: - - main - types: [closed] + push: + branches: [ develop ] env: REGISTRY: ghcr.io IMAGE_NAME: lubimovka_frontend - DEPLOY_PATH: /LUBIMOVKA jobs: - build: - name: Build and publish + push_to_registry: + name: Build and push Docker image runs-on: ubuntu-latest environment: stage_deploy permissions: contents: read packages: write steps: - - uses: actions/checkout@v2 - with: - ref: main - - uses: docker/login-action@v1 + - name: Check out the repo + uses: actions/checkout@v3 + + - name: Log in to Github Packages Registry + uses: docker/login-action@v1 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Set environment variables run: | echo REPOSITORY_OWNER=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV + - name: Build and publish to Github Packages Registry uses: docker/build-push-action@v3 with: @@ -42,10 +43,10 @@ jobs: labels: runnumber=${GITHUB_RUN_ID} push: true build-args: | - BASE_URL=${{ secrets.PRODUCTION_BASE_URL }} - API_BASE_URL=${{ secrets.PRODUCTION_API_BASE_URL }} - GA_TRACKING_ID=${{ secrets.GA_TRACKING_ID }} + BASE_URL=${{ secrets.STAGING_BASE_URL }} + API_BASE_URL=${{ secrets.STAGING_API_BASE_URL }} tags: | - ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/${{ env.IMAGE_NAME }}:production + ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/${{ env.IMAGE_NAME }}:stage ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/${{ env.IMAGE_NAME }}:latest ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER }}/${{ env.IMAGE_NAME }}:${{ github.sha }} + diff --git a/.github/workflows/node.js.yaml b/.github/workflows/node.js.yaml new file mode 100644 index 000000000..0e8675782 --- /dev/null +++ b/.github/workflows/node.js.yaml @@ -0,0 +1,46 @@ +# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs + +name: Node.js CI + +on: + push: + branches: [ develop ] + pull_request: + branches: [ develop ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [16.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v3 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - name: Install dependencies + run: npm ci + - run: npm run lint + - run: npm run build + env: + NODE_ENV: test + - name: Install Playwright Browsers + run: npx playwright install --with-deps + - name: Run Playwright tests + run: npx playwright test + env: + NODE_ENV: test + - uses: actions/upload-artifact@v3 + if: always() + with: + name: playwright-report + path: playwright-report/ + retention-days: 30 diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml deleted file mode 100644 index a3b46c028..000000000 --- a/.github/workflows/test.yaml +++ /dev/null @@ -1,30 +0,0 @@ -name: Lint and Test - -on: - push: - branches-ignore: - - 'main' - - 'develop' - -jobs: - test: - runs-on: ubuntu-latest - strategy: - matrix: - node-version: [14.x] - steps: - - name: Check out Git repository - uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - - name: Install project dependencies - run: npm ci - - name: Run linters - run: | - npm run lint:js - npm run lint:css - npm run type-check - - name: Run tests - run: npm run e2e diff --git a/.gitignore b/.gitignore index 67a0ad71d..6c97d09ba 100644 --- a/.gitignore +++ b/.gitignore @@ -4,8 +4,7 @@ storybook-static .next -.env -.env.* +.env*.local .stylelintcache .eslintcache @@ -18,3 +17,7 @@ storybook-static tsconfig.tsbuildinfo screenshots + +/test-results/ +/playwright-report/ +/playwright/.cache/ diff --git a/.lintstagedrc.js b/.lintstagedrc.js deleted file mode 100644 index 6d1e71a96..000000000 --- a/.lintstagedrc.js +++ /dev/null @@ -1,11 +0,0 @@ -const path = require('path'); - -const buildEslintCommand = (filenames) => - `next lint --file ${filenames - .map((f) => path.relative(process.cwd(), f)) - .join(' --file ')}`; - -module.exports = { - '*.css': 'stylelint **/*.css --cache --allow-empty-input --fix', - '*.{js,jsx,ts,tsx}': [buildEslintCommand], -} diff --git a/.storybook/next-image-stub.js b/.storybook/next-image-stub.js new file mode 100644 index 000000000..0961058f8 --- /dev/null +++ b/.storybook/next-image-stub.js @@ -0,0 +1,12 @@ +import * as NextImage from 'next/image'; + +const OriginalNextImage = NextImage.default; + +Object.defineProperty(NextImage, 'default', { + configurable: true, + value: (props) => typeof props.src === 'string' ? ( + + ) : ( + + ), +}); diff --git a/.storybook/preview.js b/.storybook/preview.js index e4accfd6f..cbf856bca 100644 --- a/.storybook/preview.js +++ b/.storybook/preview.js @@ -3,6 +3,8 @@ import '../src/shared/styles/fonts.css'; import '../src/shared/styles/palette.css'; import '../src/shared/styles/vars.css'; +import './next-image-stub'; + export const parameters = { actions: { argTypesRegex: "^on[A-Z].*" }, controls: { diff --git a/.stylelintrc.json b/.stylelintrc.json index d320177ef..51bf1a5e8 100644 --- a/.stylelintrc.json +++ b/.stylelintrc.json @@ -22,6 +22,13 @@ { "ignorePseudoClasses": ["export"] } - ] + ], + "value-keyword-case": [ + "lower", + { + "camelCaseSvgKeywords": true + } + ], + "selector-class-pattern": null } } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 100cfb40f..834866d1f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,7 +15,7 @@ Мы придерживаемся упрощенной модели ветвления [Git Flow](https://nvie.com/posts/a-successful-git-branching-model/). Для именования веток используется нотация: -```<тип>/<короткое-описание>```. +```<тип>-<короткое-описание>```. Допустимые типы: `feature`, `bugfix`, или `hotfix`. @@ -23,7 +23,7 @@ * `bugfix` для исправления бага * `hotfix` для срочного исправления бага в бою. Hotfix-ветки мерджатся в `main` -В имени ветви используются только тире, буквы в нижнем регистре и цифры, например `feature/event-card`, `bugfix/event-date`. +В имени ветви используются только тире, буквы в нижнем регистре и цифры, например `feature-event-card`, `bugfix-event-date`. ### Оформление кода @@ -78,7 +78,7 @@ ### Код-ревью -В процессе ревью участники проекта оставляют вопросы или замечания, на которые необходимо дать ответ в треде или внести изменения в код. Закрывать тред имеет право только его автор. Pull Request допускается к мерджу только в случае, если закрыты все обсуждения в нем. +В процессе ревью участники проекта оставляют вопросы или замечания, на которые необходимо дать ответ в треде и внести изменения в код, если требуется. Закрывать тред имеет право только его автор. Pull Request допускается к мерджу только в случае, если закрыты все обсуждения в нем. Если в процессе ревью возникает необходимость правок, ревьюер помечает Pull Request как черновик, что говорит о том, что он не готов к мерджу. После внесения требуемых изменений, исполнитель задачи убирает статус черновика, что означает, что PR готов к новому раунду ревью. diff --git a/README.md b/README.md index 503d68770..1ce2c4444 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,14 @@ cd lubimovka_frontend npm install ``` +### Настройка переменных окружения + +- `NEXT_PUBLIC_BASE_URL`; +- `NEXT_PUBLIC_API_BASE_URL`; +- `NEXT_PUBLIC_API_MOCKING` – в значении `enabled` включает моки; + +[Как добавить переменную окружения локально?](https://nextjs.org/docs/basic-features/environment-variables) + ### Запуск окружения разработки ```bash diff --git a/config/cypress/support/commands.d.ts b/config/cypress/support/commands.d.ts deleted file mode 100644 index 7a967122e..000000000 --- a/config/cypress/support/commands.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -/// - -declare namespace Cypress { - interface Chainable { - addServerSideStub(payload: any): Chainable - clearServerSideStubs(): Chainable - } -} diff --git a/config/cypress/support/commands.ts b/config/cypress/support/commands.ts deleted file mode 100644 index f00bf6292..000000000 --- a/config/cypress/support/commands.ts +++ /dev/null @@ -1,17 +0,0 @@ -/// - -beforeEach(() => { - cy.clearServerSideStubs(); -}); - -after(() => { - cy.clearServerSideStubs(); -}); - -Cypress.Commands.add('addServerSideStub', (payload) => { - cy.request('POST', '/__cypress_add_server_side_stub', payload); -}); - -Cypress.Commands.add('clearServerSideStubs', () => { - cy.request('/__cypress_clear_server_side_stubs'); -}); diff --git a/config/cypress/support/index.ts b/config/cypress/support/index.ts deleted file mode 100644 index 1221b17e0..000000000 --- a/config/cypress/support/index.ts +++ /dev/null @@ -1 +0,0 @@ -import './commands'; diff --git a/config/docker/staging/lubimovka-frontend.service b/config/docker/staging/lubimovka-frontend.service deleted file mode 100644 index f7bf9ad7c..000000000 --- a/config/docker/staging/lubimovka-frontend.service +++ /dev/null @@ -1,26 +0,0 @@ -[Unit] -Description=lubimovka-frontend -Requires=docker.service -After=docker.service - -[Service] -Restart=always -RestartSec=5 -TimeoutStartSec=1200 -User=root - -WorkingDirectory=/LUBIMOVKA/stage/ - -# Remove old containers and networks -ExecStartPre=docker-compose -f lubimovka_frontend_stage_deploy.yml --env-file /LUBIMOVKA/stage/.github_vars pull swag -ExecStartPre=docker-compose -f lubimovka_frontend_stage_deploy.yml --env-file /LUBIMOVKA/stage/.github_vars pull frontend_stage -ExecStartPre=docker-compose -f lubimovka_frontend_stage_deploy.yml --env-file /LUBIMOVKA/stage/.github_vars down - -# Compose up -ExecStart=docker-compose -f lubimovka_frontend_stage_deploy.yml --env-file /LUBIMOVKA/stage/.github_vars up - -# Compose down -ExecStop=docker-compose -f lubimovka_frontend_stage_deploy.yml --env-file /LUBIMOVKA/stage/.github_vars down - -[Install] -WantedBy=multi-user.target diff --git a/config/vars.js b/config/env.js similarity index 77% rename from config/vars.js rename to config/env.js index 04ad79e08..acb6689ce 100644 --- a/config/vars.js +++ b/config/env.js @@ -1,7 +1,7 @@ const environment = process.env.NODE_ENV || 'development'; const baseUrl = process.env.NEXT_PUBLIC_BASE_URL || ''; const apiBaseUrl = process.env.NEXT_PUBLIC_API_BASE_URL || ''; -const googleAnalyticsTrackingId = process.env.NEXT_PUBLIC_GA_TRACKING_ID; +const googleAnalyticsTrackingId = process.env.NEXT_PUBLIC_GA_TRACKING_ID || ''; module.exports = { environment, diff --git a/config/eslint/.eslintrc.js b/config/eslint/.eslintrc.js new file mode 100644 index 000000000..588fa0814 --- /dev/null +++ b/config/eslint/.eslintrc.js @@ -0,0 +1,10 @@ +module.exports = { + extends: [ + ...[ + './rules/base', + './rules/typescript', + './rules/import', + './rules/react', + ].map(require.resolve), + ], +}; diff --git a/config/eslint/rules/base.js b/config/eslint/rules/base.js new file mode 100644 index 000000000..2834b0e1c --- /dev/null +++ b/config/eslint/rules/base.js @@ -0,0 +1,59 @@ +module.exports = { + extends: ['eslint:recommended'], + rules: { + indent: ['error', 2], + quotes: [ + 'error', + 'single', + { + allowTemplateLiterals: false, + avoidEscape: true, + }, + ], + semi: ['error', 'always'], + 'semi-spacing': 'error', + 'object-curly-spacing': ['error', 'always'], + 'object-curly-newline': ['error', { + multiline: true, + consistent: true + }], + 'no-multiple-empty-lines': ['error', { + max: 1, + maxEOF: 1 + }], + 'operator-linebreak': ['error', 'before'], + 'quote-props': ['error', 'as-needed'], + 'no-trailing-spaces': 'warn', + 'no-multi-spaces': 'error', + 'no-mixed-operators': 'error', + 'no-nested-ternary': ['warn'], + 'no-var': 'error', + camelcase: 'warn', + 'eol-last': ['error', 'always'], + 'no-console': 'error', + 'no-else-return': 'error', + 'no-unreachable': 'error', + 'import/no-cycle': 'error', + 'dot-notation': 'error', + 'no-floating-decimal': 'error', + 'no-sequences': 'error', + 'array-bracket-spacing': 'error', + 'computed-property-spacing': ['error', 'never'], + curly: 'error', + 'no-lonely-if': 'error', + 'no-unneeded-ternary': 'error', + 'one-var-declaration-per-line': 'error', + 'array-callback-return': 'off', + 'prefer-const': 'error', + 'no-unused-expressions': 'off', + 'no-prototype-builtins': 'off', + 'space-in-parens': ['error', 'never'], + 'space-before-function-paren': ['error', { + anonymous: 'always', named: 'never', + }], + 'newline-before-return': 'error', + 'keyword-spacing': ['error'], + 'space-before-blocks': ['error', 'always'], + 'brace-style': 'error', + }, +}; diff --git a/config/eslint/rules/import.js b/config/eslint/rules/import.js new file mode 100644 index 000000000..9d023322e --- /dev/null +++ b/config/eslint/rules/import.js @@ -0,0 +1,39 @@ +module.exports = { + plugins: ['import'], + extends: [ + 'plugin:import/recommended', + 'plugin:import/typescript', + ], + rules: { + 'import/no-default-export': 'warn', + 'import/no-unresolved': 'error', + 'import/prefer-default-export': 'off', + 'import/newline-after-import': 'error', + 'import/order': [ + 'error', + { + pathGroups: [ + { + pattern: '{.,..}/**/*.css', + group: 'object', + position: 'after' + }, + ], + groups: [ + 'builtin', + 'external', + 'internal', + ['sibling', 'parent'], + 'index', + 'type', + 'unknown', + ], + 'newlines-between': 'always', + alphabetize: { + order: 'asc', + caseInsensitive: true, + }, + }, + ], + }, +}; diff --git a/config/eslint/rules/react.js b/config/eslint/rules/react.js new file mode 100644 index 000000000..e8401e59e --- /dev/null +++ b/config/eslint/rules/react.js @@ -0,0 +1,51 @@ +module.exports = { + extends: [ + 'plugin:react/recommended', + 'plugin:react-hooks/recommended', + ], + rules: { + 'react/jsx-indent': ['error', 2], + 'react/jsx-curly-spacing': ['error', { + when: 'never', + attributes: { + allowMultiline: false + }, + children: true + }], + 'react/jsx-tag-spacing': ['error', { + closingSlash: 'never', + beforeSelfClosing: 'never', + afterOpening: 'never', + beforeClosing: 'never' + }], + 'react/jsx-props-no-multi-spaces': 'error', + 'react/jsx-first-prop-new-line': ['error', 'multiline-multiprop'], + 'react/jsx-max-props-per-line': ['error', { + maximum: 1, + when: 'multiline' + }], + 'react/jsx-wrap-multilines': ['error', { + declaration: 'parens-new-line', + assignment: 'parens-new-line', + return: 'parens-new-line', + arrow: 'parens-new-line', + condition: 'parens-new-line', + logical: 'parens-new-line', + prop: 'parens-new-line' + }], + 'react/jsx-closing-bracket-location': ['error', 'line-aligned'], + 'react/jsx-one-expression-per-line': 'error', + 'react/jsx-boolean-value': ['error', 'never'], + 'react/jsx-no-useless-fragment': ['error'], + 'react/jsx-newline': ['error', { + prevent: true + }], + 'react/self-closing-comp': ['error', { + component: true, + html: true + }], + 'react/no-array-index-key': 'warn', + 'react/jsx-handler-names': 'warn', + }, +}; + diff --git a/config/eslint/rules/typescript.js b/config/eslint/rules/typescript.js new file mode 100644 index 000000000..9d8933727 --- /dev/null +++ b/config/eslint/rules/typescript.js @@ -0,0 +1,28 @@ +module.exports = { + plugins: ['@typescript-eslint'], + extends: [ + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + ], + rules: { + '@typescript-eslint/no-explicit-any': 'error', + '@typescript-eslint/no-unused-vars': 'error', + '@typescript-eslint/ban-ts-comment': ['error', { + 'ts-expect-error': 'allow-with-description', + 'ts-ignore': 'allow-with-description', + 'ts-nocheck': 'allow-with-description', + 'ts-check': 'allow-with-description' + }], + '@typescript-eslint/consistent-type-imports': 'warn', + '@typescript-eslint/member-delimiter-style': ['error', { + multiline: { + delimiter: 'none', + requireLast: true, + }, + singleline: { + delimiter: 'semi', + requireLast: false, + }, + }] + }, +}; diff --git a/cypress.config.ts b/cypress.config.ts index 77d586982..6d9695fb9 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -2,13 +2,10 @@ import { defineConfig } from 'cypress'; export default defineConfig({ e2e: { - specPattern: 'tests/e2e/**/*.cy.{js,jsx,ts,tsx}', - baseUrl: 'http://localhost:3002', - supportFile: 'config/cypress/support/index.ts', + baseUrl: 'http://localhost:3000', + // eslint-disable-next-line @typescript-eslint/no-unused-vars + setupNodeEvents(on, config) { + // implement node event listeners here + }, }, - fixturesFolder: 'tests/e2e/fixtures', - viewportHeight: 768, - viewportWidth: 1024, - video: false, - screenshotsFolder: 'screenshots' }); diff --git a/cypress/e2e/city-input.cy.ts b/cypress/e2e/city-input.cy.ts new file mode 100644 index 000000000..9c429c73a --- /dev/null +++ b/cypress/e2e/city-input.cy.ts @@ -0,0 +1,38 @@ +import { classes, errorMessages } from '../fixtures/test-constants.json'; + +describe('form', ()=> { + + beforeEach(()=>{ + cy.visit('/form'); + }); + + it('Checks whether the error message appears when the field contains less than 2 symbols', ()=>{ + cy.get(classes.input.city).type('x'.repeat(1)); + + cy.get(classes.error) + .should('exist') + .contains(errorMessages.minLengh); + }); + + it('Checks whether the error message is hidden when the field contains 2 symbols', ()=>{ + cy.get(classes.input.city).type('x'.repeat(2)); + cy.get(classes.error).should('not.exist'); + }); + + it('Checks whether the error message is hidden when the field contains 50 symbols', ()=>{ + cy.get(classes.input.city) + .type('x'.repeat(50)); + + cy.get(classes.error).should('not.exist'); + }); + + it('Checks whether the error message appears when the field contains more than 50 symbols', ()=>{ + cy.get(classes.input.city) + .type('x'.repeat(51)); + + cy.get(classes.error) + .should('exist') + .contains(errorMessages.maxLengthFifty); + }); + +}); diff --git a/cypress/e2e/email-input.cy.ts b/cypress/e2e/email-input.cy.ts new file mode 100644 index 000000000..85b034659 --- /dev/null +++ b/cypress/e2e/email-input.cy.ts @@ -0,0 +1,40 @@ +import { classes, errorMessages } from '../fixtures/test-constants.json'; + +const mockEmails = { + correct: 'email@mail.com', + noDog: 'email.mail', + noDot: 'email@mail' +}; + +describe('form', ()=> { + + beforeEach(()=>{ + cy.visit('/form'); + }); + + it('Checks whether the error message appears when the field remaines empty', ()=>{ + cy.get(classes.input.email).type(mockEmails.correct); + cy.get(classes.input.email).clear(); + + cy.get(classes.error) + .should('exist') + .contains(errorMessages.empty); + }); + + it('Checks whether the error message appears when email has no @', ()=>{ + cy.get(classes.input.email).type(mockEmails.noDog); + + cy.get(classes.error) + .should('exist') + .contains(errorMessages.incorrectEmail); + }); + + it('Checks whether the error message appears when email has no .', ()=>{ + cy.get(classes.input.email).type(mockEmails.noDot); + + cy.get(classes.error) + .should('exist') + .contains(errorMessages.incorrectEmail); + }); + +}); diff --git a/cypress/e2e/first-name-input.cy.ts b/cypress/e2e/first-name-input.cy.ts new file mode 100644 index 000000000..67c4c0949 --- /dev/null +++ b/cypress/e2e/first-name-input.cy.ts @@ -0,0 +1,47 @@ +import { classes, errorMessages } from '../fixtures/test-constants.json'; + +describe('form', ()=> { + + beforeEach(()=>{ + cy.visit('/form'); + }); + + it('Checks whether the error message appears when the field remaines empty', ()=>{ + cy.get(classes.input.name).type('x'.repeat(1)); + cy.get(classes.input.name).clear(); + + cy.get(classes.error) + .should('exist') + .contains(errorMessages.empty); + }); + + it('Checks whether the error message appears when the field contains less than 2 symbols', ()=>{ + cy.get(classes.input.name).type('x'.repeat(1)); + + cy.get(classes.error) + .should('exist') + .contains(errorMessages.minLengh); + }); + + it('Checks whether the error message is hidden when the field contains 2 symbols', ()=>{ + cy.get(classes.input.name).type('x'.repeat(2)); + cy.get(classes.error).should('not.exist'); + }); + + it('Checks whether the error message is hidden when the field contains 50 symbols', ()=>{ + cy.get(classes.input.name) + .type('x'.repeat(50)); + + cy.get(classes.error).should('not.exist'); + }); + + it('Checks whether the error message appears when the field contains more than 50 symbols', ()=>{ + cy.get(classes.input.name) + .type('x'.repeat(51)); + + cy.get(classes.error) + .should('exist') + .contains(errorMessages.maxLengthFifty); + }); + +}); diff --git a/cypress/e2e/last-name-input.cy.ts b/cypress/e2e/last-name-input.cy.ts new file mode 100644 index 000000000..4f3b54ee8 --- /dev/null +++ b/cypress/e2e/last-name-input.cy.ts @@ -0,0 +1,41 @@ +import { classes, errorMessages } from '../fixtures/test-constants.json'; + +describe('form', ()=> { + + beforeEach(()=>{ + cy.visit('/form'); + }); + + it('Checks whether the error message appears when the field remaines empty', ()=>{ + cy.get(classes.input.surname).type('x'.repeat(1)); + cy.get(classes.input.surname).clear(); + cy.get(classes.error) + .should('exist') + .contains(errorMessages.empty); + }); + + it('Checks whether the error message appears when the field contains less than 2 symbols', ()=>{ + cy.get(classes.input.surname).type('x'.repeat(1)); + cy.get(classes.error) + .should('exist') + .contains(errorMessages.minLengh); + }); + + it('Checks whether the error message is hidden when the field contains 2 symbols', ()=>{ + cy.get(classes.input.surname).type('x'.repeat(2)); + cy.get(classes.error).should('not.exist'); + }); + + it('Checks whether the error message is hidden when the field contains 50 symbols', ()=>{ + cy.get(classes.input.surname).type('x'.repeat(50)); + cy.get(classes.error).should('not.exist'); + }); + + it('Checks whether the error message appears when the field contains more than 50 symbols', ()=>{ + cy.get(classes.input.surname).type('x'.repeat(51)); + cy.get(classes.error) + .should('exist') + .contains(errorMessages.maxLengthFifty); + }); + +}); diff --git a/cypress/e2e/phone-input.cy.ts b/cypress/e2e/phone-input.cy.ts new file mode 100644 index 000000000..dcaf12a2c --- /dev/null +++ b/cypress/e2e/phone-input.cy.ts @@ -0,0 +1,31 @@ +import { classes, errorMessages } from '../fixtures/test-constants.json'; + +const mockPhones = { + correct: '9999999999', + eigthDigits: '99999999', +}; + +describe('form', ()=> { + + beforeEach(()=>{ + cy.visit('/form'); + }); + + it('Checks whether the error message appears when the field remaines empty', ()=>{ + cy.get(classes.input.phone).type(mockPhones.correct); + cy.get(classes.input.phone).clear(); + + cy.get(classes.error) + .should('exist') + .contains(errorMessages.empty); + }); + + it('Checks whether the error message appears when the field contains insufficient number of digits', ()=>{ + cy.get(classes.input.phone).type(mockPhones.eigthDigits); + + cy.get(classes.error) + .should('exist') + .contains(errorMessages.incorrectPhone); + }); + +}); diff --git a/cypress/e2e/title-input.cy.ts b/cypress/e2e/title-input.cy.ts new file mode 100644 index 000000000..bfb243d26 --- /dev/null +++ b/cypress/e2e/title-input.cy.ts @@ -0,0 +1,41 @@ +import { classes, errorMessages } from '../fixtures/test-constants.json'; + +describe('form', ()=> { + + beforeEach(()=>{ + cy.visit('/form'); + }); + + it('Checks whether the error message appears when the field remaines empty', ()=>{ + cy.get(classes.input.title).type('x'.repeat(1)); + cy.get(classes.input.title).clear(); + + cy.get(classes.error) + .should('exist') + .contains(errorMessages.empty); + }); + + it('Checks whether the error message is hidden when the field contains 1 symbol', ()=>{ + cy.get(classes.input.title).type('x'.repeat(1)); + + cy.get(classes.error) + .should('not.exist'); + }); + + it('Checks whether the error message is hidden when the field contains 200 symbols', ()=>{ + cy.get(classes.input.title) + .type('x'.repeat(200)); + + cy.get(classes.error).should('not.exist'); + }); + + it('Checks whether the error message appears when the field contains more than 200 symbols', ()=>{ + cy.get(classes.input.title) + .type('x'.repeat(201)); + + cy.get(classes.error) + .should('exist') + .contains(errorMessages.maxLengthTwoHundred); + }); + +}); diff --git a/cypress/e2e/year-birth-input.cy.ts b/cypress/e2e/year-birth-input.cy.ts new file mode 100644 index 000000000..6311e3585 --- /dev/null +++ b/cypress/e2e/year-birth-input.cy.ts @@ -0,0 +1,34 @@ +import { classes, errorMessages } from '../fixtures/test-constants.json'; + +const MOCK_CURRENT_YEAR = new Date().getFullYear(); +const maxYearMessage = `Убедитесь, что это значение меньше либо равно ${MOCK_CURRENT_YEAR}`; + +describe('form', ()=> { + + beforeEach(()=>{ + cy.visit('/form'); + }); + + it('Checks whether the error message appears when the field contains 1899', ()=>{ + cy.get(classes.input.yearBirth).type('1899'); + + cy.get(classes.error) + .should('exist') + .contains(errorMessages.minYear); + }); + + it('Checks whether the error message is hidden when the field contains current year', ()=>{ + cy.get(classes.input.yearBirth).type(`${MOCK_CURRENT_YEAR}`); + + cy.get(classes.error).should('not.exist'); + }); + + it('Checks whether the error message appears when the field contains post-current year', ()=>{ + cy.get(classes.input.yearBirth).type(`${MOCK_CURRENT_YEAR + 1}`); + + cy.get(classes.error) + .should('exist') + .contains(maxYearMessage); + }); + +}); diff --git a/cypress/e2e/year-play-input.cy.ts b/cypress/e2e/year-play-input.cy.ts new file mode 100644 index 000000000..92b4730ba --- /dev/null +++ b/cypress/e2e/year-play-input.cy.ts @@ -0,0 +1,34 @@ +import { classes, errorMessages } from '../fixtures/test-constants.json'; + +const MOCK_CURRENT_YEAR = new Date().getFullYear(); +const maxYearMessage = `Убедитесь, что это значение меньше либо равно ${MOCK_CURRENT_YEAR}`; + +describe('form', ()=> { + + beforeEach(()=>{ + cy.visit('/form'); + }); + + it('Checks whether the error message appears when the field contains 1899', ()=>{ + cy.get(classes.input.yearPlay).type('1899'); + + cy.get(classes.error) + .should('exist') + .contains(errorMessages.minYear); + }); + + it('Checks whether the error message is hidden when the field contains current year', ()=>{ + cy.get(classes.input.yearPlay).type(`${MOCK_CURRENT_YEAR}`); + + cy.get(classes.error).should('not.exist'); + }); + + it('Checks whether the error message appears when the field contains post-current year', ()=>{ + cy.get(classes.input.yearPlay).type(`${MOCK_CURRENT_YEAR + 1}`); + + cy.get(classes.error) + .should('exist') + .contains(maxYearMessage); + }); + +}); diff --git a/cypress/fixtures/test-constants.json b/cypress/fixtures/test-constants.json new file mode 100644 index 000000000..c8e687f27 --- /dev/null +++ b/cypress/fixtures/test-constants.json @@ -0,0 +1,25 @@ +{ + "errorMessages": { + "empty": "Это поле не может быть пустым", + "minLengh": "Это поле должно содержать минимум 2 символа", + "maxLengthFifty": "Это поле должно содержать максимум 50 символов", + "maxLengthTwoHundred": "Это поле должно содержать максимум 200 символов", + "minYear": "Убедитесь, что это значение больше либо равно 1900", + "incorrectPhone": "Некорректный номер телефона", + "incorrectEmail": "Введите правильный адрес электронной почты", + "noFile": "Файл обязателен" + }, + "classes": { + "input" : { + "name": ":nth-child(1) > .form-fieldset_content__6DaOu > :nth-child(1) > label > .text-input_input__XcJF1", + "surname": ":nth-child(1) > .form-fieldset_content__6DaOu > :nth-child(2) > label > .text-input_input__XcJF1", + "city": ":nth-child(4) > label > .text-input_input__XcJF1", + "yearBirth": ":nth-child(3) > label > .text-input_input__XcJF1", + "yearPlay": ":nth-child(2) > .form-fieldset_content__6DaOu > :nth-child(2) > label > .text-input_input__XcJF1", + "title": ":nth-child(2) > .form-fieldset_content__6DaOu > :nth-child(1) > label > .text-input_input__XcJF1", + "email": ":nth-child(6) > label > .text-input_input__XcJF1", + "phone": ":nth-child(5) > label > .text-input_input__XcJF1" + }, + "error" : ".text-input_error__7FtZe" + } +} \ No newline at end of file diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts new file mode 100644 index 000000000..d8e75f68e --- /dev/null +++ b/cypress/support/commands.ts @@ -0,0 +1,38 @@ +/* eslint-disable eol-last */ +/// +// *********************************************** +// This example commands.ts shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) +// +// declare global { +// namespace Cypress { +// interface Chainable { +// login(email: string, password: string): Chainable +// drag(subject: string, options?: Partial): Chainable +// dismiss(subject: string, options?: Partial): Chainable +// visit(originalFn: CommandOriginalFn, url: string, options: Partial): Chainable +// } +// } +// } \ No newline at end of file diff --git a/cypress/support/e2e.ts b/cypress/support/e2e.ts new file mode 100644 index 000000000..befcac9f5 --- /dev/null +++ b/cypress/support/e2e.ts @@ -0,0 +1,22 @@ +/* eslint-disable semi */ +/* eslint-disable eol-last */ +// *********************************************************** +// This example support/e2e.ts is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands' + +// Alternatively you can use CommonJS syntax: +// require('./commands') \ No newline at end of file diff --git a/tests/e2e/fixtures/main.json b/e2e/fixtures/main.json similarity index 61% rename from tests/e2e/fixtures/main.json rename to e2e/fixtures/main.json index bf13f660b..333b1e0c6 100644 --- a/tests/e2e/fixtures/main.json +++ b/e2e/fixtures/main.json @@ -57,168 +57,45 @@ "description": "На все читки и мастер-классы фестиваля вход свободный по предварительной регистрации.", "items": [ { - "id": 21, - "type": "READING", - "event_body": { - "id": 6, - "name": "Премьера", - "description": "Заработать ломать неудобно художественный пасть зачем плод. Рабочий выбирать товар палка потянуться. Расстройство сравнение угроза что снимать.", - "team": [ - { - "name": "Драматург", - "persons": [ - "Калинина Оксана" - ] - }, - { - "name": "Режиссёр", - "persons": [ - "Зайцева Евгения" - ] - } - ], - "project_title": null - }, - "date_time": "2022-06-22T12:25:23", - "paid": false, - "url": "http://www.santana.org/", - "place": "ст. Миллерово, пр. Пушкина, д. 3/6, 013271" - }, - { - "id": 26, - "type": "PERFORMANCE", - "event_body": { - "id": 4, - "name": "Вообще засунуть мусор умолять. Сынок носок запеть кузнец рабочий жить прошептать.", - "description": "Четыре собеседник костер перебивать райком решение. Порода триста жидкий горький стакан посидеть. Поезд перебивать мотоцикл пропасть.", - "team": [ - { - "name": "Драматург", - "persons": [ - "Куликова Силантий" - ] - }, - { - "name": "Режиссёр", - "persons": [ - "Шашков Самсон" - ] - } - ], - "image": "https://stage.dev.lubimovka.ru/media/images/afisha/performances/example_Zmmzxr3.jpg", - "project_title": null - }, - "date_time": "2022-07-03T05:40:33", - "paid": true, - "url": "https://patterson.net/", - "place": "д. Ступино, алл. М.Горького, д. 3 к. 991, 806314" - }, - { - "id": 27, - "type": "MASTERCLASS", - "event_body": { - "id": 11, - "name": "Возможно", - "description": "Изредка функция аж успокоиться дошлый применяться о новый. Решетка даль решетка одиннадцать прелесть запретить вариант некоторый. Лапа возбуждение эффект призыв.", - "team": [ - { - "name": "Ведущий", - "persons": [ - "Горшкова Пахом" - ] - } - ], - "project_title": null - }, - "date_time": "2022-08-01T20:22:05", - "paid": true, - "url": "http://woods-gordon.com/", - "place": "к. Кизел, наб. Заозерная, д. 2/2, 741841" - }, - { - "id": 14, - "type": "READING", - "event_body": { - "id": 2, - "name": "Конструкция", - "description": "Падаль коробка зарплата избегать задрать. Набор более пропаганда да блин жидкий.", - "team": [ - { - "name": "Драматург", - "persons": [ - "Родионова Вячеслав" - ] - }, - { - "name": "Режиссёр", - "persons": [ - "Муравьева Сидор" - ] - } - ], - "project_title": null - }, - "date_time": "2022-08-08T14:32:51", - "paid": false, - "url": "https://www.scott.net/", - "place": "ст. Ноябрьск, пер. Микрорайон, д. 73, 598384" - }, - { - "id": 4, - "type": "PERFORMANCE", - "event_body": { - "id": 2, - "name": "Факультет прежний новый строительство демократия пространство. Инвалид очко граница запретить неправда.Природа остановить академик командующий.", - "description": "Мгновение инструкция присесть уронить. Пропаганда рис необычный инвалид вскакивать смеяться зато.", - "team": [ - { - "name": "Драматург", - "persons": [ - "Комиссарова Гурий" - ] - }, - { - "name": "Режиссёр", - "persons": [ - "Беспалов Синклитикия" - ] - } - ], - "image": "https://stage.dev.lubimovka.ru/media/images/afisha/performances/example_h4sDfgx.jpg", - "project_title": null - }, - "date_time": "2022-08-11T18:56:47", - "paid": true, - "url": "https://www.frey.com/", - "place": "с. Камышин, наб. Волжская, д. 6, 730974" - }, - { - "id": 30, - "type": "READING", - "event_body": { - "id": 19, - "name": "Сынок", - "description": "Место зато слишком мрачно. Юный разводить рот хотеть потрясти вскакивать вздрогнуть.\nРазвернуться недостаток факультет изба команда голубчик неожиданно кидать. Ленинград скрытый издали тюрьма.", - "team": [ - { - "name": "Драматург", - "persons": [ - "Коновалов Доброслав" - ] - }, - { - "name": "Режиссёр", - "persons": [ - "Комаров Мирослав" - ] - } - ], - "project_title": null - }, - "date_time": "2022-08-26T22:05:19", - "paid": false, - "url": "http://green-dunn.com/", - "place": "д. Камышлов, алл. Кленовая, д. 68 к. 91, 326787" + "id": 32, + "title": "Запретить", + "type": "Специальное событие", + "description": "Коричневый роса дьявол пастух указанный процесс важный. Наткнуться дьявол волк способ рай. Бабочка палец изба порода промолчать что спорт.", + "image": "https://stage.dev.lubimovka.ru/media/images/afisha/masterclasss/1.jpg", + "date_time": "2023-10-07T21:00:00", + "location": "", + "action_url": "http://robinson.net/", + "action_text": "Трансляция", + "opening_date_time": "2023-10-06T12:00:00", + "performance_id": null, + "team": [] + }, + { + "id": 37, + "title": "Пасть бетонный конструкция передо голубчик слать советовать. Пламя радость банк проход около термин успокоиться наслаждение.", + "type": "Спектакль", + "description": "Дальний похороны покинуть командование дыхание валюта лапа. Доставать кожа о.", + "image": "https://stage.dev.lubimovka.ru/media/images/afisha/performances/example_B1mUBP6.jpg", + "date_time": "2023-10-19T22:00:00", + "location": null, + "action_url": "https://stage.dev.lubimovka.ru/admin/afisha/event/37/change/?_changelist_filters=q%3D%25D0%25B3%25D0%25BE%25D1%2581%25D0%25BF", + "action_text": "Билеты", + "opening_date_time": "2023-10-18T12:00:00", + "performance_id": 9, + "team": [ + { + "name": "Режиссёр", + "persons": [ + "Горбунова Измаил" + ] + }, + { + "name": "Драматург", + "persons": [ + "Николаев Александра" + ] + } + ] } ] }, diff --git a/e2e/setup-server.ts b/e2e/setup-server.ts new file mode 100644 index 000000000..fa61f2b89 --- /dev/null +++ b/e2e/setup-server.ts @@ -0,0 +1,52 @@ + +import { createServer } from 'http'; +import { parse } from 'url'; + +import { setupServer } from 'msw/node'; +import next from 'next'; + +import type { Server } from 'http'; +import type { SetupServerApi } from 'msw/node'; +import type { AddressInfo } from 'net'; + +let server: Server; +let msw: SetupServerApi; + +export const bootstrap = () => new Promise<{ + mockServer: SetupServerApi + baseUrl: string +}>((resolve) => { + msw = setupServer(); + server = createServer(); + + server.on('listening', () => { + const port = (server.address() as AddressInfo).port; + + const app = next({ + dev: !process.env.CI, + port, + }); + const handle = app.getRequestHandler(); + + app.prepare().then(() => { + server.prependListener('request', (req, res) => { + const parsedUrl = parse(req.url!, true); + + handle(req, res, parsedUrl); + }); + + resolve({ + mockServer: msw, + baseUrl: `http://localhost:${port}`, + }); + }); + }); + + msw.listen(); + server.listen(); +}); + +export const teardown = () => { + msw.close(); + server.close(); +}; diff --git a/e2e/smoke.spec.ts b/e2e/smoke.spec.ts new file mode 100644 index 000000000..7f96b8c56 --- /dev/null +++ b/e2e/smoke.spec.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ + +import { test, expect } from '@playwright/test'; +import { rest } from 'msw'; + +import { bootstrap, teardown } from './setup-server'; + +test.describe('smoke', () => { + let mockServer; + let baseUrl; + + test.beforeAll(async () => { + ({ mockServer, baseUrl } = await bootstrap()); + }); + + test.afterEach(async () => { + mockServer.resetHandlers(); + }); + + test.afterAll(teardown); + + test('отображается главная', async ({ page }) => { + mockServer.use( + rest.get( + `${process.env.NEXT_PUBLIC_API_BASE_URL}main/`, + (req, res, ctx) => res(ctx.status(200), ctx.json(require('./fixtures/main.json'))), + ) + ); + + await page.goto(baseUrl); + + await expect(page).toHaveTitle(/Главная - Любимовка/); + await expect(page.getByRole('heading', { level: 1 })).toHaveText('Открыт прием пьес на фестиваль 2021 года'); + }); +}); diff --git a/lefthook.yml b/lefthook.yml new file mode 100644 index 000000000..eac821fca --- /dev/null +++ b/lefthook.yml @@ -0,0 +1,14 @@ +pre-push: + commands: + type-check: + run: npm run type-check + +pre-commit: + parallel: true + commands: + eslint: + glob: "*.{js,ts,jsx,tsx}" + run: npx eslint {staged_files} + stylelint: + glob: "*.css" + run: npx stylelint {staged_files} diff --git a/next.config.js b/next.config.js index be894c2ff..af382ea40 100644 --- a/next.config.js +++ b/next.config.js @@ -1,6 +1,10 @@ -const { apiBaseUrl } = require('./config/vars'); +const { apiBaseUrl, environment } = require('./config/env'); -module.exports = { +const withBundleAnalyzer = require('@next/bundle-analyzer')({ + enabled: process.env.ANALYZE === 'true', +}); + +const config = { webpack(config) { config.module.rules.push({ test: /\.svg$/, @@ -27,11 +31,13 @@ module.exports = { '2022.lubimovka.ru', 'stage.dev.lubimovka.ru', 'test.dev.lubimovka.ru', + ...environment === 'development' ? ['source.unsplash.com'] : [], ], }, experimental: { scrollRestoration: true, outputStandalone: true, + esmExternals: false, }, async rewrites() { return { @@ -43,4 +49,18 @@ module.exports = { ], }; }, + async redirects() { + return [ + { + source: '/events/:path*', + destination: '/schedule/:path*', + permanent: true, + }, + ]; + }, + eslint: { + dirs: ['src'], + }, }; + +module.exports = withBundleAnalyzer(config); diff --git a/ops/e2e-run-tests/index.js b/ops/e2e-run-tests/index.js deleted file mode 100644 index b1f81858c..000000000 --- a/ops/e2e-run-tests/index.js +++ /dev/null @@ -1,49 +0,0 @@ -const cypress = require('cypress'); -const express = require('express'); -const next = require('next'); - -const { cypressServerSideStubsMiddleware } = require('./middlewares/cypress-server-side-stubs'); -const { environment } = require('../../config/vars'); -const { log } = console; - -const hostname = 'localhost'; -const port = '3002'; - -const app = next({ - dev: environment === 'development', - hostname, - port, -}); -const handle = app.getRequestHandler(); - -app - .prepare() - .then(() => { - const server = express(); - - server.use(cypressServerSideStubsMiddleware()); - - server.all('*', (request, response) => { - return handle(request, response); - }); - - const instance = server.listen(port, async (error) => { - if (error) { - throw error; - } - - log(`Testing server is ready on http://${hostname}:${port}`); - - const result = await cypress.run(); - - instance.close(() => { - if (result.failures) { - log('Could not execute tests'); - log(result.message); - process.exit(result.failures); - } - - process.exit(result.totalFailed); - }); - }); - }); diff --git a/ops/e2e-run-tests/middlewares/cypress-server-side-stubs.js b/ops/e2e-run-tests/middlewares/cypress-server-side-stubs.js deleted file mode 100644 index 92204f3d6..000000000 --- a/ops/e2e-run-tests/middlewares/cypress-server-side-stubs.js +++ /dev/null @@ -1,47 +0,0 @@ -const nock = require('nock'); -const connect = require('connect'); - -const { apiBaseUrl } = require('../../../config/vars'); - -const cypressServerSideStubsMiddleware = () => { - const middleware = connect(); - const scope = nock(apiBaseUrl); - - const addServerSideStub = (request, response) => { - const chunks = []; - - request.on('data', (chunk) => { - chunks.push(chunk); - }); - - request.on('end', () => { - const { - method, - path, - statusCode, - body, - } = JSON.parse(Buffer.concat(chunks).toString()); - - scope[method.toLowerCase()](path).reply(statusCode, body); - }); - response.statusCode = 200; - response.end(); - }; - - const clearServerSideStubs = (request, response) => { - nock.restore(); - nock.cleanAll(); - nock.activate(); - response.statusCode = 200; - response.end(); - }; - - middleware.use('/__cypress_add_server_side_stub', addServerSideStub); - middleware.use('/__cypress_clear_server_side_stubs', clearServerSideStubs); - - return middleware; -}; - -module.exports = { - cypressServerSideStubsMiddleware, -}; diff --git a/ops/update-typings.js b/ops/update-typings.js index 0c3fc803f..0fe0ae247 100644 --- a/ops/update-typings.js +++ b/ops/update-typings.js @@ -2,13 +2,13 @@ const { generate } = require('openapi-typescript-codegen'); const fs = require('fs'); const openApiSchemeUrl = 'https://stage.dev.lubimovka.ru/api/v1/schema'; -const typingsDir = 'src/api-typings'; +const outputDir = 'src/__generated__/api-typings'; -fs.rmSync(typingsDir, { recursive: true, force: true }); +fs.rmSync(outputDir, { recursive: true, force: true }); generate({ input: openApiSchemeUrl, - output: typingsDir, + output: outputDir, useUnionTypes: true, exportCore: false, exportServices: false, diff --git a/package-lock.json b/package-lock.json index 6c9af68a8..4bf090afd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,18 +34,18 @@ } }, "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "requires": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" } }, "@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz", + "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==", "dev": true }, "@babel/core": { @@ -69,530 +69,761 @@ "json5": "^2.1.2", "semver": "^6.3.0", "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + } } }, "@babel/generator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", - "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", + "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", + "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", "dev": true, "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "@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": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz", - "integrity": "sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz", + "integrity": "sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", + "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.2.1" } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", "semver": "^6.1.2" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true }, "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz", + "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==", "dev": true, "requires": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.20.7" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "dev": true, + "requires": { + "@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.10", + "@babel/types": "^7.20.7" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" }, "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, "requires": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.20.2" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.20.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" }, "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", "dev": true }, "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helpers": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", + "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", "dev": true, "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.13", + "@babel/types": "^7.20.7" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/highlight": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } } }, "@babel/parser": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", - "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", + "version": "7.20.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", + "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz", + "integrity": "sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-proposal-decorators": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.9.tgz", - "integrity": "sha512-EfH2LZ/vPa2wuPwJ26j+kYRkaubf89UlwxKXtxqEm57HrgSEYDB8t4swFP+p8LcI9yiP9ZRJJjo/58hS6BnaDA==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.13.tgz", + "integrity": "sha512-7T6BKHa9Cpd7lCueHBBzP0nkXNina+h5giOZw+a8ZpMfPFY19VjJAjIxyFHuWkhCWgL6QMqRiY/wB1fLXzm6Mw==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.9", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.17.0", - "charcodes": "^0.2.0" + "@babel/helper-create-class-features-plugin": "^7.20.12", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/plugin-syntax-decorators": "^7.19.0" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-proposal-export-default-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.7.tgz", - "integrity": "sha512-+cENpW1rgIjExn+o5c8Jw/4BuH4eGKKYvkMB8/0ZxFQ9mC0t4z09VsPIwNg6waF69QYC81zxGeAsREGuqQoKeg==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.18.10.tgz", + "integrity": "sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-default-from": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-default-from": "^7.18.6" } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", "dev": true, "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" + "@babel/plugin-transform-parameters": "^7.20.7" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz", + "integrity": "sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", + "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-syntax-async-generators": { @@ -623,12 +854,12 @@ } }, "@babel/plugin-syntax-decorators": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", - "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.19.0.tgz", + "integrity": "sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-syntax-dynamic-import": { @@ -641,12 +872,12 @@ } }, "@babel/plugin-syntax-export-default-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.7.tgz", - "integrity": "sha512-4C3E4NsrLOgftKaTYTULhHsuQrGv3FHrBzOMDiS7UYKIpgGBkAdawg4h+EI8zPeK9M0fiIIh72hIwsI24K7MbA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.18.6.tgz", + "integrity": "sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-syntax-export-namespace-from": { @@ -659,12 +890,21 @@ } }, "@babel/plugin-syntax-flow": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", - "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz", + "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-syntax-json-strings": { @@ -677,12 +917,11 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", - "dev": true, + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", + "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -758,431 +997,455 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", - "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "version": "7.20.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.15.tgz", + "integrity": "sha512-Vv4DMZ6MiNOhu/LdaZsT/bsLRxgL94d269Mv4R/9sp6+Mp++X/JqypZYypJXLlM4mlL352/Egzbzr98iABH1CA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz", + "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" } }, "@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", + "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-flow-strip-types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", - "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.19.0.tgz", + "integrity": "sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-flow": "^7.16.7" + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-flow": "^7.18.6" } }, "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz", - "integrity": "sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz", + "integrity": "sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", - "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" } }, "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", + "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-react-constant-elements": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.6.tgz", - "integrity": "sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.20.2.tgz", + "integrity": "sha512-KS/G8YI8uwMGKErLFOHS/ekhqdHhpEloxs43NecQHVgo2QuQSyJhGIY1fL8UGl9wy5ItVwwoUL4YxVqsplGq2g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", - "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.13.tgz", + "integrity": "sha512-MmTZx/bkUrfJhhYAYt3Urjm+h8DQGrPrnKQ94jLo7NLuOU+T89a7IByhKmrb8SKhrIYIQ0FN0CHMbnFRen4qNw==", "dev": true, "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.7" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", - "dev": true, + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.20.7" + }, + "dependencies": { + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dev": true, + "requires": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", + "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-regenerator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz", - "integrity": "sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", "dev": true, "requires": { - "regenerator-transform": "^0.15.0" + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.13.tgz", + "integrity": "sha512-O7I/THxarGcDZxkgWKMUrk7NK1/WbHAg3Xx86gqS6x9MTrNL6AwIluuZ96ms4xeDe6AVx6rjHbWHP7x26EPQBA==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.20.12", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1192,56 +1455,69 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", "semver": "^6.3.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/preset-flow": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.16.7.tgz", - "integrity": "sha512-6ceP7IyZdUYQ3wUVqyRSQXztd1YmFHWI4Xv11MIqAlE4WqxBSd/FZ61V9k+TS5Gd4mkHOtQtPp9ymRpxH4y1Ug==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.18.6.tgz", + "integrity": "sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-flow-strip-types": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-flow-strip-types": "^7.18.6" } }, "@babel/preset-modules": { @@ -1258,34 +1534,34 @@ } }, "@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" } }, "@babel/preset-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", - "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", + "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-typescript": "^7.18.6" } }, "@babel/register": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.17.7.tgz", - "integrity": "sha512-fg56SwvXRifootQEDQAu1mKdjh5uthPzdO0N6t358FktfL4XjAVXuH58ULoiW8mesxiOgNIrxiImqEwv0+hRRA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz", + "integrity": "sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==", "dev": true, "requires": { "clone-deep": "^4.0.1", @@ -1296,59 +1572,89 @@ } }, "@babel/runtime": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", - "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz", - "integrity": "sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==", - "dev": true, + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "requires": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" } }, "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/traverse": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", - "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.9", - "@babel/types": "^7.17.0", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", + "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", + "dev": true, + "requires": { + "@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.13", + "@babel/types": "^7.20.7", "debug": "^4.1.0", "globals": "^11.1.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" } }, @@ -1387,10 +1693,16 @@ "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", "dev": true }, + "@csstools/selector-specificity": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz", + "integrity": "sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==", + "dev": true + }, "@cypress/request": { - "version": "2.88.10", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", - "integrity": "sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==", + "version": "2.88.11", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.11.tgz", + "integrity": "sha512-M83/wfQ1EkspjkE2lNWNV5ui2Cv7UCv1swW1DqljahbzLVWltcsexQh8jYtuS/vzFXP+HySntGM83ZXA9fn17w==", "dev": true, "requires": { "aws-sign2": "~0.7.0", @@ -1406,7 +1718,7 @@ "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "performance-now": "^2.1.0", - "qs": "~6.5.2", + "qs": "~6.10.3", "safe-buffer": "^5.1.2", "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", @@ -1425,10 +1737,13 @@ } }, "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } }, "uuid": { "version": "8.3.2", @@ -1456,6 +1771,12 @@ "requires": { "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true } } }, @@ -1534,6 +1855,14 @@ "@emotion/unitless": "0.7.5", "@emotion/utils": "0.11.3", "csstype": "^2.5.7" + }, + "dependencies": { + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "dev": true + } } }, "@emotion/sheet": { @@ -1589,31 +1918,61 @@ "dev": true }, "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, "requires": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -1622,6 +1981,18 @@ } } }, + "@evilmartians/lefthook": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@evilmartians/lefthook/-/lefthook-1.2.8.tgz", + "integrity": "sha512-M0QFRiX87SUBsPdS/vIOdauNTcLSgqh2iQzPVcsjkKapEFzBzQ5l3sGxeHVh20s/rrvCGZ3XpZ5M8+MCdho/sw==", + "dev": true + }, + "@faker-js/faker": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-7.6.0.tgz", + "integrity": "sha512-XK6BTq1NDMo9Xqw/YkYyGjSsg44fbNwYRx7QK2CuoQgyy+f1rrTDHoExVM5PsyXCtfl2vs2vVJ0MN0yN6LppRw==", + "dev": true + }, "@funboxteam/diamonds": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/@funboxteam/diamonds/-/diamonds-8.2.1.tgz", @@ -1634,14 +2005,31 @@ "dev": true }, "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", + "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.0", "debug": "^4.1.1", "minimatch": "^3.0.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "@humanwhocodes/object-schema": { @@ -1661,51 +2049,6 @@ "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - } } }, "@istanbuljs/schema": { @@ -1737,11 +2080,48 @@ "write-file-atomic": "^3.0.0" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -1756,6 +2136,100 @@ "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "@jsdevtools/ono": { @@ -1775,6 +2249,18 @@ "loader-utils": "2.0.0" }, "dependencies": { + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, "loader-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", @@ -1848,10 +2334,37 @@ "@babel/helper-plugin-utils": "^7.10.4" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true } } @@ -1876,25 +2389,69 @@ "requires": { "call-me-maybe": "^1.0.1", "glob-to-regexp": "^0.3.0" + } + }, + "@mswjs/cookies": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.2.2.tgz", + "integrity": "sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g==", + "dev": true, + "requires": { + "@types/set-cookie-parser": "^2.4.0", + "set-cookie-parser": "^2.4.6" + } + }, + "@mswjs/interceptors": { + "version": "0.17.7", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.17.7.tgz", + "integrity": "sha512-dPInyLEF6ybLxfKGY99euI+mbT6ls4PVO9qPgGIsRk3+2VZVfT7fo9Sq6Q8eKT9W38QtUyhG74hN7xMtKWioGw==", + "dev": true, + "requires": { + "@open-draft/until": "^1.0.3", + "@types/debug": "^4.1.7", + "@xmldom/xmldom": "^0.8.3", + "debug": "^4.3.3", + "headers-polyfill": "^3.1.0", + "outvariant": "^1.2.1", + "strict-event-emitter": "^0.2.4", + "web-encoding": "^1.1.5" }, "dependencies": { - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, + "@next/bundle-analyzer": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-13.1.2.tgz", + "integrity": "sha512-wY/ZEmnFDbn/eJiGzOxTppTDZWfsiXz/QqdJ8cqU7mByAJg6TEY35b3JFDu5AxSf2g1e7yQ6LfRrPr7sy07ogw==", + "dev": true, + "requires": { + "webpack-bundle-analyzer": "4.7.0" + } + }, "@next/env": { "version": "12.0.8", "resolved": "https://registry.npmjs.org/@next/env/-/env-12.0.8.tgz", "integrity": "sha512-Wa0gOeioB9PHap9wtZDZEhgOSE3/+qE/UALWjJHuNvH4J3oE+13EjVOiEsr1JcPCXUN8ESQE+phDKlo6qJ8P9g==" }, "@next/eslint-plugin-next": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.0.4.tgz", - "integrity": "sha512-3N+LG+wQQB0JLfMj4YKkefWnjcsFVBmixRWdzbVBnt/cxbVZ0izf+BR1MzvrPX1oaP0OrYk8X/9Mn9Yftuajvg==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.1.1.tgz", + "integrity": "sha512-SBrOFS8PC3nQ5aeZmawJkjKkWjwK9RoxvBSv/86nZp0ubdoVQoko8r8htALd9ufp16NhacCdqhu9bzZLDWtALQ==", "dev": true, "requires": { "glob": "7.1.7" @@ -2024,19 +2581,28 @@ }, "dependencies": { "lru-cache": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.7.3.tgz", - "integrity": "sha512-WY9wjJNQt9+PZilnLbuFKM+SwDull9+6IAguOrarOMoOHTcJ9GnXSO11+Gw6c7xtDkBkthR57OZMtZKYr+1CEw==", - "dev": true + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } }, "semver": { - "version": "7.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.6.tgz", - "integrity": "sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { - "lru-cache": "^7.4.0" + "lru-cache": "^6.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -2055,6 +2621,116 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "@open-draft/until": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz", + "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==", + "dev": true + }, + "@pkgr/utils": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz", + "integrity": "sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "is-glob": "^4.0.3", + "open": "^8.4.0", + "picocolors": "^1.0.0", + "tiny-glob": "^0.2.9", + "tslib": "^2.4.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "@playwright/test": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.30.0.tgz", + "integrity": "sha512-SVxkQw1xvn/Wk/EvBnqWIq6NLo1AppwbYOjNLmyU0R1RoQ3rLEBtmjTnElcnz8VEtn11fptj1ECxK0tgURhajw==", + "dev": true, + "requires": { + "@types/node": "*", + "playwright-core": "1.30.0" + }, + "dependencies": { + "playwright-core": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.30.0.tgz", + "integrity": "sha512-7AnRmTCf+GVYhHbLJsGUtskWTE33SwMZkybJ0v6rqR1boxq2x36U7p1vDRV7HO2IwTZgmycracLxPEJI49wu4g==", + "dev": true } } }, @@ -2072,24 +2748,54 @@ "source-map": "^0.7.3" }, "dependencies": { + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==", + "dev": true + }, + "html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true } } }, + "@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, "@popperjs/core": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", - "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", "dev": true }, + "@reach/router": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz", + "integrity": "sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA==", + "dev": true, + "requires": { + "create-react-context": "0.3.0", + "invariant": "^2.2.3", + "prop-types": "^15.6.1", + "react-lifecycles-compat": "^3.0.4" + } + }, "@rushstack/eslint-patch": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.1.tgz", - "integrity": "sha512-BUyKJGdDWqvWC5GEhyOiUrGNi9iJUr4CU0O2WxJL6QJhHeeA/NVBalH+FeK0r/x/W0rPymXt5s78TDS7d6lCwg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", + "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==", "dev": true }, "@storybook/addon-actions": { @@ -2203,6 +2909,52 @@ "remark-slug": "^6.0.0", "ts-dedent": "^2.0.0", "util-deprecate": "^1.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + } } }, "@storybook/addon-essentials": { @@ -2245,6 +2997,17 @@ "qs": "^6.10.0", "regenerator-runtime": "^0.13.7", "ts-dedent": "^2.0.0" + }, + "dependencies": { + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } } }, "@storybook/addon-measure": { @@ -2332,28 +3095,23 @@ "util-deprecate": "^1.0.2" }, "dependencies": { - "@reach/router": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz", - "integrity": "sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA==", + "@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", "dev": true, "requires": { - "create-react-context": "0.3.0", - "invariant": "^2.2.3", - "prop-types": "^15.6.1", - "react-lifecycles-compat": "^3.0.4" - }, - "dependencies": { - "create-react-context": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz", - "integrity": "sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==", - "dev": true, - "requires": { - "gud": "^1.0.0", - "warning": "^4.0.3" - } - } + "core-js": "^3.6.5", + "find-up": "^4.1.0" + } + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" } } } @@ -2452,10 +3210,32 @@ "semver": "^6.1.2" } }, + "@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", + "dev": true, + "requires": { + "core-js": "^3.6.5", + "find-up": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + } + } + }, "@types/node": { - "version": "14.18.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", - "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", + "version": "14.18.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", + "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==", "dev": true }, "babel-plugin-polyfill-corejs3": { @@ -2468,6 +3248,66 @@ "core-js-compat": "^3.8.1" } }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "dependencies": { + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -2486,12 +3326,6 @@ "requires": { "postcss": "^7.0.26" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -2508,6 +3342,17 @@ "global": "^4.4.0", "qs": "^6.10.0", "telejson": "^5.3.2" + }, + "dependencies": { + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } } }, "@storybook/channels": { @@ -2545,6 +3390,17 @@ "store2": "^2.12.0", "ts-dedent": "^2.0.0", "util-deprecate": "^1.0.2" + }, + "dependencies": { + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } } }, "@storybook/client-logger": { @@ -2587,6 +3443,23 @@ "regenerator-runtime": "^0.13.7", "ts-dedent": "^2.0.0", "util-deprecate": "^1.0.2" + }, + "dependencies": { + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "@storybook/core": { @@ -2622,6 +3495,17 @@ "ts-dedent": "^2.0.0", "unfetch": "^4.2.0", "util-deprecate": "^1.0.2" + }, + "dependencies": { + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } } }, "@storybook/core-common": { @@ -2696,12 +3580,43 @@ "semver": "^6.1.2" } }, + "@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", + "dev": true, + "requires": { + "core-js": "^3.6.5", + "find-up": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + } + } + }, "@types/node": { - "version": "14.18.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", - "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", + "version": "14.18.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", + "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==", "dev": true }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "babel-plugin-macros": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", @@ -2723,10 +3638,78 @@ "core-js-compat": "^3.8.1" } }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "dependencies": { + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + } + } + }, "fork-ts-checker-webpack-plugin": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.1.tgz", - "integrity": "sha512-x1wumpHOEf4gDROmKTaB6i4/Q6H3LwmjVO7fIX47vBwlZbtPjU33hgoMuD/Q/y6SU8bnuYSoN6ZQOLshGp0T/g==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", + "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", @@ -2758,22 +3741,55 @@ } }, "semver": { - "version": "7.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.6.tgz", - "integrity": "sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { - "lru-cache": "^7.4.0" + "lru-cache": "^6.0.0" } } } }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, "lru-cache": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.7.3.tgz", - "integrity": "sha512-WY9wjJNQt9+PZilnLbuFKM+SwDull9+6IAguOrarOMoOHTcJ9GnXSO11+Gw6c7xtDkBkthR57OZMtZKYr+1CEw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, "schema-utils": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", @@ -2784,6 +3800,21 @@ "ajv": "^6.12.2", "ajv-keywords": "^3.4.1" } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -2838,11 +3869,109 @@ "webpack": "4" }, "dependencies": { + "@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", + "dev": true, + "requires": { + "core-js": "^3.6.5", + "find-up": "^4.1.0" + } + }, "@types/node": { - "version": "14.18.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", - "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", + "version": "14.18.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", + "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "detect-port": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", + "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "dev": true, + "requires": { + "address": "^1.0.1", + "debug": "4" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -2923,10 +4052,90 @@ }, "dependencies": { "@types/node": { - "version": "14.18.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", - "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", + "version": "14.18.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", + "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -2941,6 +4150,51 @@ "core-js": "^3.8.2", "npmlog": "^4.1.2", "pretty-hrtime": "^1.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "@storybook/postinstall": { @@ -2981,6 +4235,18 @@ "regenerator-runtime": "^0.13.7", "ts-dedent": "^2.0.0", "webpack": "4" + }, + "dependencies": { + "@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", + "dev": true, + "requires": { + "core-js": "^3.6.5", + "find-up": "^4.1.0" + } + } } }, "@storybook/react-docgen-typescript-plugin": { @@ -2998,6 +4264,15 @@ "tslib": "^2.0.0" }, "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, "find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", @@ -3009,51 +4284,20 @@ "pkg-dir": "^4.1.0" } }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "semver": "^6.0.0" } }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "pkg-dir": { "version": "4.2.0", @@ -3084,77 +4328,13 @@ "ts-dedent": "^2.0.0" }, "dependencies": { - "@reach/router": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz", - "integrity": "sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA==", - "dev": true, - "requires": { - "create-react-context": "0.3.0", - "invariant": "^2.2.3", - "prop-types": "^15.6.1", - "react-lifecycles-compat": "^3.0.4" - }, - "dependencies": { - "create-react-context": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz", - "integrity": "sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==", - "dev": true, - "requires": { - "gud": "^1.0.0", - "warning": "^4.0.3" - } - } - } - } - } - }, - "@storybook/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", - "dev": true, - "requires": { - "core-js": "^3.6.5", - "find-up": "^4.1.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, "requires": { - "p-limit": "^2.2.0" + "side-channel": "^1.0.4" } } } @@ -3175,6 +4355,37 @@ "lodash": "^4.17.20", "prettier": "~2.2.1", "regenerator-runtime": "^0.13.7" + }, + "dependencies": { + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } } }, "@storybook/theming": { @@ -3234,6 +4445,16 @@ "store2": "^2.12.0" }, "dependencies": { + "@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", + "dev": true, + "requires": { + "core-js": "^3.6.5", + "find-up": "^4.1.0" + } + }, "markdown-to-jsx": { "version": "6.11.4", "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-6.11.4.tgz", @@ -3243,28 +4464,18 @@ "prop-types": "^15.6.2", "unquote": "^1.1.0" } + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } } } }, - "@stylelint/postcss-css-in-js": { - "version": "0.37.2", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz", - "integrity": "sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA==", - "dev": true, - "requires": { - "@babel/core": ">=7.9.0" - } - }, - "@stylelint/postcss-markdown": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz", - "integrity": "sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==", - "dev": true, - "requires": { - "remark": "^13.0.0", - "unist-util-find-all-after": "^3.0.2" - } - }, "@svgr/babel-plugin-add-jsx-attribute": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", @@ -3338,6 +4549,27 @@ "@svgr/plugin-jsx": "^5.5.0", "camelcase": "^6.2.0", "cosmiconfig": "^7.0.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + } } }, "@svgr/hast-util-to-babel-ast": { @@ -3370,6 +4602,21 @@ "cosmiconfig": "^7.0.0", "deepmerge": "^4.2.2", "svgo": "^1.2.2" + }, + "dependencies": { + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + } } }, "@svgr/webpack": { @@ -3386,6 +4633,31 @@ "@svgr/plugin-jsx": "^5.5.0", "@svgr/plugin-svgo": "^5.5.0", "loader-utils": "^2.0.0" + }, + "dependencies": { + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } } }, "@types/braces": { @@ -3409,26 +4681,41 @@ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "dev": true, + "requires": { + "@types/ms": "*" + } + }, "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.0.1.tgz", + "integrity": "sha512-8bVUjXZvJacUFkJXHdyZ9iH1Eaj5V7I8c4NdH5sQJsdXkqT4CA5Dhb4yb4VE/3asyx4L9ayZr1NIhTsWHczmMw==", "dev": true, "requires": { - "@types/minimatch": "*", + "@types/minimatch": "^5.1.2", "@types/node": "*" } }, "@types/glob-base": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@types/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-pYHWiDR+EOUN18F9byiAoQNUMZ0=", + "integrity": "sha512-NRCU51ALpNedUvwiwifAkDIWIC25MqF9+0STzAzvhlzR5U+iHTiaUlZ1iOMCwqZAU05X9UlqL63FVrZTZ6tySA==", "dev": true }, "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", "dev": true, "requires": { "@types/node": "*" @@ -3449,14 +4736,6 @@ "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", "dev": true }, - "@types/http-proxy": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", - "requires": { - "@types/node": "*" - } - }, "@types/is-function": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@types/is-function/-/is-function-1.0.1.tgz", @@ -3487,6 +4766,12 @@ "@types/istanbul-lib-report": "*" } }, + "@types/js-levenshtein": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.1.tgz", + "integrity": "sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==", + "dev": true + }, "@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -3496,7 +4781,13 @@ "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/lodash": { + "version": "4.14.191", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", + "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==", "dev": true }, "@types/markdown-to-jsx": { @@ -3527,9 +4818,9 @@ } }, "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", "dev": true }, "@types/minimist": { @@ -3538,15 +4829,21 @@ "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", "dev": true }, + "@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", + "dev": true + }, "@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + "version": "18.13.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz", + "integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==" }, "@types/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", + "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", "dev": true, "requires": { "@types/node": "*", @@ -3590,9 +4887,9 @@ "dev": true }, "@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==", + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", "dev": true }, "@types/q": { @@ -3608,9 +4905,9 @@ "dev": true }, "@types/reach__router": { - "version": "1.3.10", - "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.10.tgz", - "integrity": "sha512-iHAFGaVOrWi00/q7oBybggGsz5TOmwOW4M1H9sT7i9lly4qFC8XOgsdf6jUsoaOz2sknFHALEtZqCoDbokdJ2Q==", + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.11.tgz", + "integrity": "sha512-j23ChnIEiW8aAP4KT8OVyTXOFr+Ri65BDnwzmfHFO9WHypXYevHFjeil1Cj7YH3emfCE924BwAmgW4hOv7Wg3g==", "dev": true, "requires": { "@types/react": "*" @@ -3625,14 +4922,6 @@ "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" - }, - "dependencies": { - "csstype": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", - "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==", - "dev": true - } } }, "@types/react-dom": { @@ -3659,6 +4948,21 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", "dev": true }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "@types/set-cookie-parser": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.2.tgz", + "integrity": "sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/sinonjs__fake-timers": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", @@ -3684,20 +4988,12 @@ "dev": true }, "@types/uglify-js": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.1.tgz", - "integrity": "sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ==", + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.1.tgz", + "integrity": "sha512-GkewRA4i5oXacU/n4MA9+bLgt5/L3F1mKrYvFGm7r2ouLXhRKjuWwo9XHNnbx6WF3vlGW21S3fCvgqxvxXXc5g==", "dev": true, "requires": { "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "@types/unist": { @@ -3707,9 +5003,9 @@ "dev": true }, "@types/webpack": { - "version": "4.41.32", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.32.tgz", - "integrity": "sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==", + "version": "4.41.33", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.33.tgz", + "integrity": "sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==", "dev": true, "requires": { "@types/node": "*", @@ -3718,20 +5014,12 @@ "@types/webpack-sources": "*", "anymatch": "^3.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "@types/webpack-env": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.3.tgz", - "integrity": "sha512-9gtOPPkfyNoEqCQgx4qJKkuNm/x0R2hKR7fdl7zvTJyHnIisuE/LfvXOsYWL0o3qq6uiBnKZNNNzi3l0y/X+xw==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.18.0.tgz", + "integrity": "sha512-56/MAlX5WMsPVbOg7tAxnYvNYMMWr/QJiIp6BxVSW3JJXUVzzOn64qW8TzQyMSqSUFM2+PVI4aUHcHOzIz/1tg==", "dev": true }, "@types/webpack-sources": { @@ -3746,17 +5034,17 @@ }, "dependencies": { "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true } } }, "@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "version": "15.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", + "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -3779,177 +5067,346 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.0.tgz", - "integrity": "sha512-iPKZTZNavAlOhfF4gymiSuUkgLne/nh5Oz2/mdiUmuZVD42m9PapnCnzjxuDsnpnbH3wT5s2D8bw6S39TC6GNw==", + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.0.tgz", + "integrity": "sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.31.0", - "@typescript-eslint/scope-manager": "4.31.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.1.0", - "semver": "^7.3.5", + "@typescript-eslint/scope-manager": "5.48.0", + "@typescript-eslint/type-utils": "5.48.0", + "@typescript-eslint/utils": "5.48.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", "tsutils": "^3.21.0" }, "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, "lru-cache": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.7.3.tgz", - "integrity": "sha512-WY9wjJNQt9+PZilnLbuFKM+SwDull9+6IAguOrarOMoOHTcJ9GnXSO11+Gw6c7xtDkBkthR57OZMtZKYr+1CEw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "semver": { - "version": "7.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.6.tgz", - "integrity": "sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { - "lru-cache": "^7.4.0" + "lru-cache": "^6.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, - "@typescript-eslint/experimental-utils": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.0.tgz", - "integrity": "sha512-Hld+EQiKLMppgKKkdUsLeVIeEOrwKc2G983NmznY/r5/ZtZCDvIOXnXtwqJIgYz/ymsy7n7RGvMyrzf1WaSQrw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.31.0", - "@typescript-eslint/types": "4.31.0", - "@typescript-eslint/typescript-estree": "4.31.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - } - }, "@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", - "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.51.0.tgz", + "integrity": "sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" + "@typescript-eslint/scope-manager": "5.51.0", + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/typescript-estree": "5.51.0", + "debug": "^4.3.4" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", - "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz", + "integrity": "sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==", "dev": true, "requires": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0" + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/visitor-keys": "5.51.0" } }, "@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.51.0.tgz", + "integrity": "sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz", + "integrity": "sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==", "dev": true, "requires": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/visitor-keys": "5.51.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", "tsutils": "^3.21.0" } }, "@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz", + "integrity": "sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.51.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" } }, "lru-cache": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.7.3.tgz", - "integrity": "sha512-WY9wjJNQt9+PZilnLbuFKM+SwDull9+6IAguOrarOMoOHTcJ9GnXSO11+Gw6c7xtDkBkthR57OZMtZKYr+1CEw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "semver": { - "version": "7.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.6.tgz", - "integrity": "sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { - "lru-cache": "^7.4.0" + "lru-cache": "^6.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, "@typescript-eslint/scope-manager": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.31.0.tgz", - "integrity": "sha512-LJ+xtl34W76JMRLjbaQorhR0hfRAlp3Lscdiz9NeI/8i+q0hdBZ7BsiYieLoYWqy+AnRigaD3hUwPFugSzdocg==", + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.0.tgz", + "integrity": "sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow==", "dev": true, "requires": { - "@typescript-eslint/types": "4.31.0", - "@typescript-eslint/visitor-keys": "4.31.0" + "@typescript-eslint/types": "5.48.0", + "@typescript-eslint/visitor-keys": "5.48.0" } }, - "@typescript-eslint/types": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.31.0.tgz", - "integrity": "sha512-9XR5q9mk7DCXgXLS7REIVs+BaAswfdHhx91XqlJklmqWpTALGjygWVIb/UnLh4NWhfwhR5wNe1yTyCInxVhLqQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.0.tgz", - "integrity": "sha512-QHl2014t3ptg+xpmOSSPn5hm4mY8D4s97ftzyk9BZ8RxYQ3j73XcwuijnJ9cMa6DO4aLXeo8XS3z1omT9LA/Eg==", + "@typescript-eslint/type-utils": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.0.tgz", + "integrity": "sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g==", "dev": true, "requires": { - "@typescript-eslint/types": "4.31.0", - "@typescript-eslint/visitor-keys": "4.31.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", + "@typescript-eslint/typescript-estree": "5.48.0", + "@typescript-eslint/utils": "5.48.0", + "debug": "^4.3.4", "tsutils": "^3.21.0" }, "dependencies": { - "lru-cache": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.7.3.tgz", - "integrity": "sha512-WY9wjJNQt9+PZilnLbuFKM+SwDull9+6IAguOrarOMoOHTcJ9GnXSO11+Gw6c7xtDkBkthR57OZMtZKYr+1CEw==", - "dev": true - }, - "semver": { - "version": "7.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.6.tgz", - "integrity": "sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w==", + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "lru-cache": "^7.4.0" + "ms": "2.1.2" } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true } } }, - "@typescript-eslint/visitor-keys": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.0.tgz", - "integrity": "sha512-HUcRp2a9I+P21+O21yu3ezv3GEPGjyGiXoEUQwZXjR8UxRApGeLyWH4ZIIUSalE28aG4YsV6GjtaAVB3QKOu0w==", + "@typescript-eslint/types": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.0.tgz", + "integrity": "sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.0.tgz", + "integrity": "sha512-7pjd94vvIjI1zTz6aq/5wwE/YrfIyEPLtGJmRfyNR9NYIW+rOvzzUv3Cmq2hRKpvt6e9vpvPUQ7puzX7VSmsEw==", "dev": true, "requires": { - "@typescript-eslint/types": "4.31.0", - "eslint-visitor-keys": "^2.0.0" + "@typescript-eslint/types": "5.48.0", + "@typescript-eslint/visitor-keys": "5.48.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/utils": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.0.tgz", + "integrity": "sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.48.0", + "@typescript-eslint/types": "5.48.0", + "@typescript-eslint/typescript-estree": "5.48.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.0.tgz", + "integrity": "sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.48.0", + "eslint-visitor-keys": "^3.3.0" } }, "@webassemblyjs/ast": { @@ -4127,6 +5584,12 @@ "@xtuc/long": "4.2.2" } }, + "@xmldom/xmldom": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.6.tgz", + "integrity": "sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg==", + "dev": true + }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -4139,6 +5602,13 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, + "@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "dev": true, + "optional": true + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -4149,9 +5619,9 @@ } }, "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true }, "acorn-jsx": { @@ -4161,9 +5631,9 @@ "dev": true }, "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true }, "address": { @@ -4238,12 +5708,46 @@ "dev": true, "requires": { "string-width": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } } }, "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", "dev": true }, "ansi-escapes": { @@ -4263,12 +5767,6 @@ } } }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, "ansi-html-community": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", @@ -4276,18 +5774,18 @@ "dev": true }, "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true }, "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" } }, "ansi-to-html": { @@ -4300,9 +5798,9 @@ } }, "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -4312,7 +5810,7 @@ "app-root-dir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz", - "integrity": "sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg=", + "integrity": "sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==", "dev": true }, "aproba": { @@ -4337,12 +5835,6 @@ "readable-stream": "^2.0.6" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -4358,6 +5850,12 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -4379,19 +5877,18 @@ } }, "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", "dev": true, "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" + "deep-equal": "^2.0.5" } }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "dev": true }, "arr-flatten": { @@ -4403,24 +5900,24 @@ "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "dev": true }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "is-string": "^1.0.7" } }, @@ -4433,50 +5930,78 @@ "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", "dev": true }, "array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" } }, "array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" } }, "array.prototype.map": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.4.tgz", - "integrity": "sha512-Qds9QnX7A0qISY7JT5WuJO0NJPE9CMlC6JzHQfhpqAAQQzufVRoeH7EzUY5GcPTx72voG8LV/5eo+b8Qi8hmhA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.5.tgz", + "integrity": "sha512-gfaKntvwqYIuC7mLLyv2wzZIJqrRhn5PZ9EfFejSx6a78sV7iDsGpG9P+3oUPtm1Rerqm6nrKS4FYuTIvWfo3g==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + } + }, + "array.prototype.reduce": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", + "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-array-method-boxes-properly": "^1.0.0", "is-string": "^1.0.7" } }, + "array.prototype.tosorted": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", + "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, "arrify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", @@ -4512,6 +6037,33 @@ } } }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -4521,7 +6073,7 @@ "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", "dev": true }, "ast-types": { @@ -4536,7 +6088,7 @@ "ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", "dev": true }, "astral-regex": { @@ -4546,22 +6098,22 @@ "dev": true }, "async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", "dev": true }, "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", "dev": true, "optional": true }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, "at-least-node": { @@ -4591,6 +6143,12 @@ "postcss-value-parser": "^4.1.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -4600,15 +6158,15 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -4616,22 +6174,25 @@ "dev": true }, "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", "dev": true }, "axe-core": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", - "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz", + "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==", "dev": true }, "axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", - "dev": true + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "dev": true, + "requires": { + "deep-equal": "^2.0.5" + } }, "babel-loader": { "version": "8.2.2", @@ -4645,6 +6206,12 @@ "schema-utils": "^2.6.5" }, "dependencies": { + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, "find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", @@ -4656,29 +6223,10 @@ "pkg-dir": "^4.1.0" } }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", "dev": true, "requires": { "big.js": "^5.2.2", @@ -4686,15 +6234,6 @@ "json5": "^1.0.1" } }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -4704,24 +6243,6 @@ "semver": "^6.0.0" } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -4736,7 +6257,7 @@ "babel-plugin-add-react-displayname": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz", - "integrity": "sha1-M51M3be2X9YtHfnbn+BN4TQSK9U=", + "integrity": "sha512-LY3+Y0XVDYcShHHorshrDbt4KFWL4bSeniCtl4SYZbask+Syngk1uMPCeN9+nSiZo6zX5s0RTq/J9Pnaaf/KHw==", "dev": true }, "babel-plugin-apply-mdx-type-prop": { @@ -4757,15 +6278,6 @@ } } }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, "babel-plugin-emotion": { "version": "10.2.2", "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.2.2.tgz", @@ -4782,6 +6294,14 @@ "escape-string-regexp": "^1.0.5", "find-root": "^1.1.0", "source-map": "^0.5.7" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + } } }, "babel-plugin-extract-import-names": { @@ -4823,21 +6343,6 @@ "@babel/runtime": "^7.7.2", "cosmiconfig": "^6.0.0", "resolve": "^1.12.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - } } }, "babel-plugin-named-asset-import": { @@ -4847,33 +6352,33 @@ "dev": true }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dev": true, "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" } }, "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" + "@babel/helper-define-polyfill-provider": "^0.3.3" } }, "babel-plugin-react-docgen": { @@ -4890,7 +6395,7 @@ "babel-plugin-syntax-jsx": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==", "dev": true }, "bail": { @@ -4923,24 +6428,59 @@ "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, "requires": { "is-descriptor": "^1.0.0" } - } - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true }, "batch-processor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz", - "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=", + "integrity": "sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA==", "dev": true }, "bcrypt-pbkdf": { @@ -4991,6 +6531,18 @@ "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } } }, "blob-util": { @@ -5006,9 +6558,9 @@ "dev": true }, "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", "dev": true }, "body-parser": { @@ -5026,37 +6578,12 @@ "qs": "6.9.6", "raw-body": "2.4.2", "type-is": "~1.6.18" - }, - "dependencies": { - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" - } } }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, "boxen": { @@ -5075,12 +6602,21 @@ "widest-line": "^3.1.0" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -5090,6 +6626,56 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -5107,6 +6693,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -5114,7 +6701,7 @@ "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", "dev": true }, "browserify-aes": { @@ -5179,14 +6766,6 @@ "parse-asn1": "^5.1.5", "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } } }, "browserify-zlib": { @@ -5199,24 +6778,15 @@ } }, "browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" - }, - "dependencies": { - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - } + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" } }, "bser": { @@ -5229,13 +6799,14 @@ } }, "buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, "requires": { "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, "buffer-crc32": { @@ -5253,84 +6824,111 @@ "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", "dev": true }, "builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", "dev": true }, "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" }, "c8": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-7.11.0.tgz", - "integrity": "sha512-XqPyj1uvlHMr+Y1IeRndC2X5P7iJzJlEJwBpCdBbq2JocXOgJfr+JVfJkyNMGROke5LfKrhSFXGFXnwnRJAUJw==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz", + "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@istanbuljs/schema": "^0.1.2", + "@istanbuljs/schema": "^0.1.3", "find-up": "^5.0.0", "foreground-child": "^2.0.0", - "istanbul-lib-coverage": "^3.0.1", + "istanbul-lib-coverage": "^3.2.0", "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "rimraf": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", "test-exclude": "^6.0.0", - "v8-to-istanbul": "^8.0.0", + "v8-to-istanbul": "^9.0.0", "yargs": "^16.2.0", - "yargs-parser": "^20.2.7" - } - }, - "cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dev": true, - "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" + "yargs-parser": "^20.2.9" }, "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "aggregate-error": "^3.0.0" + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" } } } }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -5346,6 +6944,14 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + } } }, "cachedir": { @@ -5365,9 +6971,9 @@ } }, "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", "dev": true }, "callsites": { @@ -5387,9 +6993,9 @@ } }, "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "camelcase-css": { @@ -5407,20 +7013,12 @@ "camelcase": "^5.3.1", "map-obj": "^4.0.0", "quick-lru": "^4.0.1" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } } }, "caniuse-lite": { - "version": "1.0.30001325", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001325.tgz", - "integrity": "sha512-sB1bZHjseSjDtijV1Hb7PB2Zd58Kyx+n/9EotvZ4Qcz2K3d0lWB8dB4nb8wN/TsOGFq3UuAm0zQZNQ4SoR7TrQ==" + "version": "1.0.30001450", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz", + "integrity": "sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew==" }, "capture-exit": { "version": "2.0.0", @@ -5450,13 +7048,31 @@ "dev": true }, "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "character-entities": { @@ -5477,10 +7093,10 @@ "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", "dev": true }, - "charcodes": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", - "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, "check-more-types": { @@ -5490,25 +7106,25 @@ "dev": true }, "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" } }, "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, "chrome-trace-event": { @@ -5548,73 +7164,16 @@ "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true } } @@ -5631,14 +7190,6 @@ "dev": true, "requires": { "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "clean-stack": { @@ -5662,6 +7213,12 @@ "restore-cursor": "^3.1.0" } }, + "cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "dev": true + }, "cli-table3": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", @@ -5671,6 +7228,40 @@ "colors": "^1.1.2", "object-assign": "^4.1.0", "string-width": "^4.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } } }, "cli-truncate": { @@ -5681,8 +7272,48 @@ "requires": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } } }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -5692,8 +7323,48 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } } }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -5705,27 +7376,10 @@ "shallow-clone": "^3.0.0" } }, - "clone-regexp": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", - "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", - "dev": true, - "requires": { - "is-regexp": "^2.0.0" - }, - "dependencies": { - "is-regexp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", - "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", - "dev": true - } - } - }, "clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", "dev": true }, "coa": { @@ -5737,64 +7391,12 @@ "@types/q": "^1.5.1", "chalk": "^2.4.1", "q": "^1.1.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } } }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", "dev": true }, "collapse-white-space": { @@ -5806,7 +7408,7 @@ "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", "dev": true, "requires": { "map-visit": "^1.0.0", @@ -5821,21 +7423,38 @@ "requires": { "color-convert": "^2.0.1", "color-string": "^1.9.0" + }, + "dependencies": { + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { - "color-name": "~1.1.4" + "color-name": "1.1.3" } }, "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "color-string": { @@ -5848,12 +7467,17 @@ "simple-swizzle": "^0.2.2" } }, - "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true }, + "colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + }, "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", @@ -5877,9 +7501,9 @@ "dev": true }, "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true }, "common-tags": { @@ -5891,7 +7515,7 @@ "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, "component-emitter": { @@ -5924,33 +7548,30 @@ "vary": "~1.1.2" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true } } }, "compute-scroll-into-view": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz", - "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==", + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", + "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==", "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "concat-stream": { @@ -5965,12 +7586,6 @@ "typedarray": "^0.0.6" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -5986,6 +7601,12 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -5997,35 +7618,6 @@ } } }, - "connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, "console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", @@ -6035,13 +7627,13 @@ "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "dev": true }, "content-disposition": { @@ -6050,27 +7642,26 @@ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "requires": { "safe-buffer": "5.2.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } } }, "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" }, "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "requires": { "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } } }, "cookie": { @@ -6081,7 +7672,7 @@ "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "copy-concurrently": { "version": "1.0.5", @@ -6095,62 +7686,42 @@ "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.0" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } } }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", "dev": true }, "copy-to-clipboard": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", - "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", "dev": true, "requires": { "toggle-selection": "^1.0.6" } }, "core-js": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", - "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==", + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.2.tgz", + "integrity": "sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==", "dev": true }, "core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.27.2.tgz", + "integrity": "sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==", "dev": true, "requires": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "browserslist": "^4.21.4" } }, "core-js-pure": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", - "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.27.2.tgz", + "integrity": "sha512-Cf2jqAbXgWH3VVzjyaaFkY1EBazxugUepGymDoeteyYr9ByX51kD2jdHZlsEF/xnJMyN3Prua7mQuzwMg6Zc9A==", "dev": true }, "core-util-is": { @@ -6160,16 +7731,16 @@ "dev": true }, "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", "dev": true, "requires": { "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", + "import-fresh": "^3.1.0", "parse-json": "^5.0.0", "path-type": "^4.0.0", - "yaml": "^1.10.0" + "yaml": "^1.7.2" } }, "cp-file": { @@ -6218,10 +7789,20 @@ "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", "dev": true, "requires": { "array-uniq": "^1.0.1" @@ -6248,7 +7829,7 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -6282,7 +7863,7 @@ "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -6294,7 +7875,7 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -6305,7 +7886,7 @@ "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", "dev": true, "requires": { "is-glob": "^3.1.0", @@ -6315,7 +7896,7 @@ "is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", "dev": true, "requires": { "is-extglob": "^2.1.0" @@ -6339,22 +7920,16 @@ "slash": "^2.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -6363,7 +7938,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -6371,6 +7946,12 @@ } } }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -6392,6 +7973,15 @@ "to-regex": "^3.0.2" } }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, "path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", @@ -6404,7 +7994,7 @@ "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true } } @@ -6418,7 +8008,7 @@ "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, "requires": { "is-number": "^3.0.0", @@ -6472,15 +8062,35 @@ "sha.js": "^2.4.8" } }, + "create-react-context": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz", + "integrity": "sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==", + "dev": true, + "requires": { + "gud": "^1.0.0", + "warning": "^4.0.3" + } + }, "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "crypto-browserify": { @@ -6511,6 +8121,12 @@ "postcss": "^7.0.5" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -6520,15 +8136,15 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, + "css-functions-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", + "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "dev": true + }, "css-has-pseudo": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", @@ -6545,6 +8161,12 @@ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -6565,12 +8187,6 @@ "indexes-of": "^1.0.1", "uniq": "^1.0.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -6595,32 +8211,12 @@ "semver": "^6.3.0" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -6630,12 +8226,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -6648,6 +8238,12 @@ "postcss": "^7.0.5" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -6657,12 +8253,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -6693,14 +8283,6 @@ "requires": { "mdn-data": "2.0.4", "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "css-what": { @@ -6745,25 +8327,19 @@ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, "csstype": { - "version": "2.6.20", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", - "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", "dev": true }, "cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "integrity": "sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==", "dev": true }, "cypress": { @@ -6817,33 +8393,114 @@ }, "dependencies": { "@types/node": { - "version": "14.18.20", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.20.tgz", - "integrity": "sha512-Q8KKwm9YqEmUBRsqJ2GWJDtXltBDxTdC4m5vTdXBolu2PeQh8LX+f6BTwU+OuXPu37fLxoN6gidqBmnky36FXA==", + "version": "14.18.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", + "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "ci-info": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz", - "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", + "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", "dev": true }, "cli-table3": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", - "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", "dev": true, "requires": { "@colors/colors": "1.5.0", "string-width": "^4.2.0" } }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "commander": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", "dev": true }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, "execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", @@ -6870,12 +8527,6 @@ "pump": "^3.0.0" } }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, "is-ci": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", @@ -6885,23 +8536,106 @@ "ci-info": "^3.2.0" } }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { "lru-cache": "^6.0.0" } }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -6921,35 +8655,34 @@ } }, "date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" }, "dayjs": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.2.tgz", - "integrity": "sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw==", + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==", "dev": true }, "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "ms": "2.1.2" + "ms": "2.0.0" } }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true }, "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, "requires": { "decamelize": "^1.1.0", @@ -6959,15 +8692,15 @@ "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true } } }, "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true }, "decompress-response": { @@ -6982,9 +8715,42 @@ "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", "dev": true }, + "deep-equal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", + "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } + }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -6998,24 +8764,40 @@ "dev": true }, "deep-object-diff": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.7.tgz", - "integrity": "sha512-QkgBca0mL08P6HiOjoqvmm6xOAl2W6CT2+34Ljhg0OeFan8cwlcdq8jrLKsBBuUFAZLsN5b6y491KdKEoSo9lg==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz", + "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==", "dev": true }, "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "dev": true + }, + "defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true }, "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, "define-property": { @@ -7026,24 +8808,61 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + } } }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "dev": true }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" }, "des.js": { "version": "1.0.1", @@ -7058,7 +8877,7 @@ "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==" }, "detab": { "version": "2.0.4", @@ -7080,33 +8899,6 @@ "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" }, - "detect-port": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", - "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", - "dev": true, - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, "detect-port-alt": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", @@ -7115,23 +8907,6 @@ "requires": { "address": "^1.0.1", "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } } }, "diffie-hellman": { @@ -7181,9 +8956,9 @@ } }, "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, "requires": { "domelementtype": "^2.0.1", @@ -7197,10 +8972,16 @@ "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", "dev": true }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true }, "domhandler": { @@ -7234,9 +9015,9 @@ } }, "dotenv": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", - "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", "dev": true }, "dotenv-defaults": { @@ -7246,6 +9027,14 @@ "dev": true, "requires": { "dotenv": "^6.2.0" + }, + "dependencies": { + "dotenv": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", + "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==", + "dev": true + } } }, "dotenv-expand": { @@ -7264,9 +9053,9 @@ } }, "downshift": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/downshift/-/downshift-6.1.7.tgz", - "integrity": "sha512-cVprZg/9Lvj/uhYRxELzlu1aezRcgPWBjTvspiGTVEU64gF5pRdSRKFVLcxqsZC637cLAGMbL40JavEfWnqgNg==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/downshift/-/downshift-6.1.12.tgz", + "integrity": "sha512-7XB/iaSJVS4T8wGFT3WRXmSF1UlBHAA40DshZtkrIscIN+VC+Lh363skLxFTvJwtNgHxAMDGEHT4xsyQFWL+UA==", "dev": true, "requires": { "@babel/runtime": "^7.14.8", @@ -7294,12 +9083,6 @@ "stream-shift": "^1.0.0" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -7315,6 +9098,12 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -7339,12 +9128,12 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "electron-to-chromium": { - "version": "1.4.104", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.104.tgz", - "integrity": "sha512-2kjoAyiG7uMyGRM9mx25s3HAzmQG2ayuYXxsFmYugHSDcwxREgLtscZvbL1JcW9S/OemeQ3f/SG6JhDwpnCclQ==", + "version": "1.4.288", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.288.tgz", + "integrity": "sha512-8s9aJf3YiokIrR+HOQzNOGmEHFXVUQzXM/JaViVvKdCkNUjS+lEa/uT7xw3nDVG/IgfxiIwUGkwJ6AR1pTpYsQ==", "dev": true }, "element-resize-detector": { @@ -7380,16 +9169,15 @@ } }, "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==" }, "emotion-theming": { "version": "10.3.0", @@ -7405,7 +9193,7 @@ "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" }, "end-of-stream": { "version": "1.4.4", @@ -7428,20 +9216,55 @@ } }, "enhanced-resolve": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", - "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", "dev": true, "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" }, "dependencies": { - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } } } }, @@ -7452,6 +9275,14 @@ "dev": true, "requires": { "ansi-colors": "^4.1.1" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true + } } }, "entities": { @@ -7479,40 +9310,53 @@ } }, "error-stack-parser": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", - "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", "dev": true, "requires": { - "stackframe": "^1.1.1" + "stackframe": "^1.3.4" } }, "es-abstract": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz", - "integrity": "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", + "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", "dev": true, "requires": { + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" } }, "es-array-method-boxes-properly": { @@ -7522,19 +9366,48 @@ "dev": true }, "es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", "is-map": "^2.0.2", "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" } }, "es-to-primitive": { @@ -7549,15 +9422,15 @@ } }, "es5-shim": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.6.5.tgz", - "integrity": "sha512-vfQ4UAai8szn0sAubCy97xnZ4sJVDD1gt/Grn736hg8D7540wemIb1YPrYZSTqlM2H69EQX1or4HU/tSwRTI3w==", + "version": "4.6.7", + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.6.7.tgz", + "integrity": "sha512-jg21/dmlrNQI7JyyA2w7n+yifSxBng0ZralnSfVZjoCawgNTCnS+yBCyVM9DL5itm7SUnDGgv7hcq2XCZX4iRQ==", "dev": true }, "es6-shim": { - "version": "0.35.6", - "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.6.tgz", - "integrity": "sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA==", + "version": "0.35.7", + "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.7.tgz", + "integrity": "sha512-baZkUfTDSx7X69+NA8imbvGrsPfqH0MX7ADdIDjqwsI8lkTgLIiD2QWrUCSGsUQ0YMnSCA/4pNgSyXdnLHWf3A==", "dev": true }, "escalade": { @@ -7569,12 +9442,12 @@ "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true }, "escodegen": { @@ -7590,47 +9463,45 @@ "source-map": "~0.6.1" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true } } }, "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz", + "integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==", "dev": true, "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", + "@eslint/eslintrc": "^1.0.4", + "@humanwhocodes/config-array": "^0.6.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.1.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", + "glob-parent": "^6.0.1", "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -7638,22 +9509,78 @@ "natural-compare": "^1.4.0", "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^3.1.0", + "regexpp": "^3.2.0", "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" } }, "escape-string-regexp": { @@ -7662,36 +9589,78 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" } }, "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, "lru-cache": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.7.3.tgz", - "integrity": "sha512-WY9wjJNQt9+PZilnLbuFKM+SwDull9+6IAguOrarOMoOHTcJ9GnXSO11+Gw6c7xtDkBkthR57OZMtZKYr+1CEw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "optionator": { @@ -7708,13 +9677,67 @@ "word-wrap": "^1.2.3" } }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, "semver": { - "version": "7.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.6.tgz", - "integrity": "sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "lru-cache": "^7.4.0" + "has-flag": "^4.0.0" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" } }, "type-fest": { @@ -7722,34 +9745,50 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, "eslint-config-next": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.0.4.tgz", - "integrity": "sha512-uBOHBjYaRF0MaS5feB7lFOncHhSrtFxZy/oud6pEW/wn/JUQtZWeH/J4JyODBfX+G7h9mttgHLZNmUjNJis6Kw==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.1.1.tgz", + "integrity": "sha512-/5S2XGWlGaiqrRhzpn51ux5JUSLwx8PVK2keLi5xk7QmhfYB8PqE6R6SlVw6hgnf/VexvUXSrlNJ/su00NhtHQ==", "dev": true, "requires": { - "@next/eslint-plugin-next": "12.0.4", - "@rushstack/eslint-patch": "^1.0.6", - "@typescript-eslint/parser": "^4.20.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-import-resolver-typescript": "^2.4.0", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.23.1", - "eslint-plugin-react-hooks": "^4.2.0" + "@next/eslint-plugin-next": "13.1.1", + "@rushstack/eslint-patch": "^1.1.3", + "@typescript-eslint/parser": "^5.42.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.31.7", + "eslint-plugin-react-hooks": "^4.5.0" } }, "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, "requires": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" }, "dependencies": { "debug": { @@ -7760,120 +9799,138 @@ "requires": { "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true } } }, "eslint-import-resolver-typescript": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz", - "integrity": "sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.3.tgz", + "integrity": "sha512-njRcKYBc3isE42LaTcJNVANR3R99H9bAxBDMNDr2W7yq5gYPxbU3MkdhsQukxZ/Xg9C2vcyLlDsbKfRDg0QvCQ==", "dev": true, "requires": { "debug": "^4.3.4", - "glob": "^7.2.0", + "enhanced-resolve": "^5.10.0", + "get-tsconfig": "^4.2.0", + "globby": "^13.1.2", + "is-core-module": "^2.10.0", "is-glob": "^4.0.3", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - } - }, - "eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "synckit": "^0.8.4" }, "dependencies": { "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", "dev": true, "requires": { - "locate-path": "^2.0.0" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "globby": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", + "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" } }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + } + } + }, + "eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "p-limit": "^1.1.0" + "ms": "^2.1.1" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } }, "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", "dev": true, "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", "has": "^1.0.3", - "is-core-module": "^2.8.1", + "is-core-module": "^2.11.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", "tsconfig-paths": "^3.14.1" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "doctrine": { @@ -7886,53 +9943,66 @@ } }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } }, "eslint-plugin-jsx-a11y": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", - "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", + "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", "dev": true, "requires": { - "@babel/runtime": "^7.16.3", - "aria-query": "^4.2.2", - "array-includes": "^3.1.4", + "@babel/runtime": "^7.20.7", + "aria-query": "^5.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", "ast-types-flow": "^0.0.7", - "axe-core": "^4.3.5", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.7", + "axe-core": "^4.6.2", + "axobject-query": "^3.1.1", + "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "has": "^1.0.3", - "jsx-ast-utils": "^3.2.1", - "language-tags": "^1.0.5", - "minimatch": "^3.0.4" + "jsx-ast-utils": "^3.3.3", + "language-tags": "=1.0.5", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "semver": "^6.3.0" + }, + "dependencies": { + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + } } }, "eslint-plugin-react": { - "version": "7.29.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", - "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", "dev": true, "requires": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", "doctrine": "^2.1.0", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", - "object.values": "^1.1.5", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.3", + "resolve": "^2.0.0-next.4", "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" + "string.prototype.matchall": "^4.0.8" }, "dependencies": { "doctrine": { @@ -7944,40 +10014,39 @@ "esutils": "^2.0.2" } }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, "resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } } } }, "eslint-plugin-react-hooks": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz", - "integrity": "sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", "dev": true }, "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, "requires": { - "esrecurse": "^4.3.0", + "esrecurse": "^4.1.0", "estraverse": "^4.1.1" - }, - "dependencies": { - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - } } }, "eslint-utils": { @@ -7987,31 +10056,31 @@ "dev": true, "requires": { "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } } }, "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true }, "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" } }, "esprima": { @@ -8027,6 +10096,14 @@ "dev": true, "requires": { "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, "esrecurse": { @@ -8036,12 +10113,20 @@ "dev": true, "requires": { "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "estree-to-babel": { @@ -8064,19 +10149,14 @@ "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" }, "eventemitter2": { - "version": "6.4.5", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz", - "integrity": "sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==", + "version": "6.4.9", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", + "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", "dev": true }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, "events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -8100,29 +10180,18 @@ "dev": true }, "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "execall": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", - "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "clone-regexp": "^2.1.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "executable": { @@ -8145,7 +10214,7 @@ "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", "dev": true, "requires": { "debug": "^2.3.3", @@ -8157,19 +10226,10 @@ "to-regex": "^3.0.1" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -8178,86 +10238,11 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, @@ -8302,31 +10287,6 @@ "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } } }, "extend": { @@ -8338,11 +10298,44 @@ "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "dev": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + } } }, "extglob": { @@ -8364,7 +10357,7 @@ "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, "requires": { "is-descriptor": "^1.0.0" @@ -8373,17 +10366,40 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -8399,6 +10415,15 @@ "yauzl": "^2.10.0" }, "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -8407,6 +10432,12 @@ "requires": { "pump": "^3.0.0" } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true } } }, @@ -8423,9 +10454,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -8450,19 +10481,19 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -8478,9 +10509,9 @@ } }, "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "requires": { "bser": "2.1.1" @@ -8495,32 +10526,6 @@ "pend": "~1.2.0" } }, - "fetch-mock": { - "version": "9.11.0", - "resolved": "https://registry.npmjs.org/fetch-mock/-/fetch-mock-9.11.0.tgz", - "integrity": "sha512-PG1XUv+x7iag5p/iNHD4/jdpxL9FtVSqRMUQhPab4hVDt80T1MH5ehzVrL2IdXO9Q2iBggArFvPqjUbHFuI58Q==", - "dev": true, - "requires": { - "@babel/core": "^7.0.0", - "@babel/runtime": "^7.0.0", - "core-js": "^3.0.0", - "debug": "^4.1.1", - "glob-to-regexp": "^0.4.0", - "is-subset": "^0.1.1", - "lodash.isequal": "^4.5.0", - "path-to-regexp": "^2.2.1", - "querystring": "^0.2.0", - "whatwg-url": "^6.5.0" - }, - "dependencies": { - "path-to-regexp": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", - "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==", - "dev": true - } - } - }, "figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", @@ -8555,6 +10560,29 @@ "schema-utils": "^3.0.0" }, "dependencies": { + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -8569,45 +10597,24 @@ } }, "file-system-cache": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-1.0.5.tgz", - "integrity": "sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-1.1.0.tgz", + "integrity": "sha512-IzF5MBq+5CR0jXx5RxPe4BICl/oEhBSXKaL9fLhAXrIfIUS77Hr4vzrYyqYMHN6uTt+BOqi3fDCTjjEBCjERKw==", "dev": true, "requires": { - "bluebird": "^3.3.5", - "fs-extra": "^0.30.0", - "ramda": "^0.21.0" + "fs-extra": "^10.1.0", + "ramda": "^0.28.0" }, "dependencies": { "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } } } @@ -8629,6 +10636,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -8645,21 +10653,6 @@ "parseurl": "~1.3.3", "statuses": "~1.5.0", "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } } }, "find-cache-dir": { @@ -8692,15 +10685,6 @@ "path-exists": "^3.0.0" } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, "p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", @@ -8713,7 +10697,7 @@ "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true }, "pkg-dir": { @@ -8734,12 +10718,12 @@ "dev": true }, "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "locate-path": "^6.0.0", + "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, @@ -8751,12 +10735,23 @@ "requires": { "flatted": "^3.1.0", "rimraf": "^3.0.2" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, "flatten": { @@ -8775,12 +10770,6 @@ "readable-stream": "^2.3.6" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -8796,6 +10785,12 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -8815,15 +10810,19 @@ "tslib": "^2.0.3" } }, - "follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", "dev": true }, "foreground-child": { @@ -8834,6 +10833,49 @@ "requires": { "cross-spawn": "^7.0.0", "signal-exit": "^3.0.2" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "forever-agent": { @@ -8857,15 +10899,6 @@ "worker-rpc": "^0.1.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", @@ -8887,44 +10920,18 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" - } - } - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" + } + } } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -8936,7 +10943,7 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -8944,28 +10951,10 @@ } } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -8974,7 +10963,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -8982,6 +10971,12 @@ } } }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -9009,19 +11004,10 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, "requires": { "is-number": "^3.0.0", @@ -9044,7 +11030,7 @@ "format": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", "dev": true }, "forwarded": { @@ -9055,7 +11041,7 @@ "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", "dev": true, "requires": { "map-cache": "^0.2.2" @@ -9064,24 +11050,18 @@ "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" }, "from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", "dev": true, "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -9097,6 +11077,12 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -9144,7 +11130,7 @@ "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -9153,12 +11139,6 @@ "readable-stream": "1 || 2" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -9174,6 +11154,12 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -9188,7 +11174,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "fsevents": { @@ -9219,13 +11205,13 @@ "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "dev": true }, "functions-have-names": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz", - "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true }, "fuse.js": { @@ -9237,7 +11223,7 @@ "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", "dev": true, "requires": { "aproba": "^1.0.3", @@ -9248,43 +11234,6 @@ "string-width": "^1.0.1", "strip-ansi": "^3.0.1", "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } } }, "gensync": { @@ -9300,39 +11249,30 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" } }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, "get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, - "get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true - }, "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } }, "get-symbol-description": { "version": "1.0.0", @@ -9344,10 +11284,16 @@ "get-intrinsic": "^1.1.1" } }, + "get-tsconfig": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.4.0.tgz", + "integrity": "sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ==", + "dev": true + }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", "dev": true }, "getos": { @@ -9375,21 +11321,21 @@ "dev": true }, "github-slugger": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz", - "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", "dev": true }, "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } @@ -9397,7 +11343,7 @@ "glob-base": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "integrity": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==", "dev": true, "requires": { "glob-parent": "^2.0.0", @@ -9407,7 +11353,7 @@ "glob-parent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", "dev": true, "requires": { "is-glob": "^2.0.0" @@ -9416,13 +11362,13 @@ "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", "dev": true }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", "dev": true, "requires": { "is-extglob": "^1.0.0" @@ -9449,9 +11395,9 @@ } }, "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==", "dev": true }, "global": { @@ -9465,9 +11411,9 @@ } }, "global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", "dev": true, "requires": { "ini": "2.0.0" @@ -9499,17 +11445,6 @@ "ini": "^1.3.5", "kind-of": "^6.0.2", "which": "^1.3.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } } }, "globals": { @@ -9519,49 +11454,53 @@ "dev": true }, "globalthis": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", - "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, "requires": { "define-properties": "^1.1.3" } }, + "globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true + }, "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", "slash": "^3.0.0" - }, - "dependencies": { - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - } } }, "globjoin": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", "dev": true }, - "gonzales-pe": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", + "globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, "requires": { - "minimist": "^1.2.5" + "get-intrinsic": "^1.1.3" } }, "graceful-fs": { @@ -9570,6 +11509,12 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, + "graphql": { + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", + "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==", + "dev": true + }, "gud": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", @@ -9577,13 +11522,12 @@ "dev": true }, "gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", - "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" + "duplexer": "^0.1.2" } }, "handlebars": { @@ -9597,14 +11541,6 @@ "source-map": "^0.6.1", "uglify-js": "^3.1.4", "wordwrap": "^1.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "hard-rejection": { @@ -9623,9 +11559,9 @@ } }, "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true }, "has-flag": { @@ -9636,7 +11572,7 @@ "has-glob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz", - "integrity": "sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc=", + "integrity": "sha512-D+8A457fBShSEI3tFCj65PAbT++5sKiFtdCdOam0gnfBgw9D277OERk+HM9qYJXmdVLZ/znez10SqHN0BBQ50g==", "dev": true, "requires": { "is-glob": "^3.0.0" @@ -9645,7 +11581,7 @@ "is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", "dev": true, "requires": { "is-extglob": "^2.1.0" @@ -9653,6 +11589,21 @@ } } }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -9671,40 +11622,42 @@ "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", "dev": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + } } }, "has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", "dev": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -9713,7 +11666,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -9724,7 +11677,7 @@ "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -9741,14 +11694,6 @@ "inherits": "^2.0.4", "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } } }, "hash.js": { @@ -9846,6 +11791,12 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, + "headers-polyfill": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.1.2.tgz", + "integrity": "sha512-tWCK4biJ6hcLqTviLXVR9DTRfYGQMXEIUj3gwJ2rZ5wO/at3XtkI4g8mCvFdUF9l1KMBNCfmNAdnahm1cgavQA==", + "dev": true + }, "highlight.js": { "version": "10.7.3", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", @@ -9855,7 +11806,7 @@ "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dev": true, "requires": { "hash.js": "^1.0.3", @@ -9887,9 +11838,9 @@ "dev": true }, "html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", "dev": true }, "html-escaper": { @@ -9948,28 +11899,6 @@ "pretty-error": "^2.1.1", "tapable": "^1.1.3", "util.promisify": "1.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } } }, "htmlparser2": { @@ -9996,28 +11925,6 @@ "toidentifier": "1.0.1" } }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.1.tgz", - "integrity": "sha512-cfaXRVoZxSed/BmkA7SwBVNI9Kj7HFltaE5rqYOub5kWzWZ+gofV2koVN1j2rMW7pEfSSlCHGJ31xmuyFyfLOg==", - "requires": { - "@types/http-proxy": "^1.17.5", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - } - }, "http-signature": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", @@ -10032,13 +11939,13 @@ "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", "dev": true }, "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true }, "iconv-lite": { @@ -10058,6 +11965,12 @@ "postcss": "^7.0.14" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -10067,12 +11980,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -10085,20 +11992,15 @@ "iferr": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", "dev": true }, "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true }, - "imask": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/imask/-/imask-6.4.3.tgz", - "integrity": "sha512-aH2GHemGkr3cbRBfhogHMIx05eUxdHrZNlKTTLmz8VxpSopuHHJ8+85FsDlBVQqxPlDLhZuwj4lpHHWbLOdBSw==" - }, "immer": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/immer/-/immer-8.0.1.tgz", @@ -10132,7 +12034,7 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, "indent-string": { @@ -10144,7 +12046,7 @@ "indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", "dev": true }, "infer-owner": { @@ -10156,37 +12058,137 @@ "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", - "dev": true - }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", + "dev": true + }, + "inquirer": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", + "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", "dev": true, "requires": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.1.3", "has": "^1.0.3", "side-channel": "^1.0.4" } @@ -10207,9 +12209,9 @@ } }, "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", "dev": true }, "ipaddr.js": { @@ -10224,12 +12226,23 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-alphabetical": { @@ -10258,10 +12271,21 @@ "has-tostringtag": "^1.0.0" } }, + "is-array-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", + "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, "is-bigint": { @@ -10293,15 +12317,15 @@ } }, "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true }, "is-ci": { @@ -10314,21 +12338,32 @@ } }, "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-date-object": { @@ -10347,14 +12382,22 @@ "dev": true }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-docker": { @@ -10374,24 +12417,25 @@ } }, "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true }, "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } }, "is-function": { "version": "1.0.2", @@ -10399,10 +12443,20 @@ "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", "dev": true }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -10423,6 +12477,12 @@ "is-path-inside": "^3.0.2" } }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, "is-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", @@ -10435,10 +12495,17 @@ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true }, + "is-node-process": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.0.1.tgz", + "integrity": "sha512-5IcdXuf++TTNt3oGl9EBdkvndXA8gmc4bz/Y+mdEpWh3Mcn/+kOw6hI7LD5CocqJWMzeb0I0ClndRVNdEPuJXQ==", + "dev": true + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "is-number-object": { "version": "1.0.7", @@ -10449,12 +12516,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, "is-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", @@ -10468,9 +12529,10 @@ "dev": true }, "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true }, "is-plain-object": { "version": "2.0.4", @@ -10479,6 +12541,14 @@ "dev": true, "requires": { "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + } } }, "is-regex": { @@ -10491,12 +12561,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true - }, "is-root": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", @@ -10519,9 +12583,9 @@ } }, "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "dev": true }, "is-string": { @@ -10533,12 +12597,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-subset": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", - "dev": true - }, "is-symbol": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", @@ -10548,10 +12606,23 @@ "has-symbols": "^1.0.2" } }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, "is-unicode-supported": { @@ -10560,6 +12631,12 @@ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true + }, "is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -10569,6 +12646,16 @@ "call-bind": "^1.0.2" } }, + "is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "is-whitespace-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", @@ -10578,7 +12665,7 @@ "is-window": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz", - "integrity": "sha1-LIlspT25feRdPDMTOmXYyfVjSA0=", + "integrity": "sha512-uj00kdXyZb9t9RcAUAwMZAnkBUwdYGhYlt7djMXhfyhUCzwNba50tIiBKR7q0l7tdoBtFVw/3JmLY6fI3rmZmg==", "dev": true }, "is-windows": { @@ -10594,30 +12681,27 @@ "dev": true }, "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true }, "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", "dev": true }, "isstream": { @@ -10633,9 +12717,9 @@ "dev": true }, "istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "requires": { "@babel/core": "^7.12.3", @@ -10664,13 +12748,22 @@ "requires": { "semver": "^6.0.0" } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -10713,6 +12806,28 @@ "micromatch": "^4.0.2", "sane": "^4.0.3", "walker": "^1.0.7" + }, + "dependencies": { + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "jest-regex-util": { @@ -10743,23 +12858,73 @@ "graceful-fs": "^4.2.4", "is-ci": "^2.0.0", "micromatch": "^4.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, + "version": "27.0.0-next.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz", + "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==", "requires": { "@types/node": "*", "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "supports-color": "^8.0.0" } }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true + }, "js-string-escape": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", - "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", "dev": true }, "js-tokens": { @@ -10825,7 +12990,7 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "json-stringify-safe": { @@ -10835,10 +13000,12 @@ "dev": true }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "requires": { + "minimist": "^1.2.0" + } }, "jsonfile": { "version": "6.1.0", @@ -10863,13 +13030,13 @@ } }, "jsx-ast-utils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz", - "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", "dev": true, "requires": { - "array-includes": "^3.1.4", - "object.assign": "^4.1.2" + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" } }, "junk": { @@ -10879,9 +13046,9 @@ "dev": true }, "keen-slider": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/keen-slider/-/keen-slider-5.5.1.tgz", - "integrity": "sha512-QXGZGt5Hbe0YufR/RYbOG03MmOk43RQEXqkkSvjr8ZS67sVR7LRp5RIvJALfjl+A7BnHNr1wd1QBOemwy65Lfw==" + "version": "6.8.5", + "resolved": "https://registry.npmjs.org/keen-slider/-/keen-slider-6.8.5.tgz", + "integrity": "sha512-9yoosfffgTCrkmbX8kCUMWsn9KDgPSkxBof5/0yXde001D1xao7i9ppfxQCCK0MLnoCa+Rdssby0jFbTTUM4rw==" }, "kind-of": { "version": "6.0.3", @@ -10889,15 +13056,6 @@ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, "kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -10905,27 +13063,27 @@ "dev": true }, "klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "dev": true }, "known-css-properties": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.21.0.tgz", - "integrity": "sha512-sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw==", + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz", + "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", "dev": true }, "language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", - "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", "dev": true }, "language-tags": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", "dev": true, "requires": { "language-subtag-registry": "~0.3.2" @@ -10948,61 +13106,23 @@ "core-js": "^3.0.4", "dotenv": "^8.0.0", "dotenv-expand": "^5.1.0" - }, - "dependencies": { - "dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", - "dev": true - } } }, "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "dev": true, "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "lint-staged": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.1.2.tgz", - "integrity": "sha512-6lYpNoA9wGqkL6Hew/4n1H6lRqF3qCsujVT0Oq5Z4hiSAM7S6NksPJ3gnr7A7R52xCtiZMcEUNNQ6d6X5Bvh9w==", - "dev": true, - "requires": { - "chalk": "^4.1.1", - "cli-truncate": "^2.1.0", - "commander": "^7.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", - "enquirer": "^2.3.6", - "execa": "^5.0.0", - "listr2": "^3.8.2", - "log-symbols": "^4.1.0", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "^3.3.0" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - } - } + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true }, "listr2": { "version": "3.14.0", @@ -11020,14 +13140,41 @@ "wrap-ansi": "^7.0.0" }, "dependencies": { - "p-map": { + "colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + } + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, "requires": { - "aggregate-error": "^3.0.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true } } }, @@ -11038,41 +13185,33 @@ "dev": true }, "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", "requires": { "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "emojis-list": "^2.0.0", + "json5": "^1.0.1" } }, "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^5.0.0" + "p-locate": "^4.1.0" } }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "lodash.merge": { @@ -11087,28 +13226,16 @@ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", "dev": true }, - "lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==", - "dev": true - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "dev": true }, "log-symbols": { @@ -11119,6 +13246,51 @@ "requires": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "log-update": { @@ -11133,6 +13305,42 @@ "wrap-ansi": "^6.2.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, "slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -11144,6 +13352,26 @@ "is-fullwidth-code-point": "^3.0.0" } }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -11157,12 +13385,6 @@ } } }, - "longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", - "dev": true - }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -11191,12 +13413,12 @@ } }, "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "requires": { - "yallist": "^4.0.0" + "yallist": "^3.0.2" } }, "make-dir": { @@ -11229,7 +13451,7 @@ "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "dev": true }, "map-obj": { @@ -11241,13 +13463,13 @@ "map-or-similar": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", - "integrity": "sha1-beJlMXSt+12e3DPGnT6Sobdvrwg=", + "integrity": "sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==", "dev": true }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", "dev": true, "requires": { "object-visit": "^1.0.0" @@ -11260,9 +13482,9 @@ "dev": true }, "markdown-to-jsx": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.1.7.tgz", - "integrity": "sha512-VI3TyyHlGkO8uFle0IOibzpO1c1iJDcXcS/zBrQrXQQvJ2tpdwVzVZ7XdKsyRz1NdRmre4dqQkMZzUHaKIG/1w==", + "version": "7.1.9", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.1.9.tgz", + "integrity": "sha512-x4STVIKIJR0mGgZIZ5RyAeQD7FEZd5tS8m/htbcVGlex32J+hlSLj+ExrHCxP6nRKF1EKbcO7i6WhC1GtOpBlA==", "dev": true }, "mathml-tag-names": { @@ -11300,27 +13522,6 @@ "unist-util-visit": "^2.0.0" } }, - "mdast-util-from-markdown": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", - "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "dependencies": { - "mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", - "dev": true - } - } - }, "mdast-util-to-hast": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", @@ -11337,28 +13538,6 @@ "unist-util-visit": "^2.0.0" } }, - "mdast-util-to-markdown": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", - "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "longest-streak": "^2.0.0", - "mdast-util-to-string": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.0.0", - "zwitch": "^1.0.0" - }, - "dependencies": { - "mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", - "dev": true - } - } - }, "mdast-util-to-string": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", @@ -11374,27 +13553,27 @@ "mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", "dev": true }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" }, "memfs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", - "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", + "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", "dev": true, "requires": { - "fs-monkey": "1.0.3" + "fs-monkey": "^1.0.3" } }, "memoizerific": { "version": "1.11.3", "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", - "integrity": "sha1-fIekZGREwy11Q4VwkF8tvRsagFo=", + "integrity": "sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==", "dev": true, "requires": { "map-or-similar": "^1.5.0" @@ -11403,19 +13582,13 @@ "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", "dev": true, "requires": { "errno": "^0.1.3", "readable-stream": "^2.0.1" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -11431,6 +13604,12 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -11442,6 +13621,12 @@ } } }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true + }, "meow": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", @@ -11471,6 +13656,15 @@ "lru-cache": "^6.0.0" } }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "normalize-package-data": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", @@ -11484,20 +13678,12 @@ } }, "semver": { - "version": "7.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.6.tgz", - "integrity": "sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { - "lru-cache": "^7.4.0" - }, - "dependencies": { - "lru-cache": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.7.3.tgz", - "integrity": "sha512-WY9wjJNQt9+PZilnLbuFKM+SwDull9+6IAguOrarOMoOHTcJ9GnXSO11+Gw6c7xtDkBkthR57OZMtZKYr+1CEw==", - "dev": true - } + "lru-cache": "^6.0.0" } }, "type-fest": { @@ -11505,13 +13691,19 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, "merge-stream": { "version": "2.0.0", @@ -11527,7 +13719,7 @@ "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" }, "microevent.ts": { "version": "0.1.1", @@ -11535,20 +13727,11 @@ "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==", "dev": true }, - "micromark": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", - "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", - "dev": true, - "requires": { - "debug": "^4.0.0", - "parse-entities": "^2.0.0" - } - }, "micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, "requires": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -11605,7 +13788,7 @@ "min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", "dev": true, "requires": { "dom-walk": "^0.1.0" @@ -11626,7 +13809,7 @@ "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "dev": true }, "minimatch": { @@ -11639,9 +13822,9 @@ } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" }, "minimist-options": { "version": "4.1.0", @@ -11657,24 +13840,32 @@ "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true }, "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true } } }, "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "requires": { "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "minipass-collect": { @@ -11712,6 +13903,14 @@ "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "mississippi": { @@ -11740,6 +13939,17 @@ "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "mkdirp": { @@ -11760,7 +13970,7 @@ "move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", "dev": true, "requires": { "aproba": "^1.1.1", @@ -11769,36 +13979,212 @@ "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.3" + } + }, + "mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "msw": { + "version": "0.47.4", + "resolved": "https://registry.npmjs.org/msw/-/msw-0.47.4.tgz", + "integrity": "sha512-Psftt8Yfl0+l+qqg9OlmKEsxF8S/vtda0CmlR6y8wTaWrMMzuCDa55n2hEGC0ZRDwuV6FFWc/4CjoDsBpATKBw==", + "dev": true, + "requires": { + "@mswjs/cookies": "^0.2.2", + "@mswjs/interceptors": "^0.17.5", + "@open-draft/until": "^1.0.3", + "@types/cookie": "^0.4.1", + "@types/js-levenshtein": "^1.1.1", + "chalk": "4.1.1", + "chokidar": "^3.4.2", + "cookie": "^0.4.2", + "graphql": "^15.0.0 || ^16.0.0", + "headers-polyfill": "^3.1.0", + "inquirer": "^8.2.0", + "is-node-process": "^1.0.1", + "js-levenshtein": "^1.1.6", + "node-fetch": "^2.6.7", + "outvariant": "^1.3.0", + "path-to-regexp": "^6.2.0", + "statuses": "^2.0.0", + "strict-event-emitter": "^0.2.6", + "type-fest": "^2.19.0", + "yargs": "^17.3.1" }, "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "path-to-regexp": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", + "dev": true + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dev": true, "requires": { - "glob": "^7.1.3" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true } } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", "dev": true, "optional": true }, "nanoid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz", - "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==" + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" }, "nanomatch": { "version": "1.2.13", @@ -11837,7 +14223,13 @@ "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", "dev": true }, "negotiator": { @@ -11886,26 +14278,6 @@ "use-subscription": "1.5.1" }, "dependencies": { - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, - "jest-worker": { - "version": "27.0.0-next.5", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz", - "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - }, "postcss": { "version": "8.2.15", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz", @@ -11915,19 +14287,6 @@ "nanoid": "^3.1.23", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -11947,90 +14306,65 @@ "tslib": "^2.0.3" } }, - "nock": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.4.tgz", - "integrity": "sha512-8GPznwxcPNCH/h8B+XZcKjYPXnUV5clOKCjAqyjsiqA++MpNx9E9+t8YPp0MbThO+KauRo7aZJ1WuIZmOrT2Ug==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "lodash.set": "^4.3.2", - "propagate": "^2.0.0" - } - }, "node-abi": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.22.0.tgz", - "integrity": "sha512-u4uAs/4Zzmp/jjsD9cyFYDXeISfUWaAVWshPmDZOFOv4Xl4SbzTXm53I04C2uRueYJ+0t5PEtLH/owbn2Npf/w==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.32.0.tgz", + "integrity": "sha512-HkwdiLzE/LeuOMIQq/dJq70oNyRc88+wt5CH/RXYseE00LkA/c4PkS6Ti1vE4OHYUiKjkwuxjWq9pItgrz8UJw==", "dev": true, "requires": { "semver": "^7.3.5" }, "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { "lru-cache": "^6.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, "node-addon-api": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.0.0.tgz", - "integrity": "sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", "dev": true }, "node-dir": { "version": "0.1.17", "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", - "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=", + "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", "dev": true, "requires": { "minimatch": "^3.0.2" } }, "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - }, - "dependencies": { - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, "node-libs-browser": { @@ -12064,72 +14398,10 @@ "vm-browserify": "^1.0.1" }, "dependencies": { - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, "readable-stream": { @@ -12145,8 +14417,25 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" + }, + "dependencies": { + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "stream-browserify": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", @@ -12156,50 +14445,13 @@ "inherits": "~2.0.1", "readable-stream": "^2.0.2" } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - } } } }, "node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, "normalize-package-data": { @@ -12231,22 +14483,61 @@ "normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true }, - "normalize-selector": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", - "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", - "dev": true + "npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + } + } }, "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "dev": true, "requires": { - "path-key": "^3.0.0" + "path-key": "^2.0.0" } }, "npmlog": { @@ -12262,9 +14553,9 @@ } }, "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, "requires": { "boolbase": "^1.0.0" @@ -12273,24 +14564,24 @@ "num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", "dev": true }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", "dev": true }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", "dev": true, "requires": { "copy-descriptor": "^0.1.0", @@ -12301,59 +14592,16 @@ "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -12362,11 +14610,21 @@ } }, "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -12376,85 +14634,102 @@ "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", "dev": true, "requires": { "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + } } }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz", + "integrity": "sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw==", "dev": true, "requires": { + "array.prototype.reduce": "^1.0.5", "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", - "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "dev": true, "requires": { "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + } } }, "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "objectorarray": { @@ -12466,7 +14741,7 @@ "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "requires": { "ee-first": "1.1.1" } @@ -12480,7 +14755,7 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "requires": { "wrappy": "1" @@ -12503,6 +14778,17 @@ "requires": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + } } }, "openapi-typescript-codegen": { @@ -12517,14 +14803,26 @@ "json-schema-ref-parser": "^9.0.9" }, "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, "commander": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.1.0.tgz", - "integrity": "sha512-i0/MaqBtdbnJ4XQs4Pmyb+oFQl+q0lsAmokVUH92SlSw4fkeAcG3bVon+Qt7hmtF+u3Het6o4VgrcY3qAoEB6w==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true } } }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true + }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -12537,31 +14835,81 @@ "prelude-ls": "~1.1.2", "type-check": "~0.3.2", "word-wrap": "~1.2.3" + } + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" }, "dependencies": { - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "color-convert": "^2.0.1" } }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "has-flag": "^4.0.0" } } } @@ -12569,7 +14917,13 @@ "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true }, "ospath": { @@ -12578,10 +14932,16 @@ "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", "dev": true }, + "outvariant": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.3.0.tgz", + "integrity": "sha512-yeWM9k6UPfG/nzxdaPlJkB2p08hCg4xP6Lx99F+vP8YF7xyZVfTmJjrrNalkmzudD4WFvNLVudQikqUmF8zhVQ==", + "dev": true + }, "overlayscrollbars": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/overlayscrollbars/-/overlayscrollbars-1.13.1.tgz", - "integrity": "sha512-gIQfzgGgu1wy80EB4/6DaJGHMEGmizq27xHIESrzXq0Y/J0Ay1P3DWk6tuVmEPIZH15zaBlxeEJOqdJKmowHCQ==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/overlayscrollbars/-/overlayscrollbars-1.13.3.tgz", + "integrity": "sha512-1nB/B5kaakJuHXaLXLRK0bUIilWhUGT6q5g+l2s5vqYdLle/sd0kscBHkQC1kuuDg9p9WR4MTdySDOPbeL/86g==", "dev": true }, "p-all": { @@ -12630,31 +14990,31 @@ "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true }, "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { - "yocto-queue": "^0.1.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^3.0.2" + "p-limit": "^2.2.0" } }, "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "requires": { "aggregate-error": "^3.0.0" @@ -12692,12 +15052,6 @@ "readable-stream": "^2.1.5" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -12713,6 +15067,12 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -12806,13 +15166,19 @@ "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", "dev": true }, "path-exists": { @@ -12824,13 +15190,13 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true }, "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true }, "path-parse": { @@ -12842,7 +15208,7 @@ "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, "path-type": { "version": "4.0.0", @@ -12872,18 +15238,26 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true }, "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true }, "pify": { "version": "4.0.1", @@ -12904,6 +15278,45 @@ "dev": true, "requires": { "find-up": "^5.0.0" + }, + "dependencies": { + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + } } }, "pkg-up": { @@ -12934,15 +15347,6 @@ "path-exists": "^3.0.0" } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, "p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", @@ -12955,20 +15359,11 @@ "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true } } }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "requires": { - "semver-compare": "^1.0.0" - } - }, "pnp-webpack-plugin": { "version": "1.6.4", "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", @@ -12990,7 +15385,7 @@ "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", "dev": true }, "postcss": { @@ -13002,6 +15397,14 @@ "nanoid": "^3.1.28", "picocolors": "^0.2.1", "source-map-js": "^0.6.2" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + } } }, "postcss-attribute-case-insensitive": { @@ -13014,6 +15417,12 @@ "postcss-selector-parser": "^6.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13023,12 +15432,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13042,6 +15445,12 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13051,12 +15460,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13071,6 +15474,12 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13080,12 +15489,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13099,6 +15502,12 @@ "postcss-values-parser": "^2.0.1" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13108,12 +15517,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13128,6 +15531,12 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13137,12 +15546,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13156,6 +15559,12 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13165,12 +15574,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13183,6 +15586,12 @@ "postcss": "^7.0.14" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13192,12 +15601,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13211,6 +15614,12 @@ "postcss-values-parser": "^2.0.1" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13220,12 +15629,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13245,6 +15648,12 @@ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13265,12 +15674,6 @@ "indexes-of": "^1.0.1", "uniq": "^1.0.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13290,6 +15693,12 @@ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13310,12 +15719,6 @@ "indexes-of": "^1.0.1", "uniq": "^1.0.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13329,6 +15732,12 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13338,12 +15747,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13357,6 +15760,12 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13366,12 +15775,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13390,6 +15793,12 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13399,12 +15808,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13417,6 +15820,12 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13426,12 +15835,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13444,33 +15847,12 @@ "postcss": "^7.0.2" }, "dependencies": { - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true - } - } - }, - "postcss-gap-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", - "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13480,91 +15862,32 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } - } - }, - "postcss-html": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", - "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", - "dev": true, - "requires": { - "htmlparser2": "^3.10.0" - }, - "dependencies": { - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - } - } - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + } + }, + "postcss-gap-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", + "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } } } @@ -13579,6 +15902,12 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13588,12 +15917,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13617,6 +15940,12 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13626,12 +15955,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13656,33 +15979,12 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true - } - } - }, - "postcss-less": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz", - "integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==", - "dev": true, - "requires": { - "postcss": "^7.0.14" - }, - "dependencies": { + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13692,12 +15994,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13714,12 +16010,51 @@ "semver": "^7.3.4" }, "dependencies": { - "lru-cache": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.7.3.tgz", - "integrity": "sha512-WY9wjJNQt9+PZilnLbuFKM+SwDull9+6IAguOrarOMoOHTcJ9GnXSO11+Gw6c7xtDkBkthR57OZMtZKYr+1CEw==", + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -13732,13 +16067,19 @@ } }, "semver": { - "version": "7.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.6.tgz", - "integrity": "sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { - "lru-cache": "^7.4.0" + "lru-cache": "^6.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -13751,6 +16092,12 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13760,12 +16107,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13778,6 +16119,12 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13787,19 +16134,13 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, "postcss-media-query-parser": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", "dev": true }, "postcss-mixins": { @@ -13812,6 +16153,22 @@ "postcss-js": "^3.0.3", "postcss-simple-vars": "^6.0.3", "sugarss": "^3.0.3" + }, + "dependencies": { + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + } } }, "postcss-modules-extract-imports": { @@ -13823,6 +16180,12 @@ "postcss": "^7.0.5" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13832,12 +16195,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13853,6 +16210,12 @@ "postcss-value-parser": "^4.1.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13862,12 +16225,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13881,6 +16238,12 @@ "postcss-selector-parser": "^6.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13890,12 +16253,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13909,6 +16266,12 @@ "postcss": "^7.0.6" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13918,12 +16281,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13945,6 +16302,12 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13954,12 +16317,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13972,6 +16329,12 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -13981,12 +16344,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -13999,6 +16356,12 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -14008,12 +16371,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -14027,6 +16384,12 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -14036,12 +16399,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -14090,6 +16447,12 @@ "postcss-selector-not": "^4.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -14099,12 +16462,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -14118,117 +16475,18 @@ "postcss-selector-parser": "^5.0.0-rc.3" }, "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "dev": true, - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-pxtorem": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-pxtorem/-/postcss-pxtorem-6.0.0.tgz", - "integrity": "sha512-ZRXrD7MLLjLk2RNGV6UA4f5Y7gy+a/j1EqjAfp9NdcNYVjUMvg5HTYduTjSkKBkRkfqbg/iKrjMO70V4g1LZeg==", - "dev": true - }, - "postcss-replace-overflow-wrap": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", - "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", - "dev": true - }, - "postcss-safe-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", - "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", - "dev": true, - "requires": { - "postcss": "^7.0.26" - }, - "dependencies": { - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-sass": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz", - "integrity": "sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==", - "dev": true, - "requires": { - "gonzales-pe": "^4.3.0", - "postcss": "^7.0.21" - }, - "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true + }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -14239,23 +16497,40 @@ "source-map": "^0.6.1" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } } } }, - "postcss-scss": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz", - "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==", + "postcss-pxtorem": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-pxtorem/-/postcss-pxtorem-6.0.0.tgz", + "integrity": "sha512-ZRXrD7MLLjLk2RNGV6UA4f5Y7gy+a/j1EqjAfp9NdcNYVjUMvg5HTYduTjSkKBkRkfqbg/iKrjMO70V4g1LZeg==", + "dev": true + }, + "postcss-replace-overflow-wrap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", + "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", "dev": true, "requires": { - "postcss": "^7.0.6" + "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -14265,15 +16540,21 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, + "postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "dev": true + }, + "postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true + }, "postcss-selector-matches": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", @@ -14284,6 +16565,12 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -14293,12 +16580,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -14312,6 +16593,12 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -14321,19 +16608,13 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, "postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -14347,37 +16628,9 @@ "dev": true }, "postcss-sorting": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-5.0.1.tgz", - "integrity": "sha512-Y9fUFkIhfrm6i0Ta3n+89j56EFqaNRdUKqXyRp6kvTcSXnmgEjaVowCXH+JBe9+YKWqd4nc28r2sgwnzJalccA==", - "dev": true, - "requires": { - "lodash": "^4.17.14", - "postcss": "^7.0.17" - }, - "dependencies": { - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-syntax": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", - "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-7.0.1.tgz", + "integrity": "sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==", "dev": true }, "postcss-value-parser": { @@ -14418,9 +16671,9 @@ } }, "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", "dev": true }, "prettier": { @@ -14448,19 +16701,19 @@ "pretty-hrtime": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", "dev": true }, "prismjs": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", - "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", "dev": true }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true }, "process-nextick-args": { @@ -14478,38 +16731,38 @@ "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", "dev": true }, "promise.allsettled": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.5.tgz", - "integrity": "sha512-tVDqeZPoBC0SlzJHzWGZ2NKAguVq2oiYj7gbggbiTvH2itHohijTp7njOUA0aQ/nl+0lr/r6egmhoYu63UZ/pQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.6.tgz", + "integrity": "sha512-22wJUOD3zswWFqgwjNHa1965LvqTX87WPu/lreY2KSd7SVcERfuZ4GfUaOnJNnvtoIv2yXT/W00YIGMetXtFXg==", "dev": true, "requires": { - "array.prototype.map": "^1.0.4", + "array.prototype.map": "^1.0.5", "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "iterate-value": "^1.0.2" } }, "promise.prototype.finally": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.3.tgz", - "integrity": "sha512-EXRF3fC9/0gz4qkt/f5EP5iW4kj9oFpBICNpCNOb/52+8nlHIX07FPLbi/q4qYBQ1xZqivMzTpNQSnArVASolQ==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.4.tgz", + "integrity": "sha512-nNc3YbgMfLzqtqvO/q5DP6RR0SiHI9pUPGzyDf1q+usTwCN2kjvAnJkBb7bHe3o+fFSBPpsGMoYtaSi+LTNqng==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", + "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", "dev": true, "requires": { "kleur": "^3.0.3", @@ -14533,12 +16786,6 @@ } } }, - "propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "dev": true - }, "property-information": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", @@ -14566,13 +16813,13 @@ "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true }, "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, "public-encrypt": { @@ -14631,36 +16878,32 @@ } }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", "dev": true }, "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" }, "querystring": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", - "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", "dev": true }, "querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", "dev": true }, "queue-microtask": { @@ -14675,18 +16918,10 @@ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, "ramda": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz", - "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.28.0.tgz", + "integrity": "sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==", "dev": true }, "randombytes": { @@ -14722,13 +16957,6 @@ "http-errors": "1.8.1", "iconv-lite": "0.4.24", "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" - } } }, "raw-loader": { @@ -14741,6 +16969,29 @@ "schema-utils": "^3.0.0" }, "dependencies": { + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -14784,17 +17035,17 @@ } }, "react-clientside-effect": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.5.tgz", - "integrity": "sha512-2bL8qFW1TGBHozGGbVeyvnggRpMjibeZM2536AKNENLECutp2yfs44IL8Hmpn8qjFQ2K7A9PnYf3vc7aQq/cPA==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz", + "integrity": "sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==", "requires": { "@babel/runtime": "^7.12.13" } }, "react-colorful": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.5.1.tgz", - "integrity": "sha512-M1TJH2X3RXEt12sWkpa6hLc/bbYS0H6F4rIqjQZ+RxNBstpY67d9TrFXtqdZwhpmBXcCwEi7stKqFue3ZRkiOg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", + "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", "dev": true }, "react-dev-utils": { @@ -14838,14 +17089,11 @@ "@babel/highlight": "^7.10.4" } }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true }, "browserslist": { "version": "4.14.2", @@ -14859,38 +17107,21 @@ "node-releases": "^1.1.61" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - } - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "color-name": "1.1.3" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true }, "escape-string-regexp": { @@ -14899,40 +17130,20 @@ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", "dev": true, "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" + "duplexer": "^0.1.1", + "pify": "^4.0.1" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true }, "loader-utils": { @@ -14946,53 +17157,31 @@ "json5": "^2.1.2" } }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, "node-releases": { "version": "1.1.77", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==", "dev": true }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true }, - "prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", - "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "shebang-regex": "^3.0.0" } }, - "shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "strip-ansi": { @@ -15004,21 +17193,21 @@ "ansi-regex": "^5.0.0" } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "isexe": "^2.0.0" } } } }, "react-docgen": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.4.0.tgz", - "integrity": "sha512-JBjVQ9cahmNlfjMGxWUxJg919xBBKAoy3hgDgKERbR+BcF4ANpDuzWAScC7j27hZfd8sJNmMPOLWo9+vB/XJEQ==", + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.4.3.tgz", + "integrity": "sha512-xlLJyOlnfr8lLEEeaDZ+X2J/KJoe6Nr9AzxnkdQWush5hz2ZSu66w6iLMOScMmxoSHWpWMn+k3v5ZiyCfcWsOA==", "dev": true, "requires": { "@babel/core": "^7.7.5", @@ -15058,13 +17247,13 @@ } }, "react-draggable": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.4.tgz", - "integrity": "sha512-6e0WdcNLwpBx/YIDpoyd2Xb04PB0elrDrulKUgdrIlwuYvxh5Ok9M+F8cljm8kPXXs43PmMzek9RrB1b7mLMqA==", + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.5.tgz", + "integrity": "sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g==", "dev": true, "requires": { "clsx": "^1.1.1", - "prop-types": "^15.6.0" + "prop-types": "^15.8.1" } }, "react-element-to-jsx-string": { @@ -15087,9 +17276,9 @@ } }, "react-error-overlay": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz", - "integrity": "sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==", + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==", "dev": true }, "react-fast-compare": { @@ -15112,9 +17301,9 @@ } }, "react-helmet-async": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.2.3.tgz", - "integrity": "sha512-mCk2silF53Tq/YaYdkl2sB+/tDoPnaxN7dFS/6ZLJb/rhUY2EWGI5Xj2b4jHppScMqY45MbgPSwTxDchKpZ5Kw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", "dev": true, "requires": { "@babel/runtime": "^7.12.5", @@ -15124,14 +17313,10 @@ "shallowequal": "^1.1.0" } }, - "react-imask": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/react-imask/-/react-imask-6.4.3.tgz", - "integrity": "sha512-5WyCbubQErO8Wr/zLDyUyC1zCqQXP979QXW6BNirUGsM1VxFmVG0nNfXA1PSXlgdbaXWBiBj+VJBvg/8BDzieA==", - "requires": { - "imask": "^6.4.3", - "prop-types": "^15.7.2" - } + "react-hook-mask": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/react-hook-mask/-/react-hook-mask-1.1.11.tgz", + "integrity": "sha512-GBCOUh57Q1K08Xl3CkjCsvIQU+PNisZc+jq5QtdFqQ/p2/HcqmO8x5Jw3ODnC5AcGexwx3rWzslSmAKqHjapGA==" }, "react-inspector": { "version": "5.1.1", @@ -15155,27 +17340,10 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", "dev": true }, - "react-motion": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.5.2.tgz", - "integrity": "sha512-9q3YAvHoUiWlP3cK0v+w1N5Z23HXMj4IF4YuvjvWegWqNPfLXsOBE/V7UvQGpXxHFKRQQcNcVQE31g9SB/6qgQ==", - "requires": { - "performance-now": "^0.2.0", - "prop-types": "^15.5.8", - "raf": "^3.1.0" - }, - "dependencies": { - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha512-YHk5ez1hmMR5LOkb9iJkLKqoBlL7WD5M8ljC75ZfzXriuBIVNuecaXuU7e+hOwyqf24Wxhh7Vxgt7Hnw9288Tg==" - } - } - }, "react-popper": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.2.5.tgz", - "integrity": "sha512-kxGkS80eQGtLl18+uig1UIf9MKixFSyPxglsgLBxlYnyDf65BiY9B3nZSc6C9XUNDgStROB0fMQlTEz1KxGddw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", + "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", "dev": true, "requires": { "react-fast-compare": "^3.0.1", @@ -15198,14 +17366,6 @@ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==" }, - "react-scroll-horizontal": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/react-scroll-horizontal/-/react-scroll-horizontal-1.6.6.tgz", - "integrity": "sha512-aR5xE+5EOTQhhrljztHT5qqKEiYU+mKTePaQZJQqikREN0brNfpZst7QP2iEeQo8aip+r7ljTxQZOmfT3OwdSg==", - "requires": { - "react-motion": "^0.5.2" - } - }, "react-sizeme": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/react-sizeme/-/react-sizeme-3.0.2.tgz", @@ -15232,20 +17392,20 @@ } }, "react-textarea-autosize": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.3.tgz", - "integrity": "sha512-2XlHXK2TDxS6vbQaoPbMOfQ8GK7+irc2fVK6QFIcC8GOnH3zI/v481n+j1L0WaPVvKxwesnY93fEfH++sus2rQ==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.4.0.tgz", + "integrity": "sha512-YrTFaEHLgJsi8sJVYHBzYn+mkP3prGkmP2DKb/tm0t7CLJY5t1Rxix8070LAKb0wby7bl/lf2EeHkuMihMZMwQ==", "dev": true, "requires": { "@babel/runtime": "^7.10.2", - "use-composed-ref": "^1.0.0", - "use-latest": "^1.0.0" + "use-composed-ref": "^1.3.0", + "use-latest": "^1.2.1" } }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", "dev": true, "requires": { "pify": "^2.3.0" @@ -15254,7 +17414,7 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true } } @@ -15280,53 +17440,14 @@ } }, "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - } + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" } }, "readable-stream": { @@ -15340,9 +17461,9 @@ } }, "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { "picomatch": "^2.2.1" @@ -15387,6 +17508,14 @@ "hastscript": "^6.0.0", "parse-entities": "^2.0.0", "prismjs": "~1.27.0" + }, + "dependencies": { + "prismjs": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", + "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", + "dev": true + } } }, "regenerate": { @@ -15396,23 +17525,23 @@ "dev": true }, "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "dev": true, "requires": { "regenerate": "^1.4.2" } }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dev": true, "requires": { "@babel/runtime": "^7.8.4" @@ -15429,13 +17558,14 @@ } }, "regexp.prototype.flags": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", - "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" } }, "regexpp": { @@ -15445,29 +17575,29 @@ "dev": true }, "regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", "dev": true, "requires": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" } }, "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", "dev": true }, "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -15476,7 +17606,7 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true } } @@ -15484,31 +17614,9 @@ "relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", "dev": true }, - "remark": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", - "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", - "dev": true, - "requires": { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - "unified": "^9.1.0" - }, - "dependencies": { - "remark-parse": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", - "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", - "dev": true, - "requires": { - "mdast-util-from-markdown": "^0.8.0" - } - } - } - }, "remark-external-links": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/remark-external-links/-/remark-external-links-8.0.0.tgz", @@ -15594,11 +17702,38 @@ "@babel/helper-plugin-utils": "^7.10.4" } }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true } } }, @@ -15646,19 +17781,10 @@ "mdast-squeeze-paragraphs": "^4.0.0" } }, - "remark-stringify": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", - "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", - "dev": true, - "requires": { - "mdast-util-to-markdown": "^0.6.0" - } - }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", "dev": true }, "renderkid": { @@ -15672,23 +17798,6 @@ "htmlparser2": "^6.1.0", "lodash": "^4.17.21", "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } } }, "repeat-element": { @@ -15700,13 +17809,13 @@ "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true }, "request-progress": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", - "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", + "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", "dev": true, "requires": { "throttleit": "^1.0.0" @@ -15715,7 +17824,7 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, "require-from-string": { @@ -15724,18 +17833,13 @@ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "requires": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -15749,7 +17853,7 @@ "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", "dev": true }, "restore-cursor": { @@ -15781,9 +17885,9 @@ "dev": true }, "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { "glob": "^7.1.3" @@ -15805,6 +17909,12 @@ "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", "dev": true }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -15817,35 +17927,46 @@ "run-queue": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", "dev": true, "requires": { "aproba": "^1.1.1" } }, "rxjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", - "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dev": true, "requires": { "tslib": "^2.1.0" } }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", "dev": true, "requires": { "ret": "~0.1.10" } }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -15899,7 +18020,7 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -15907,38 +18028,10 @@ } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -15950,7 +18043,7 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -15958,31 +18051,10 @@ } } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -15991,7 +18063,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -15999,10 +18071,10 @@ } } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true }, "micromatch": { @@ -16029,66 +18101,21 @@ "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, "requires": { "remove-trailing-separator": "^1.0.1" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -16124,12 +18151,6 @@ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, "send": { "version": "0.17.2", "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", @@ -16150,21 +18171,6 @@ "statuses": "~1.5.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -16173,9 +18179,9 @@ } }, "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -16184,7 +18190,7 @@ "serve-favicon": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", - "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", + "integrity": "sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA==", "dev": true, "requires": { "etag": "~1.8.1", @@ -16222,7 +18228,13 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "set-cookie-parser": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", + "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", "dev": true }, "set-value": { @@ -16240,24 +18252,18 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true } } }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true }, "setprototypeof": { @@ -16306,30 +18312,51 @@ "tunnel-agent": "^0.6.0" }, "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { "lru-cache": "^6.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, "requires": { - "shebang-regex": "^3.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", "dev": true }, "side-channel": { @@ -16366,12 +18393,6 @@ "simple-concat": "^1.0.0" } }, - "simple-git-hooks": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/simple-git-hooks/-/simple-git-hooks-2.6.1.tgz", - "integrity": "sha512-nvqaNfgvcjN3cGSYJSdjwB+tP8YKRCyvuUvQ24luIjIpGhUCPpZDTJ+p+hcJiwc0lZlTCl0NayfBVDoIMG7Jpg==", - "dev": true - }, "simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -16389,6 +18410,17 @@ } } }, + "sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dev": true, + "requires": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + } + }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -16410,6 +18442,38 @@ "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + } } }, "snapdragon": { @@ -16428,19 +18492,10 @@ "use": "^3.1.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -16449,85 +18504,16 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true } } @@ -16546,11 +18532,46 @@ "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true } } }, @@ -16563,16 +18584,10 @@ "kind-of": "^3.2.0" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -16587,10 +18602,9 @@ "dev": true }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-js": { "version": "0.6.2", @@ -16619,14 +18633,6 @@ "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "source-map-url": { @@ -16668,15 +18674,9 @@ } }, "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, - "specificity": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", - "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", "dev": true }, "split-string": { @@ -16691,7 +18691,7 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, "sshpk": { @@ -16712,12 +18712,12 @@ } }, "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", "dev": true, "requires": { - "minipass": "^3.1.1" + "figgy-pudding": "^3.5.1" } }, "stable": { @@ -16727,9 +18727,9 @@ "dev": true }, "stackframe": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", - "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", "dev": true }, "state-toggle": { @@ -16741,7 +18741,7 @@ "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", "dev": true, "requires": { "define-property": "^0.2.5", @@ -16751,86 +18751,32 @@ "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + }, + "stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "requires": { + "internal-slot": "^1.0.4" + } }, "store2": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/store2/-/store2-2.13.2.tgz", - "integrity": "sha512-CMtO2Uneg3SAz/d6fZ/6qbqqQHi2ynq6/KzMD/26gTkiEShCcpqFfTHgOxsE0egAq6SX3FmN4CeSqn8BzXQkJg==", + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", + "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==", "dev": true }, "storybook-addon-outline": { @@ -16865,17 +18811,65 @@ "stream-shift": "^1.0.0" } }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, - "string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true + "strict-event-emitter": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.8.tgz", + "integrity": "sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==", + "dev": true, + "requires": { + "events": "^3.3.0" + } }, "string-hash": { "version": "1.1.3", @@ -16883,80 +18877,74 @@ "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==" }, "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - } + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string.prototype.matchall": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", + "regexp.prototype.flags": "^1.4.3", "side-channel": "^1.0.4" } }, "string.prototype.padend": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", - "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", + "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "string.prototype.padstart": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.3.tgz", - "integrity": "sha512-NZydyOMtYxpTjGqp0VN5PYUF/tsU15yDMZnUdj16qRUIUiMJkHHSDElYyQFrMu+/WloTpA7MQSiADhBicDfaoA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.4.tgz", + "integrity": "sha512-XqOHj8horGsF+zwxraBvMTkBFM28sS/jHBJajh17JtJKA92qazidiQbLosV4UA18azvLOVKYo/E3g3T9Y5826w==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "string_decoder": { @@ -16965,45 +18953,27 @@ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" } }, "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "requires": { - "ansi-regex": "^5.0.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", "dev": true }, "strip-final-newline": { @@ -17035,12 +19005,37 @@ "requires": { "loader-utils": "^2.0.0", "schema-utils": "^2.7.0" + }, + "dependencies": { + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } } }, "style-search": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", "dev": true }, "style-to-object": { @@ -17067,54 +19062,6 @@ "stylis-rule-sheet": "0.0.10" }, "dependencies": { - "@babel/plugin-syntax-jsx": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", - "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==" - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - } - }, "source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", @@ -17123,149 +19070,215 @@ } }, "stylelint": { - "version": "13.13.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.13.1.tgz", - "integrity": "sha512-Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==", + "version": "14.16.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz", + "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==", "dev": true, "requires": { - "@stylelint/postcss-css-in-js": "^0.37.2", - "@stylelint/postcss-markdown": "^0.36.2", - "autoprefixer": "^9.8.6", + "@csstools/selector-specificity": "^2.0.2", "balanced-match": "^2.0.0", - "chalk": "^4.1.1", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", - "execall": "^2.0.0", - "fast-glob": "^3.2.5", - "fastest-levenshtein": "^1.0.12", + "colord": "^2.9.3", + "cosmiconfig": "^7.1.0", + "css-functions-list": "^3.1.0", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "fastest-levenshtein": "^1.0.16", "file-entry-cache": "^6.0.1", - "get-stdin": "^8.0.0", "global-modules": "^2.0.0", - "globby": "^11.0.3", + "globby": "^11.1.0", "globjoin": "^0.1.4", - "html-tags": "^3.1.0", - "ignore": "^5.1.8", + "html-tags": "^3.2.0", + "ignore": "^5.2.1", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", - "known-css-properties": "^0.21.0", - "lodash": "^4.17.21", - "log-symbols": "^4.1.0", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.26.0", "mathml-tag-names": "^2.1.3", "meow": "^9.0.0", - "micromatch": "^4.0.4", - "normalize-selector": "^0.2.0", - "postcss": "^7.0.35", - "postcss-html": "^0.36.0", - "postcss-less": "^3.1.4", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.19", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^4.0.2", - "postcss-sass": "^0.4.4", - "postcss-scss": "^2.1.1", - "postcss-selector-parser": "^6.0.5", - "postcss-syntax": "^0.36.2", - "postcss-value-parser": "^4.1.0", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", - "slash": "^3.0.0", - "specificity": "^0.4.1", - "string-width": "^4.2.2", - "strip-ansi": "^6.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", "style-search": "^0.1.0", - "sugarss": "^2.0.0", + "supports-hyperlinks": "^2.3.0", "svg-tags": "^1.0.0", - "table": "^6.6.0", + "table": "^6.8.1", "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^3.0.3" + "write-file-atomic": "^4.0.2" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, "balanced-match": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", "dev": true }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", "dev": true, "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true }, - "sugarss": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", - "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "requires": { - "postcss": "^7.0.2" + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" } } } }, "stylelint-config-idiomatic-order": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/stylelint-config-idiomatic-order/-/stylelint-config-idiomatic-order-8.1.0.tgz", - "integrity": "sha512-iTPY6JjbkIdzy+21x3a1xi/tG33zKhLJb6lZl1xg6jZrXjgIYelnRZ5xVtbcEP9rElxZq/Zu1eGthfvI+ri+YQ==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-idiomatic-order/-/stylelint-config-idiomatic-order-9.0.0.tgz", + "integrity": "sha512-+LtfPycY1Paayf1MaERyh6BzVPnZxemX5NtzdUPqi4u8hyAR7859f/4EL02+Kr9va76iX7mbYC4HendocXKJZQ==", "dev": true, "requires": { - "stylelint-order": "^3.1.1" + "stylelint-order": "^5.0.0" } }, "stylelint-config-recommended": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-5.0.0.tgz", - "integrity": "sha512-c8aubuARSu5A3vEHLBeOSJt1udOdS+1iue7BmJDTSXoCBmfEQmmWX+59vYIj3NQdJBY6a/QRv1ozVFpaB9jaqA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz", + "integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==", "dev": true }, "stylelint-config-standard": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-22.0.0.tgz", - "integrity": "sha512-uQVNi87SHjqTm8+4NIP5NMAyY/arXrBgimaaT7skvRfE9u3JKXRK9KBkbr4pVmeciuCcs64kAdjlxfq6Rur7Hw==", + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-29.0.0.tgz", + "integrity": "sha512-uy8tZLbfq6ZrXy4JKu3W+7lYLgRQBxYTUUB88vPgQ+ZzAxdrvcaSUW9hOMNLYBnwH+9Kkj19M2DHdZ4gKwI7tg==", "dev": true, "requires": { - "stylelint-config-recommended": "^5.0.0" + "stylelint-config-recommended": "^9.0.0" } }, "stylelint-order": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-3.1.1.tgz", - "integrity": "sha512-4gP/r8j/6JGZ/LL41b2sYtQqfwZl4VSqTp7WeIwI67v/OXNQ08dnn64BGXNwAUSgb2+YIvIOxQaMzqMyQMzoyQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-5.0.0.tgz", + "integrity": "sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==", "dev": true, "requires": { - "lodash": "^4.17.15", - "postcss": "^7.0.17", - "postcss-sorting": "^5.0.1" + "postcss": "^8.3.11", + "postcss-sorting": "^7.0.1" }, "dependencies": { "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", "dev": true, "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true } } @@ -17290,14 +19303,34 @@ } }, "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "requires": { "has-flag": "^4.0.0" } }, + "supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -17313,7 +19346,7 @@ "svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", "dev": true }, "svgo": { @@ -17337,41 +19370,6 @@ "util.promisify": "~1.0.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, "css-select": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", @@ -17398,8 +19396,22 @@ "requires": { "domelementtype": "^2.0.1", "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + } } }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, "domutils": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", @@ -17408,22 +19420,8 @@ "requires": { "dom-serializer": "0", "domelementtype": "1" - }, - "dependencies": { - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - } } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, "nth-check": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", @@ -17432,18 +19430,17 @@ "requires": { "boolbase": "~1.0.0" } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, + "swr": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.1.0.tgz", + "integrity": "sha512-4hYl5p3/KalQ1MORealM79g/DtLohmud6yyfXw5l4wjtFksYUnocRFudvyaoUtgj3FrVNK9lS25Av9dsZYvz0g==", + "requires": { + "use-sync-external-store": "^1.2.0" + } + }, "symbol.prototype.description": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/symbol.prototype.description/-/symbol.prototype.description-1.0.5.tgz", @@ -17456,10 +19453,20 @@ "object.getownpropertydescriptors": "^2.1.2" } }, + "synckit": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", + "dev": true, + "requires": { + "@pkgr/utils": "^2.3.1", + "tslib": "^2.5.0" + } + }, "table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", "dev": true, "requires": { "ajv": "^8.0.1", @@ -17470,9 +19477,9 @@ }, "dependencies": { "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -17481,6 +19488,42 @@ "uri-js": "^4.2.2" } }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -17497,6 +19540,26 @@ "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } } } }, @@ -17507,24 +19570,42 @@ "dev": true }, "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^4.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "minipass": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.2.tgz", + "integrity": "sha512-4Hbzei7ZyBp+1aw0874YWpKOubZd/jc53/XU+gkYry1QV+VvrbO8icLM5CUtm4F0hyXn85DXYKEMIS26gitD3A==", + "dev": true + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -17538,14 +19619,6 @@ "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.1.4" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - } } }, "tar-stream": { @@ -17575,14 +19648,6 @@ "isobject": "^4.0.0", "lodash": "^4.17.21", "memoizerific": "^1.11.3" - }, - "dependencies": { - "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", - "dev": true - } } }, "term-size": { @@ -17592,9 +19657,9 @@ "dev": true }, "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", "dev": true, "requires": { "commander": "^2.20.0", @@ -17607,12 +19672,6 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -17633,10 +19692,36 @@ "webpack-sources": "^1.4.3" }, "dependencies": { - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, "commander": { @@ -17656,23 +19741,24 @@ "pkg-dir": "^4.1.0" } }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" } }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "requires": { - "p-locate": "^4.1.0" + "yallist": "^4.0.0" } }, "make-dir": { @@ -17684,24 +19770,19 @@ "semver": "^6.0.0" } }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } + "yocto-queue": "^0.1.0" } }, "pkg-dir": { @@ -17713,6 +19794,15 @@ "find-up": "^4.0.0" } }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -17724,31 +19814,50 @@ "ajv-keywords": "^3.5.2" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } }, "terser": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", - "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", + "version": "5.16.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz", + "integrity": "sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==", "dev": true, "requires": { + "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.7.2", "source-map-support": "~0.5.20" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -17766,7 +19875,7 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "throttle-debounce": { @@ -17778,13 +19887,13 @@ "throttleit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", - "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "integrity": "sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==", "dev": true }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "through2": { @@ -17797,12 +19906,6 @@ "xtend": "~4.0.1" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -17818,6 +19921,12 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -17838,6 +19947,16 @@ "setimmediate": "^1.0.4" } }, + "tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dev": true, + "requires": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, "tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", @@ -17845,6 +19964,17 @@ "dev": true, "requires": { "rimraf": "^3.0.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "tmpl": { @@ -17856,33 +19986,27 @@ "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", "dev": true }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -17906,6 +20030,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { "is-number": "^7.0.0" } @@ -17913,7 +20038,7 @@ "toggle-selection": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", "dev": true }, "toidentifier": { @@ -17921,6 +20046,12 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, + "totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true + }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -17932,18 +20063,15 @@ } }, "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true }, "trim": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", + "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==", "dev": true }, "trim-newlines": { @@ -17986,17 +20114,6 @@ "json5": "^1.0.1", "minimist": "^1.2.6", "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } } }, "tsconfig-paths-webpack-plugin": { @@ -18008,12 +20125,73 @@ "chalk": "^4.1.0", "enhanced-resolve": "^5.7.0", "tsconfig-paths": "^3.9.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + } } }, "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, "tsutils": { "version": "3.21.0", @@ -18032,10 +20210,16 @@ } } }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, "requires": { "safe-buffer": "^5.0.1" @@ -18044,16 +20228,16 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", "dev": true }, "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "dev": true, "requires": { - "prelude-ls": "^1.2.1" + "prelude-ls": "~1.1.2" } }, "type-fest": { @@ -18071,10 +20255,21 @@ "mime-types": "~2.1.24" } }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, "typedarray-to-buffer": { @@ -18087,27 +20282,27 @@ } }, "typescript": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", - "integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", "dev": true }, "uglify-js": { - "version": "3.15.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.3.tgz", - "integrity": "sha512-6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg==", + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "dev": true, "optional": true }, "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" } }, @@ -18144,15 +20339,15 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true }, "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true }, "unified": { @@ -18169,10 +20364,10 @@ "vfile": "^4.0.0" }, "dependencies": { - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true } } @@ -18187,20 +20382,12 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } } }, "uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", "dev": true }, "unique-filename": { @@ -18227,15 +20414,6 @@ "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", "dev": true }, - "unist-util-find-all-after": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz", - "integrity": "sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==", - "dev": true, - "requires": { - "unist-util-is": "^4.0.0" - } - }, "unist-util-generated": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", @@ -18311,18 +20489,18 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, "unquote": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", "dev": true }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", "dev": true, "requires": { "has-value": "^0.3.1", @@ -18332,7 +20510,7 @@ "has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", "dev": true, "requires": { "get-value": "^2.0.3", @@ -18343,7 +20521,7 @@ "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", "dev": true, "requires": { "isarray": "1.0.0" @@ -18354,13 +20532,13 @@ "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", "dev": true }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true } } @@ -18378,6 +20556,16 @@ "dev": true, "optional": true }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -18390,13 +20578,13 @@ "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", "dev": true }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", "dev": true, "requires": { "punycode": "1.3.2", @@ -18406,13 +20594,7 @@ "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", "dev": true } } @@ -18428,6 +20610,29 @@ "schema-utils": "^3.0.0" }, "dependencies": { + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -18448,14 +20653,17 @@ "dev": true }, "use-callback-ref": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.2.5.tgz", - "integrity": "sha512-gN3vgMISAgacF7sqsLPByqoePooY3n2emTH59Ur5d/M8eg4WTWu1xp8i8DHjohftIyEx0S08RiYxbffr4j8Peg==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", + "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", + "requires": { + "tslib": "^2.0.0" + } }, "use-composed-ref": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.2.1.tgz", - "integrity": "sha512-6+X1FLlIcjvFMAeAD/hcxDT8tmyrWnbSPMU0EnxQuDLIxokuFzWliXBiYZuGIx+mrAMLBw0WFfCkaPw8ebzAhw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", + "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", "dev": true }, "use-isomorphic-layout-effect": { @@ -18465,28 +20673,21 @@ "dev": true }, "use-latest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.0.tgz", - "integrity": "sha512-d2TEuG6nSLKQLAfW3By8mKr8HurOlTkul0sOpxbClIv4SQ4iOd7BYr7VIzdbktUCnv7dua/60xzd8igMU6jmyw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", + "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", "dev": true, "requires": { - "use-isomorphic-layout-effect": "^1.0.0" + "use-isomorphic-layout-effect": "^1.1.1" } }, "use-sidecar": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.0.5.tgz", - "integrity": "sha512-k9jnrjYNwN6xYLj1iaGhonDghfvmeTmYjAiGvOr7clwKfPjMXJf4/HOr7oT5tJwYafgp2tG2l3eZEOfoELiMcA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", "requires": { "detect-node-es": "^1.1.0", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } + "tslib": "^2.0.0" } }, "use-subscription": { @@ -18497,10 +20698,32 @@ "object-assign": "^4.1.1" } }, + "use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + } + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "util.promisify": { "version": "1.0.0", @@ -18515,13 +20738,13 @@ "utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", "dev": true }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, "uuid": { "version": "3.4.0", @@ -18532,7 +20755,7 @@ "uuid-browser": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uuid-browser/-/uuid-browser-3.1.0.tgz", - "integrity": "sha1-DwWkCu90+eWVHiDvv0SxGHHlZBA=", + "integrity": "sha512-dsNgbLaTrd6l3MMxTtouOCFw4CBFc/3a+GgYA2YyrJvyQ1u6q4pcu3ktLoUZ/VN/Aw9WsauazbgsgdfVWgAKQg==", "dev": true }, "v8-compile-cache": { @@ -18542,22 +20765,14 @@ "dev": true }, "v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", "dev": true, "requires": { + "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } + "convert-source-map": "^1.6.0" } }, "validate-npm-package-license": { @@ -18573,12 +20788,12 @@ "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "dev": true, "requires": { "assert-plus": "^1.0.0", @@ -18604,6 +20819,14 @@ "is-buffer": "^2.0.0", "unist-util-stringify-position": "^2.0.0", "vfile-message": "^2.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true + } } }, "vfile-location": { @@ -18646,6 +20869,18 @@ "loose-envify": "^1.0.0" } }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, "watchpack-chokidar2": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", @@ -18670,7 +20905,7 @@ "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, "optional": true, "requires": { @@ -18708,7 +20943,7 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "optional": true, "requires": { @@ -18741,7 +20976,7 @@ "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, "optional": true, "requires": { @@ -18754,7 +20989,7 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "optional": true, "requires": { @@ -18777,7 +21012,7 @@ "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", "dev": true, "optional": true, "requires": { @@ -18788,7 +21023,7 @@ "is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", "dev": true, "optional": true, "requires": { @@ -18800,31 +21035,17 @@ "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", "dev": true, "optional": true, "requires": { "binary-extensions": "^1.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true, - "optional": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "optional": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "optional": true, "requires": { @@ -18834,7 +21055,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "optional": true, "requires": { @@ -18843,10 +21064,10 @@ } } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, "optional": true }, @@ -18900,6 +21121,13 @@ "readable-stream": "^2.0.2" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "optional": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -18913,7 +21141,7 @@ "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, "optional": true, "requires": { @@ -18923,6 +21151,40 @@ } } }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "web-encoding": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", + "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", + "dev": true, + "requires": { + "@zxing/text-encoding": "0.9.0", + "util": "^0.12.3" + }, + "dependencies": { + "util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + } + } + }, "web-namespaces": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", @@ -18930,9 +21192,9 @@ "dev": true }, "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "webpack": { @@ -18981,98 +21243,30 @@ "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" + "is-extendable": "^0.1.0" } } } }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -19084,7 +21278,7 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -19092,22 +21286,10 @@ } } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -19116,7 +21298,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -19124,47 +21306,12 @@ } } }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -19186,30 +21333,6 @@ "to-regex": "^3.0.2" } }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, "schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", @@ -19221,39 +21344,6 @@ "ajv-keywords": "^3.1.0" } }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, "terser-webpack-plugin": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", @@ -19274,36 +21364,74 @@ "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" } + } + } + }, + "webpack-bundle-analyzer": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz", + "integrity": "sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==", + "dev": true, + "requires": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } }, - "watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -19335,22 +21463,30 @@ "dev": true }, "webpack-hot-middleware": { - "version": "2.25.1", - "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.1.tgz", - "integrity": "sha512-Koh0KyU/RPYwel/khxbsDz9ibDivmUbrRuKSSQvW42KSDdO4w23WI3SkHpSUKHE76LrFnnM/L7JCrpBwu8AXYw==", + "version": "2.25.3", + "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.3.tgz", + "integrity": "sha512-IK/0WAHs7MTu1tzLTjio73LjS3Ov+VvBKQmE8WPlJutgG5zT6Urgq/BbAdRrHTRpyzK0dvAvFh1Qg98akxgZpA==", "dev": true, "requires": { "ansi-html-community": "0.0.8", "html-entities": "^2.1.0", - "querystring": "^0.2.0", "strip-ansi": "^6.0.0" }, "dependencies": { - "html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } } } }, @@ -19362,14 +21498,6 @@ "requires": { "ansi-colors": "^3.0.0", "uuid": "^3.3.2" - }, - "dependencies": { - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true - } } }, "webpack-sources": { @@ -19380,14 +21508,6 @@ "requires": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "webpack-virtual-modules": { @@ -19407,24 +21527,29 @@ "requires": { "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true } } }, "whatwg-url": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", - "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -19443,6 +21568,32 @@ "is-symbol": "^1.0.3" } }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, "wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", @@ -19459,6 +21610,40 @@ "dev": true, "requires": { "string-width": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } } }, "word-wrap": { @@ -19470,7 +21655,7 @@ "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", "dev": true }, "worker-farm": { @@ -19500,12 +21685,70 @@ "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "write-file-atomic": { @@ -19520,6 +21763,12 @@ "typedarray-to-buffer": "^3.1.5" } }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -19527,15 +21776,15 @@ "dev": true }, "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "yaml": { @@ -19557,6 +21806,46 @@ "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + } } }, "yargs-parser": { @@ -19568,7 +21857,7 @@ "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, "requires": { "buffer-crc32": "~0.2.3", diff --git a/package.json b/package.json index 18b8b90ff..851cfb353 100644 --- a/package.json +++ b/package.json @@ -8,12 +8,14 @@ "build": "next build", "start": "next start", "lint:js": "next lint", - "lint:css": "stylelint **/*.css --cache --allow-empty-input --fix", + "lint:css": "stylelint src/**/*.css --cache --allow-empty-input --fix", + "lint": "npm-run-all lint:*", "type-check": "tsc --noEmit --incremental", "storybook": "start-storybook -s public -p 3001", "build-storybook": "build-storybook -s public", "update-typings": "node ops/update-typings.js", - "e2e": "NEXT_PUBLIC_API_BASE_URL=http://localhost:3003/api node ops/e2e-run-tests" + "analyze": "ANALYZE=true next build", + "test:e2e": "NODE_ENV=test playwright test" }, "repository": { "type": "git", @@ -27,35 +29,39 @@ "dependencies": { "@funboxteam/diamonds": "8.2.1", "classnames": "2.3.1", - "date-fns": "2.28.0", + "date-fns": "2.29.3", "express": "4.17.2", - "http-proxy-middleware": "2.0.1", - "keen-slider": "5.5.1", + "keen-slider": "6.8.5", + "lodash": "4.17.21", "next": "12.0.8", "react": "17.0.2", "react-dom": "17.0.2", "react-focus-lock": "2.6.0", - "react-imask": "6.4.3", - "react-scroll-horizontal": "1.6.6" + "react-hook-mask": "1.1.11", + "swr": "2.1.0" }, "devDependencies": { "@babel/core": "7.15.5", + "@evilmartians/lefthook": "1.2.8", + "@faker-js/faker": "7.6.0", + "@next/bundle-analyzer": "13.1.2", + "@playwright/test": "1.30.0", "@storybook/addon-actions": "6.3.8", "@storybook/addon-essentials": "6.3.8", "@storybook/addon-links": "6.3.8", "@storybook/react": "6.3.8", "@svgr/webpack": "5.5.0", + "@types/lodash": "4.14.191", "@types/react": "17.0.20", "@types/react-dom": "17.0.11", - "@typescript-eslint/eslint-plugin": "4.31.0", + "@typescript-eslint/eslint-plugin": "5.48.0", "babel-loader": "8.2.2", - "connect": "3.7.0", "cypress": "10.0.1", - "eslint": "7.32.0", - "eslint-config-next": "12.0.4", - "fetch-mock": "9.11.0", - "lint-staged": "11.1.2", - "nock": "13.2.4", + "eslint": "8.3.0", + "eslint-config-next": "13.1.1", + "eslint-plugin-import": "2.27.5", + "msw": "0.47.4", + "npm-run-all": "4.1.5", "openapi-typescript-codegen": "0.20.1", "postcss": "8.3.9", "postcss-flexbugs-fixes": "5.0.2", @@ -66,15 +72,13 @@ "postcss-pxtorem": "6.0.0", "postcss-simple-vars": "6.0.3", "sharp": "0.30.6", - "simple-git-hooks": "2.6.1", - "stylelint": "13.13.1", - "stylelint-config-idiomatic-order": "8.1.0", - "stylelint-config-standard": "22.0.0", + "stylelint": "14.16.1", + "stylelint-config-idiomatic-order": "9.0.0", + "stylelint-config-standard": "29.0.0", "tsconfig-paths-webpack-plugin": "3.5.1", - "typescript": "4.5.2" + "typescript": "4.9.4" }, - "simple-git-hooks": { - "pre-commit": "npx lint-staged", - "pre-push": "npm run type-check" + "msw": { + "workerDirectory": "public" } } diff --git a/playwright.config.ts b/playwright.config.ts new file mode 100644 index 000000000..85975726b --- /dev/null +++ b/playwright.config.ts @@ -0,0 +1,32 @@ +import { defineConfig, devices } from '@playwright/test'; + +export default defineConfig({ + testDir: './e2e', + timeout: 30 * 1000, + expect: { + timeout: 5000 + }, + fullyParallel: true, + forbidOnly: !!process.env.CI, + retries: process.env.CI ? 2 : 0, + workers: process.env.CI ? 1 : undefined, + reporter: 'html', + use: { + actionTimeout: 0, + trace: 'on-first-retry', + }, + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + ], +}); diff --git a/postcss.config.js b/postcss.config.js index eb9232c36..f5d349d65 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,6 +1,11 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ + const path = require('path'); -const breakpoints = require('./src/shared/breakpoints'); +const variables = { + ...require('./src/shared/breakpoints'), + ...require('./src/shared/heights'), +}; module.exports = { plugins: [ @@ -19,12 +24,12 @@ module.exports = { }], 'postcss-import', ['postcss-simple-vars', { - variables: breakpoints, + variables, }], 'postcss-nested', ['postcss-pxtorem', { propList: ['*'], minPixelValue: 1, - }] + }], ], }; diff --git a/public/mockServiceWorker.js b/public/mockServiceWorker.js new file mode 100644 index 000000000..ab63a8495 --- /dev/null +++ b/public/mockServiceWorker.js @@ -0,0 +1,303 @@ +/* eslint-disable */ +/* tslint:disable */ + +/** + * Mock Service Worker (0.47.4). + * @see https://github.com/mswjs/msw + * - Please do NOT modify this file. + * - Please do NOT serve this file on production. + */ + +const INTEGRITY_CHECKSUM = 'b3066ef78c2f9090b4ce87e874965995' +const activeClientIds = new Set() + +self.addEventListener('install', function () { + self.skipWaiting() +}) + +self.addEventListener('activate', function (event) { + event.waitUntil(self.clients.claim()) +}) + +self.addEventListener('message', async function (event) { + const clientId = event.source.id + + if (!clientId || !self.clients) { + return + } + + const client = await self.clients.get(clientId) + + if (!client) { + return + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + switch (event.data) { + case 'KEEPALIVE_REQUEST': { + sendToClient(client, { + type: 'KEEPALIVE_RESPONSE', + }) + break + } + + case 'INTEGRITY_CHECK_REQUEST': { + sendToClient(client, { + type: 'INTEGRITY_CHECK_RESPONSE', + payload: INTEGRITY_CHECKSUM, + }) + break + } + + case 'MOCK_ACTIVATE': { + activeClientIds.add(clientId) + + sendToClient(client, { + type: 'MOCKING_ENABLED', + payload: true, + }) + break + } + + case 'MOCK_DEACTIVATE': { + activeClientIds.delete(clientId) + break + } + + case 'CLIENT_CLOSED': { + activeClientIds.delete(clientId) + + const remainingClients = allClients.filter((client) => { + return client.id !== clientId + }) + + // Unregister itself when there are no more clients + if (remainingClients.length === 0) { + self.registration.unregister() + } + + break + } + } +}) + +self.addEventListener('fetch', function (event) { + const { request } = event + const accept = request.headers.get('accept') || '' + + // Bypass server-sent events. + if (accept.includes('text/event-stream')) { + return + } + + // Bypass navigation requests. + if (request.mode === 'navigate') { + return + } + + // Opening the DevTools triggers the "only-if-cached" request + // that cannot be handled by the worker. Bypass such requests. + if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { + return + } + + // Bypass all requests when there are no active clients. + // Prevents the self-unregistered worked from handling requests + // after it's been deleted (still remains active until the next reload). + if (activeClientIds.size === 0) { + return + } + + // Generate unique request ID. + const requestId = Math.random().toString(16).slice(2) + + event.respondWith( + handleRequest(event, requestId).catch((error) => { + if (error.name === 'NetworkError') { + console.warn( + '[MSW] Successfully emulated a network error for the "%s %s" request.', + request.method, + request.url, + ) + return + } + + // At this point, any exception indicates an issue with the original request/response. + console.error( + `\ +[MSW] Caught an exception from the "%s %s" request (%s). This is probably not a problem with Mock Service Worker. There is likely an additional logging output above.`, + request.method, + request.url, + `${error.name}: ${error.message}`, + ) + }), + ) +}) + +async function handleRequest(event, requestId) { + const client = await resolveMainClient(event) + const response = await getResponse(event, client, requestId) + + // Send back the response clone for the "response:*" life-cycle events. + // Ensure MSW is active and ready to handle the message, otherwise + // this message will pend indefinitely. + if (client && activeClientIds.has(client.id)) { + ;(async function () { + const clonedResponse = response.clone() + sendToClient(client, { + type: 'RESPONSE', + payload: { + requestId, + type: clonedResponse.type, + ok: clonedResponse.ok, + status: clonedResponse.status, + statusText: clonedResponse.statusText, + body: + clonedResponse.body === null ? null : await clonedResponse.text(), + headers: Object.fromEntries(clonedResponse.headers.entries()), + redirected: clonedResponse.redirected, + }, + }) + })() + } + + return response +} + +// Resolve the main client for the given event. +// Client that issues a request doesn't necessarily equal the client +// that registered the worker. It's with the latter the worker should +// communicate with during the response resolving phase. +async function resolveMainClient(event) { + const client = await self.clients.get(event.clientId) + + if (client.frameType === 'top-level') { + return client + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + return allClients + .filter((client) => { + // Get only those clients that are currently visible. + return client.visibilityState === 'visible' + }) + .find((client) => { + // Find the client ID that's recorded in the + // set of clients that have registered the worker. + return activeClientIds.has(client.id) + }) +} + +async function getResponse(event, client, requestId) { + const { request } = event + const clonedRequest = request.clone() + + function passthrough() { + // Clone the request because it might've been already used + // (i.e. its body has been read and sent to the client). + const headers = Object.fromEntries(clonedRequest.headers.entries()) + + // Remove MSW-specific request headers so the bypassed requests + // comply with the server's CORS preflight check. + // Operate with the headers as an object because request "Headers" + // are immutable. + delete headers['x-msw-bypass'] + + return fetch(clonedRequest, { headers }) + } + + // Bypass mocking when the client is not active. + if (!client) { + return passthrough() + } + + // Bypass initial page load requests (i.e. static assets). + // The absence of the immediate/parent client in the map of the active clients + // means that MSW hasn't dispatched the "MOCK_ACTIVATE" event yet + // and is not ready to handle requests. + if (!activeClientIds.has(client.id)) { + return passthrough() + } + + // Bypass requests with the explicit bypass header. + // Such requests can be issued by "ctx.fetch()". + if (request.headers.get('x-msw-bypass') === 'true') { + return passthrough() + } + + // Notify the client that a request has been intercepted. + const clientMessage = await sendToClient(client, { + type: 'REQUEST', + payload: { + id: requestId, + url: request.url, + method: request.method, + headers: Object.fromEntries(request.headers.entries()), + cache: request.cache, + mode: request.mode, + credentials: request.credentials, + destination: request.destination, + integrity: request.integrity, + redirect: request.redirect, + referrer: request.referrer, + referrerPolicy: request.referrerPolicy, + body: await request.text(), + bodyUsed: request.bodyUsed, + keepalive: request.keepalive, + }, + }) + + switch (clientMessage.type) { + case 'MOCK_RESPONSE': { + return respondWithMock(clientMessage.data) + } + + case 'MOCK_NOT_FOUND': { + return passthrough() + } + + case 'NETWORK_ERROR': { + const { name, message } = clientMessage.data + const networkError = new Error(message) + networkError.name = name + + // Rejecting a "respondWith" promise emulates a network error. + throw networkError + } + } + + return passthrough() +} + +function sendToClient(client, message) { + return new Promise((resolve, reject) => { + const channel = new MessageChannel() + + channel.port1.onmessage = (event) => { + if (event.data && event.data.error) { + return reject(event.data.error) + } + + resolve(event.data) + } + + client.postMessage(message, [channel.port2]) + }) +} + +function sleep(timeMs) { + return new Promise((resolve) => { + setTimeout(resolve, timeMs) + }) +} + +async function respondWithMock(response) { + await sleep(response.delay) + return new Response(response.body, response) +} diff --git a/public/robots.test.txt b/public/robots.test.txt new file mode 100644 index 000000000..1f53798bb --- /dev/null +++ b/public/robots.test.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / diff --git a/src/api-typings/index.ts b/src/__generated__/api-typings/index.ts similarity index 90% rename from src/api-typings/index.ts rename to src/__generated__/api-typings/index.ts index 83fe5b71c..45931eb40 100644 --- a/src/api-typings/index.ts +++ b/src/__generated__/api-typings/index.ts @@ -16,6 +16,7 @@ export type { AuthorRetrieve } from './models/AuthorRetrieve'; export type { AuthorSearch } from './models/AuthorSearch'; export type { Banner } from './models/Banner'; export type { BaseContent } from './models/BaseContent'; +export type { BaseEvent } from './models/BaseEvent'; export type { BlockImages } from './models/BlockImages'; export type { BlogItemDetailOutput } from './models/BlogItemDetailOutput'; export type { BlogItemList } from './models/BlogItemList'; @@ -24,13 +25,6 @@ export type { BlogItemRole } from './models/BlogItemRole'; export type { BlogItemYearsMonthsOutput } from './models/BlogItemYearsMonthsOutput'; export type { Content_object } from './models/Content_object'; export type { ContentUnitRichText } from './models/ContentUnitRichText'; -export type { Event } from './models/Event'; -export type { event_type } from './models/event_type'; -export type { Event_Type_objects } from './models/Event_Type_objects'; -export type { EventInBlock } from './models/EventInBlock'; -export type { EventMasterClass } from './models/EventMasterClass'; -export type { EventPerformance } from './models/EventPerformance'; -export type { EventReading } from './models/EventReading'; export type { EventsBlock } from './models/EventsBlock'; export type { ExtendedPerson } from './models/ExtendedPerson'; export type { Festival } from './models/Festival'; @@ -66,7 +60,7 @@ export type { PaginatedPerformanceMediaReviewList } from './models/PaginatedPerf export type { PaginatedPerformanceReviewList } from './models/PaginatedPerformanceReviewList'; export type { PaginatedPlayList } from './models/PaginatedPlayList'; export type { PaginatedProjectListList } from './models/PaginatedProjectListList'; -export type { Participation } from './models/Participation'; +export type { ParticipationRequest } from './models/ParticipationRequest'; export type { partner_type } from './models/partner_type'; export type { PartnerListOutput } from './models/PartnerListOutput'; export type { Performance } from './models/Performance'; @@ -84,7 +78,7 @@ export type { PressRelease } from './models/PressRelease'; export type { ProgramType } from './models/ProgramType'; export type { Project } from './models/Project'; export type { ProjectList } from './models/ProjectList'; -export type { Question } from './models/Question'; +export type { QuestionRequest } from './models/QuestionRequest'; export type { Role } from './models/Role'; export type { SearchResult } from './models/SearchResult'; export type { Selectors } from './models/Selectors'; diff --git a/src/api-typings/models/Achievement.ts b/src/__generated__/api-typings/models/Achievement.ts similarity index 100% rename from src/api-typings/models/Achievement.ts rename to src/__generated__/api-typings/models/Achievement.ts diff --git a/src/__generated__/api-typings/models/AfishaEvent.ts b/src/__generated__/api-typings/models/AfishaEvent.ts new file mode 100644 index 000000000..0e49f5cd5 --- /dev/null +++ b/src/__generated__/api-typings/models/AfishaEvent.ts @@ -0,0 +1,23 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { Role } from './Role'; + +/** + * Afisha event Output serializer. + */ +export type AfishaEvent = { + readonly id: number; + readonly title: string; + readonly type: string; + readonly description: string; + readonly image: string; + date_time: string; + location?: string | null; + readonly action_url: string | null; + readonly action_text: string | null; + opening_date_time: string; + readonly performance_id: number | null; + team: Array; +}; diff --git a/src/__generated__/api-typings/models/AfishaEventListOutput.ts b/src/__generated__/api-typings/models/AfishaEventListOutput.ts new file mode 100644 index 000000000..df33fffd1 --- /dev/null +++ b/src/__generated__/api-typings/models/AfishaEventListOutput.ts @@ -0,0 +1,23 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { Role } from './Role'; + +/** + * Afisha event Output serializer. + */ +export type AfishaEventListOutput = { + readonly id: number; + readonly title: string; + readonly type: string; + readonly description: string; + readonly image: string; + date_time: string; + location?: string | null; + readonly action_url: string | null; + readonly action_text: string | null; + opening_date_time: string; + readonly performance_id: number | null; + team: Array; +}; diff --git a/src/api-typings/models/AfishaInfoOutput.ts b/src/__generated__/api-typings/models/AfishaInfoOutput.ts similarity index 100% rename from src/api-typings/models/AfishaInfoOutput.ts rename to src/__generated__/api-typings/models/AfishaInfoOutput.ts diff --git a/src/api-typings/models/AgeLimitEnum.ts b/src/__generated__/api-typings/models/AgeLimitEnum.ts similarity index 100% rename from src/api-typings/models/AgeLimitEnum.ts rename to src/__generated__/api-typings/models/AgeLimitEnum.ts diff --git a/src/api-typings/models/AuthorForPlay.ts b/src/__generated__/api-typings/models/AuthorForPlay.ts similarity index 100% rename from src/api-typings/models/AuthorForPlay.ts rename to src/__generated__/api-typings/models/AuthorForPlay.ts diff --git a/src/api-typings/models/AuthorLetters.ts b/src/__generated__/api-typings/models/AuthorLetters.ts similarity index 100% rename from src/api-typings/models/AuthorLetters.ts rename to src/__generated__/api-typings/models/AuthorLetters.ts diff --git a/src/api-typings/models/AuthorList.ts b/src/__generated__/api-typings/models/AuthorList.ts similarity index 100% rename from src/api-typings/models/AuthorList.ts rename to src/__generated__/api-typings/models/AuthorList.ts diff --git a/src/api-typings/models/AuthorOtherPlay.ts b/src/__generated__/api-typings/models/AuthorOtherPlay.ts similarity index 100% rename from src/api-typings/models/AuthorOtherPlay.ts rename to src/__generated__/api-typings/models/AuthorOtherPlay.ts diff --git a/src/api-typings/models/AuthorPlay.ts b/src/__generated__/api-typings/models/AuthorPlay.ts similarity index 100% rename from src/api-typings/models/AuthorPlay.ts rename to src/__generated__/api-typings/models/AuthorPlay.ts diff --git a/src/api-typings/models/AuthorRetrieve.ts b/src/__generated__/api-typings/models/AuthorRetrieve.ts similarity index 100% rename from src/api-typings/models/AuthorRetrieve.ts rename to src/__generated__/api-typings/models/AuthorRetrieve.ts diff --git a/src/api-typings/models/AuthorSearch.ts b/src/__generated__/api-typings/models/AuthorSearch.ts similarity index 88% rename from src/api-typings/models/AuthorSearch.ts rename to src/__generated__/api-typings/models/AuthorSearch.ts index d7477100a..24c82ef5f 100644 --- a/src/api-typings/models/AuthorSearch.ts +++ b/src/__generated__/api-typings/models/AuthorSearch.ts @@ -8,5 +8,4 @@ export type AuthorSearch = { */ slug: string; readonly name: string; - readonly first_letter: string; }; diff --git a/src/api-typings/models/Banner.ts b/src/__generated__/api-typings/models/Banner.ts similarity index 100% rename from src/api-typings/models/Banner.ts rename to src/__generated__/api-typings/models/Banner.ts diff --git a/src/api-typings/models/BaseContent.ts b/src/__generated__/api-typings/models/BaseContent.ts similarity index 100% rename from src/api-typings/models/BaseContent.ts rename to src/__generated__/api-typings/models/BaseContent.ts diff --git a/src/__generated__/api-typings/models/BaseEvent.ts b/src/__generated__/api-typings/models/BaseEvent.ts new file mode 100644 index 000000000..e7139d8bf --- /dev/null +++ b/src/__generated__/api-typings/models/BaseEvent.ts @@ -0,0 +1,20 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { Role } from './Role'; + +/** + * Base event info for afisha and content blocks. + */ +export type BaseEvent = { + readonly id: number; + readonly title: string; + readonly type: string; + readonly description: string; + readonly image: string; + date_time?: string | null; + location?: string | null; + readonly performance_id: number | null; + team: Array; +}; diff --git a/src/api-typings/models/BlockImages.ts b/src/__generated__/api-typings/models/BlockImages.ts similarity index 58% rename from src/api-typings/models/BlockImages.ts rename to src/__generated__/api-typings/models/BlockImages.ts index 6d5855eea..59957956b 100644 --- a/src/api-typings/models/BlockImages.ts +++ b/src/__generated__/api-typings/models/BlockImages.ts @@ -6,9 +6,5 @@ * Сериализатор блока изображений. */ export type BlockImages = { - block_images_description: string; - /** - * Загрузите фотографию - */ - image: string; + readonly url: string; }; diff --git a/src/api-typings/models/BlogItemDetailOutput.ts b/src/__generated__/api-typings/models/BlogItemDetailOutput.ts similarity index 100% rename from src/api-typings/models/BlogItemDetailOutput.ts rename to src/__generated__/api-typings/models/BlogItemDetailOutput.ts diff --git a/src/api-typings/models/BlogItemList.ts b/src/__generated__/api-typings/models/BlogItemList.ts similarity index 100% rename from src/api-typings/models/BlogItemList.ts rename to src/__generated__/api-typings/models/BlogItemList.ts diff --git a/src/api-typings/models/BlogItemListOutput.ts b/src/__generated__/api-typings/models/BlogItemListOutput.ts similarity index 100% rename from src/api-typings/models/BlogItemListOutput.ts rename to src/__generated__/api-typings/models/BlogItemListOutput.ts diff --git a/src/api-typings/models/BlogItemRole.ts b/src/__generated__/api-typings/models/BlogItemRole.ts similarity index 100% rename from src/api-typings/models/BlogItemRole.ts rename to src/__generated__/api-typings/models/BlogItemRole.ts diff --git a/src/api-typings/models/BlogItemYearsMonthsOutput.ts b/src/__generated__/api-typings/models/BlogItemYearsMonthsOutput.ts similarity index 100% rename from src/api-typings/models/BlogItemYearsMonthsOutput.ts rename to src/__generated__/api-typings/models/BlogItemYearsMonthsOutput.ts diff --git a/src/api-typings/models/ContentUnitRichText.ts b/src/__generated__/api-typings/models/ContentUnitRichText.ts similarity index 100% rename from src/api-typings/models/ContentUnitRichText.ts rename to src/__generated__/api-typings/models/ContentUnitRichText.ts diff --git a/src/api-typings/models/Content_object.ts b/src/__generated__/api-typings/models/Content_object.ts similarity index 100% rename from src/api-typings/models/Content_object.ts rename to src/__generated__/api-typings/models/Content_object.ts diff --git a/src/api-typings/models/EventsBlock.ts b/src/__generated__/api-typings/models/EventsBlock.ts similarity index 59% rename from src/api-typings/models/EventsBlock.ts rename to src/__generated__/api-typings/models/EventsBlock.ts index e880c6034..58b744444 100644 --- a/src/api-typings/models/EventsBlock.ts +++ b/src/__generated__/api-typings/models/EventsBlock.ts @@ -2,9 +2,9 @@ /* tslint:disable */ /* eslint-disable */ -import type { EventInBlock } from './EventInBlock'; +import type { BaseEvent } from './BaseEvent'; export type EventsBlock = { title: string; - items: Array; + items: Array; }; diff --git a/src/api-typings/models/ExtendedPerson.ts b/src/__generated__/api-typings/models/ExtendedPerson.ts similarity index 100% rename from src/api-typings/models/ExtendedPerson.ts rename to src/__generated__/api-typings/models/ExtendedPerson.ts diff --git a/src/api-typings/models/Festival.ts b/src/__generated__/api-typings/models/Festival.ts similarity index 100% rename from src/api-typings/models/Festival.ts rename to src/__generated__/api-typings/models/Festival.ts diff --git a/src/api-typings/models/FestivalTeams.ts b/src/__generated__/api-typings/models/FestivalTeams.ts similarity index 100% rename from src/api-typings/models/FestivalTeams.ts rename to src/__generated__/api-typings/models/FestivalTeams.ts diff --git a/src/api-typings/models/ForPress.ts b/src/__generated__/api-typings/models/ForPress.ts similarity index 100% rename from src/api-typings/models/ForPress.ts rename to src/__generated__/api-typings/models/ForPress.ts diff --git a/src/api-typings/models/ImagesBlock.ts b/src/__generated__/api-typings/models/ImagesBlock.ts similarity index 100% rename from src/api-typings/models/ImagesBlock.ts rename to src/__generated__/api-typings/models/ImagesBlock.ts diff --git a/src/api-typings/models/InfoLink.ts b/src/__generated__/api-typings/models/InfoLink.ts similarity index 100% rename from src/api-typings/models/InfoLink.ts rename to src/__generated__/api-typings/models/InfoLink.ts diff --git a/src/api-typings/models/Link.ts b/src/__generated__/api-typings/models/Link.ts similarity index 100% rename from src/api-typings/models/Link.ts rename to src/__generated__/api-typings/models/Link.ts diff --git a/src/api-typings/models/LocalEvent.ts b/src/__generated__/api-typings/models/LocalEvent.ts similarity index 80% rename from src/api-typings/models/LocalEvent.ts rename to src/__generated__/api-typings/models/LocalEvent.ts index 2728b8dc9..c0d8964d2 100644 --- a/src/api-typings/models/LocalEvent.ts +++ b/src/__generated__/api-typings/models/LocalEvent.ts @@ -8,5 +8,6 @@ export type LocalEvent = { readonly id: number; date_time?: string | null; - readonly url: string; + action_url?: string | null; + action_text: string; }; diff --git a/src/api-typings/models/Main.ts b/src/__generated__/api-typings/models/Main.ts similarity index 100% rename from src/api-typings/models/Main.ts rename to src/__generated__/api-typings/models/Main.ts diff --git a/src/api-typings/models/MainAfisha.ts b/src/__generated__/api-typings/models/MainAfisha.ts similarity index 100% rename from src/api-typings/models/MainAfisha.ts rename to src/__generated__/api-typings/models/MainAfisha.ts diff --git a/src/api-typings/models/MainBanners.ts b/src/__generated__/api-typings/models/MainBanners.ts similarity index 100% rename from src/api-typings/models/MainBanners.ts rename to src/__generated__/api-typings/models/MainBanners.ts diff --git a/src/api-typings/models/MainBlog.ts b/src/__generated__/api-typings/models/MainBlog.ts similarity index 100% rename from src/api-typings/models/MainBlog.ts rename to src/__generated__/api-typings/models/MainBlog.ts diff --git a/src/api-typings/models/MainFirstScreen.ts b/src/__generated__/api-typings/models/MainFirstScreen.ts similarity index 100% rename from src/api-typings/models/MainFirstScreen.ts rename to src/__generated__/api-typings/models/MainFirstScreen.ts diff --git a/src/api-typings/models/MainNews.ts b/src/__generated__/api-typings/models/MainNews.ts similarity index 100% rename from src/api-typings/models/MainNews.ts rename to src/__generated__/api-typings/models/MainNews.ts diff --git a/src/api-typings/models/MainPlaces.ts b/src/__generated__/api-typings/models/MainPlaces.ts similarity index 100% rename from src/api-typings/models/MainPlaces.ts rename to src/__generated__/api-typings/models/MainPlaces.ts diff --git a/src/api-typings/models/MainShortList.ts b/src/__generated__/api-typings/models/MainShortList.ts similarity index 100% rename from src/api-typings/models/MainShortList.ts rename to src/__generated__/api-typings/models/MainShortList.ts diff --git a/src/api-typings/models/MainVideoArchive.ts b/src/__generated__/api-typings/models/MainVideoArchive.ts similarity index 100% rename from src/api-typings/models/MainVideoArchive.ts rename to src/__generated__/api-typings/models/MainVideoArchive.ts diff --git a/src/api-typings/models/NameEnum.ts b/src/__generated__/api-typings/models/NameEnum.ts similarity index 100% rename from src/api-typings/models/NameEnum.ts rename to src/__generated__/api-typings/models/NameEnum.ts diff --git a/src/api-typings/models/Nested.ts b/src/__generated__/api-typings/models/Nested.ts similarity index 100% rename from src/api-typings/models/Nested.ts rename to src/__generated__/api-typings/models/Nested.ts diff --git a/src/api-typings/models/NewsItemDetail.ts b/src/__generated__/api-typings/models/NewsItemDetail.ts similarity index 100% rename from src/api-typings/models/NewsItemDetail.ts rename to src/__generated__/api-typings/models/NewsItemDetail.ts diff --git a/src/api-typings/models/NewsItemList.ts b/src/__generated__/api-typings/models/NewsItemList.ts similarity index 100% rename from src/api-typings/models/NewsItemList.ts rename to src/__generated__/api-typings/models/NewsItemList.ts diff --git a/src/api-typings/models/NewsItemYearsMonthsOutput.ts b/src/__generated__/api-typings/models/NewsItemYearsMonthsOutput.ts similarity index 100% rename from src/api-typings/models/NewsItemYearsMonthsOutput.ts rename to src/__generated__/api-typings/models/NewsItemYearsMonthsOutput.ts diff --git a/src/api-typings/models/OrderedImage.ts b/src/__generated__/api-typings/models/OrderedImage.ts similarity index 100% rename from src/api-typings/models/OrderedImage.ts rename to src/__generated__/api-typings/models/OrderedImage.ts diff --git a/src/api-typings/models/OrderedPlay.ts b/src/__generated__/api-typings/models/OrderedPlay.ts similarity index 69% rename from src/api-typings/models/OrderedPlay.ts rename to src/__generated__/api-typings/models/OrderedPlay.ts index 38f91398a..2dafd1f83 100644 --- a/src/api-typings/models/OrderedPlay.ts +++ b/src/__generated__/api-typings/models/OrderedPlay.ts @@ -4,10 +4,15 @@ import type { AuthorForPlay } from './AuthorForPlay'; +/** + * Serializer mixin to generate URLs with domain. + */ export type OrderedPlay = { readonly id: number; name: string; authors: Array; city?: string; year?: number; + readonly url_download: string; + url_reading: string; }; diff --git a/src/api-typings/models/OrderedVideo.ts b/src/__generated__/api-typings/models/OrderedVideo.ts similarity index 100% rename from src/api-typings/models/OrderedVideo.ts rename to src/__generated__/api-typings/models/OrderedVideo.ts diff --git a/src/api-typings/models/OtherLink.ts b/src/__generated__/api-typings/models/OtherLink.ts similarity index 100% rename from src/api-typings/models/OtherLink.ts rename to src/__generated__/api-typings/models/OtherLink.ts diff --git a/src/api-typings/models/PRDirector.ts b/src/__generated__/api-typings/models/PRDirector.ts similarity index 100% rename from src/api-typings/models/PRDirector.ts rename to src/__generated__/api-typings/models/PRDirector.ts diff --git a/src/api-typings/models/PaginatedAfishaEventListOutputList.ts b/src/__generated__/api-typings/models/PaginatedAfishaEventListOutputList.ts similarity index 100% rename from src/api-typings/models/PaginatedAfishaEventListOutputList.ts rename to src/__generated__/api-typings/models/PaginatedAfishaEventListOutputList.ts diff --git a/src/api-typings/models/PaginatedAuthorListList.ts b/src/__generated__/api-typings/models/PaginatedAuthorListList.ts similarity index 100% rename from src/api-typings/models/PaginatedAuthorListList.ts rename to src/__generated__/api-typings/models/PaginatedAuthorListList.ts diff --git a/src/api-typings/models/PaginatedBlogItemListOutputList.ts b/src/__generated__/api-typings/models/PaginatedBlogItemListOutputList.ts similarity index 100% rename from src/api-typings/models/PaginatedBlogItemListOutputList.ts rename to src/__generated__/api-typings/models/PaginatedBlogItemListOutputList.ts diff --git a/src/api-typings/models/PaginatedNewsItemListList.ts b/src/__generated__/api-typings/models/PaginatedNewsItemListList.ts similarity index 100% rename from src/api-typings/models/PaginatedNewsItemListList.ts rename to src/__generated__/api-typings/models/PaginatedNewsItemListList.ts diff --git a/src/api-typings/models/PaginatedPerformanceMediaReviewList.ts b/src/__generated__/api-typings/models/PaginatedPerformanceMediaReviewList.ts similarity index 100% rename from src/api-typings/models/PaginatedPerformanceMediaReviewList.ts rename to src/__generated__/api-typings/models/PaginatedPerformanceMediaReviewList.ts diff --git a/src/api-typings/models/PaginatedPerformanceReviewList.ts b/src/__generated__/api-typings/models/PaginatedPerformanceReviewList.ts similarity index 100% rename from src/api-typings/models/PaginatedPerformanceReviewList.ts rename to src/__generated__/api-typings/models/PaginatedPerformanceReviewList.ts diff --git a/src/api-typings/models/PaginatedPlayList.ts b/src/__generated__/api-typings/models/PaginatedPlayList.ts similarity index 100% rename from src/api-typings/models/PaginatedPlayList.ts rename to src/__generated__/api-typings/models/PaginatedPlayList.ts diff --git a/src/api-typings/models/PaginatedProjectListList.ts b/src/__generated__/api-typings/models/PaginatedProjectListList.ts similarity index 100% rename from src/api-typings/models/PaginatedProjectListList.ts rename to src/__generated__/api-typings/models/PaginatedProjectListList.ts diff --git a/src/api-typings/models/Participation.ts b/src/__generated__/api-typings/models/ParticipationRequest.ts similarity index 62% rename from src/api-typings/models/Participation.ts rename to src/__generated__/api-typings/models/ParticipationRequest.ts index 84704d31b..8c8d3ffa8 100644 --- a/src/api-typings/models/Participation.ts +++ b/src/__generated__/api-typings/models/ParticipationRequest.ts @@ -2,13 +2,9 @@ /* tslint:disable */ /* eslint-disable */ -export type Participation = { - readonly id: number; +export type ParticipationRequest = { year: number; birth_year: number; - readonly url_file_in_storage: string; - readonly modified: string; - readonly created: string; first_name: string; last_name: string; city: string; @@ -21,8 +17,5 @@ export type Participation = { /** * Файл должен быть в одном из поддерживаемых форматов: ('doc', 'docx', 'txt', 'odt', 'pdf') */ - file: string; - readonly exported_to_google: boolean; - readonly saved_to_storage: boolean; - readonly sent_to_email: boolean; + file: Blob; }; diff --git a/src/api-typings/models/PartnerListOutput.ts b/src/__generated__/api-typings/models/PartnerListOutput.ts similarity index 100% rename from src/api-typings/models/PartnerListOutput.ts rename to src/__generated__/api-typings/models/PartnerListOutput.ts diff --git a/src/api-typings/models/Performance.ts b/src/__generated__/api-typings/models/Performance.ts similarity index 83% rename from src/api-typings/models/Performance.ts rename to src/__generated__/api-typings/models/Performance.ts index 832cbcf66..fab804258 100644 --- a/src/api-typings/models/Performance.ts +++ b/src/__generated__/api-typings/models/Performance.ts @@ -16,8 +16,10 @@ export type Performance = { readonly id: number; play: Play; team: Array; - images_in_block: Array; + gallery_title: string; + gallery_images: Array; events: Array; + readonly duration: number; status?: StatusEnum; name: string; main_image: string; @@ -30,9 +32,5 @@ export type Performance = { intro?: string; text: string; age_limit?: AgeLimitEnum; - /** - * Введите продолжительность в формате ЧЧ:ММ - */ - duration?: string; creator: number; }; diff --git a/src/api-typings/models/PerformanceMediaReview.ts b/src/__generated__/api-typings/models/PerformanceMediaReview.ts similarity index 100% rename from src/api-typings/models/PerformanceMediaReview.ts rename to src/__generated__/api-typings/models/PerformanceMediaReview.ts diff --git a/src/api-typings/models/PerformanceReview.ts b/src/__generated__/api-typings/models/PerformanceReview.ts similarity index 100% rename from src/api-typings/models/PerformanceReview.ts rename to src/__generated__/api-typings/models/PerformanceReview.ts diff --git a/src/api-typings/models/PersonRole.ts b/src/__generated__/api-typings/models/PersonRole.ts similarity index 100% rename from src/api-typings/models/PersonRole.ts rename to src/__generated__/api-typings/models/PersonRole.ts diff --git a/src/api-typings/models/Persons.ts b/src/__generated__/api-typings/models/Persons.ts similarity index 100% rename from src/api-typings/models/Persons.ts rename to src/__generated__/api-typings/models/Persons.ts diff --git a/src/api-typings/models/PersonsBlock.ts b/src/__generated__/api-typings/models/PersonsBlock.ts similarity index 100% rename from src/api-typings/models/PersonsBlock.ts rename to src/__generated__/api-typings/models/PersonsBlock.ts diff --git a/src/api-typings/models/Place.ts b/src/__generated__/api-typings/models/Place.ts similarity index 100% rename from src/api-typings/models/Place.ts rename to src/__generated__/api-typings/models/Place.ts diff --git a/src/api-typings/models/Play.ts b/src/__generated__/api-typings/models/Play.ts similarity index 100% rename from src/api-typings/models/Play.ts rename to src/__generated__/api-typings/models/Play.ts diff --git a/src/api-typings/models/PlayFilters.ts b/src/__generated__/api-typings/models/PlayFilters.ts similarity index 100% rename from src/api-typings/models/PlayFilters.ts rename to src/__generated__/api-typings/models/PlayFilters.ts diff --git a/src/api-typings/models/PlaysBlock.ts b/src/__generated__/api-typings/models/PlaysBlock.ts similarity index 100% rename from src/api-typings/models/PlaysBlock.ts rename to src/__generated__/api-typings/models/PlaysBlock.ts diff --git a/src/api-typings/models/PressRelease.ts b/src/__generated__/api-typings/models/PressRelease.ts similarity index 100% rename from src/api-typings/models/PressRelease.ts rename to src/__generated__/api-typings/models/PressRelease.ts diff --git a/src/api-typings/models/ProgramType.ts b/src/__generated__/api-typings/models/ProgramType.ts similarity index 100% rename from src/api-typings/models/ProgramType.ts rename to src/__generated__/api-typings/models/ProgramType.ts diff --git a/src/api-typings/models/Project.ts b/src/__generated__/api-typings/models/Project.ts similarity index 100% rename from src/api-typings/models/Project.ts rename to src/__generated__/api-typings/models/Project.ts diff --git a/src/api-typings/models/ProjectList.ts b/src/__generated__/api-typings/models/ProjectList.ts similarity index 100% rename from src/api-typings/models/ProjectList.ts rename to src/__generated__/api-typings/models/ProjectList.ts diff --git a/src/api-typings/models/Question.ts b/src/__generated__/api-typings/models/QuestionRequest.ts similarity index 56% rename from src/api-typings/models/Question.ts rename to src/__generated__/api-typings/models/QuestionRequest.ts index 07e96684f..fbb8aa3af 100644 --- a/src/api-typings/models/Question.ts +++ b/src/__generated__/api-typings/models/QuestionRequest.ts @@ -2,10 +2,7 @@ /* tslint:disable */ /* eslint-disable */ -export type Question = { - readonly id: number; - readonly created: string; - readonly modified: string; +export type QuestionRequest = { question: string; author_name: string; author_email: string; diff --git a/src/api-typings/models/Role.ts b/src/__generated__/api-typings/models/Role.ts similarity index 100% rename from src/api-typings/models/Role.ts rename to src/__generated__/api-typings/models/Role.ts diff --git a/src/api-typings/models/SearchResult.ts b/src/__generated__/api-typings/models/SearchResult.ts similarity index 100% rename from src/api-typings/models/SearchResult.ts rename to src/__generated__/api-typings/models/SearchResult.ts diff --git a/src/api-typings/models/Selectors.ts b/src/__generated__/api-typings/models/Selectors.ts similarity index 100% rename from src/api-typings/models/Selectors.ts rename to src/__generated__/api-typings/models/Selectors.ts diff --git a/src/api-typings/models/Settings.ts b/src/__generated__/api-typings/models/Settings.ts similarity index 68% rename from src/api-typings/models/Settings.ts rename to src/__generated__/api-typings/models/Settings.ts index d09966c84..695e998e6 100644 --- a/src/api-typings/models/Settings.ts +++ b/src/__generated__/api-typings/models/Settings.ts @@ -3,6 +3,7 @@ /* eslint-disable */ import type { ForPress } from './ForPress'; +import type { ProjectList } from './ProjectList'; export type Settings = { play_author_email: string; @@ -15,4 +16,9 @@ export type Settings = { url_to_privacy_policy: string; for_press: ForPress; plays_reception_is_open: boolean; + projects: Array; + email_to_send_questions: string; + show_team: boolean; + show_sponsors: boolean; + show_volunteers: boolean; }; diff --git a/src/api-typings/models/SocialNetwork.ts b/src/__generated__/api-typings/models/SocialNetwork.ts similarity index 100% rename from src/api-typings/models/SocialNetwork.ts rename to src/__generated__/api-typings/models/SocialNetwork.ts diff --git a/src/api-typings/models/Sponsor.ts b/src/__generated__/api-typings/models/Sponsor.ts similarity index 100% rename from src/api-typings/models/Sponsor.ts rename to src/__generated__/api-typings/models/Sponsor.ts diff --git a/src/api-typings/models/StatusEnum.ts b/src/__generated__/api-typings/models/StatusEnum.ts similarity index 100% rename from src/api-typings/models/StatusEnum.ts rename to src/__generated__/api-typings/models/StatusEnum.ts diff --git a/src/api-typings/models/TeamEnum.ts b/src/__generated__/api-typings/models/TeamEnum.ts similarity index 100% rename from src/api-typings/models/TeamEnum.ts rename to src/__generated__/api-typings/models/TeamEnum.ts diff --git a/src/api-typings/models/VideosBlock.ts b/src/__generated__/api-typings/models/VideosBlock.ts similarity index 100% rename from src/api-typings/models/VideosBlock.ts rename to src/__generated__/api-typings/models/VideosBlock.ts diff --git a/src/api-typings/models/Volunteers.ts b/src/__generated__/api-typings/models/Volunteers.ts similarity index 100% rename from src/api-typings/models/Volunteers.ts rename to src/__generated__/api-typings/models/Volunteers.ts diff --git a/src/api-typings/models/Years.ts b/src/__generated__/api-typings/models/Years.ts similarity index 100% rename from src/api-typings/models/Years.ts rename to src/__generated__/api-typings/models/Years.ts diff --git a/src/api-typings/models/partner_type.ts b/src/__generated__/api-typings/models/partner_type.ts similarity index 100% rename from src/api-typings/models/partner_type.ts rename to src/__generated__/api-typings/models/partner_type.ts diff --git a/src/api-typings/models/AfishaEvent.ts b/src/api-typings/models/AfishaEvent.ts deleted file mode 100644 index 3d78693c6..000000000 --- a/src/api-typings/models/AfishaEvent.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -import type { event_type } from './event_type'; -import type { Event_Type_objects } from './Event_Type_objects'; - -/** - * Afisha event Output serializer. - */ -export type AfishaEvent = { - readonly id: number; - /** - * Выберите тип события - */ - type: event_type; - /** - * The response is different based on event type. - */ - readonly event_body: Event_Type_objects; - date_time: string; - action_url: string; - action_text: string; -}; diff --git a/src/api-typings/models/AfishaEventListOutput.ts b/src/api-typings/models/AfishaEventListOutput.ts deleted file mode 100644 index 36d2716b7..000000000 --- a/src/api-typings/models/AfishaEventListOutput.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -import type { event_type } from './event_type'; -import type { Event_Type_objects } from './Event_Type_objects'; - -/** - * Afisha event Output serializer. - */ -export type AfishaEventListOutput = { - readonly id: number; - /** - * Выберите тип события - */ - type: event_type; - /** - * The response is different based on event type. - */ - readonly event_body: Event_Type_objects; - date_time: string; - action_url: string; - action_text: string; -}; diff --git a/src/api-typings/models/Event.ts b/src/api-typings/models/Event.ts deleted file mode 100644 index 326f93d63..000000000 --- a/src/api-typings/models/Event.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -import type { Role } from './Role'; - -/** - * Event content serializer for afisha page. - */ -export type Event = { - id: number; - name: string; - description: string; - team: Array; - image?: string | null; - readonly project_title: string; -}; diff --git a/src/api-typings/models/EventInBlock.ts b/src/api-typings/models/EventInBlock.ts deleted file mode 100644 index 0581222af..000000000 --- a/src/api-typings/models/EventInBlock.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -import type { Event } from './Event'; -import type { event_type } from './event_type'; - -/** - * Returns Performance in EventsBlock. - */ -export type EventInBlock = { - readonly id: number; - /** - * Выберите тип события - */ - type: event_type; - event_body: Event; - date_time?: string | null; - action_url: string; - action_text: string; -}; diff --git a/src/api-typings/models/EventMasterClass.ts b/src/api-typings/models/EventMasterClass.ts deleted file mode 100644 index aecdab0b5..000000000 --- a/src/api-typings/models/EventMasterClass.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -import type { Role } from './Role'; - -/** - * Master-class serializer for afisha page. - */ -export type EventMasterClass = { - readonly id: number; - name: string; - description: string; - team: Array; - readonly project_title: string; -}; diff --git a/src/api-typings/models/EventPerformance.ts b/src/api-typings/models/EventPerformance.ts deleted file mode 100644 index 0528308ef..000000000 --- a/src/api-typings/models/EventPerformance.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -import type { Role } from './Role'; - -/** - * Performance serializer for afisha page. - */ -export type EventPerformance = { - readonly id: number; - name: string; - description?: string; - team: Array; - image: string; - readonly project_title: string; -}; diff --git a/src/api-typings/models/EventReading.ts b/src/api-typings/models/EventReading.ts deleted file mode 100644 index a694155e5..000000000 --- a/src/api-typings/models/EventReading.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -import type { Role } from './Role'; - -/** - * Reading serializer for afisha page. - */ -export type EventReading = { - readonly id: number; - name: string; - description: string; - team: Array; - readonly project_title: string; -}; diff --git a/src/api-typings/models/Event_Type_objects.ts b/src/api-typings/models/Event_Type_objects.ts deleted file mode 100644 index 7a3cba916..000000000 --- a/src/api-typings/models/Event_Type_objects.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -import type { EventMasterClass } from './EventMasterClass'; -import type { EventPerformance } from './EventPerformance'; -import type { EventReading } from './EventReading'; - -export type Event_Type_objects = (EventMasterClass | EventPerformance | EventReading); diff --git a/src/api-typings/models/event_type.ts b/src/api-typings/models/event_type.ts deleted file mode 100644 index 72095818c..000000000 --- a/src/api-typings/models/event_type.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -export type event_type = 'PERFORMANCE' | 'MASTERCLASS' | 'READING'; \ No newline at end of file diff --git a/src/components/404/NotFoundError.module.css b/src/components/404/NotFoundError.module.css index b70f6dcab..383d459dd 100644 --- a/src/components/404/NotFoundError.module.css +++ b/src/components/404/NotFoundError.module.css @@ -69,7 +69,7 @@ @mixin headline3; max-width: 720px; - margin: 0 0 24px 0; + margin: 0 0 24px; @media (max-width: $tablet-portrait) { margin-bottom: 16px; @@ -105,6 +105,8 @@ } .listItem { + margin-right: 8px; + @media (max-width: $tablet-portrait) { margin-bottom: 42px; } @@ -142,53 +144,3 @@ left: -160px; } } - -.link { - position: relative; - z-index: 1; - box-sizing: border-box; - padding-right: 23px; - padding-bottom: 10px; - border-bottom: 1px solid #242424; - border-left: 1px solid #242424; - margin-right: 8px; - color: #333; - text-decoration: none; - text-transform: uppercase; - - &::before { - position: absolute; - z-index: -1; - top: 0; - left: 0; - width: 0; - height: 100%; - background-color: var(--coal); - content: ''; - transition: width .2s ease-in, transform .1s linear; - } - - &:hover { - color: var(--beige); - - &::before { - width: 100%; - } - } - - &:active::before { - transform: scale(1.075); - } - - &:disabled { - cursor: default; - } - - &:disabled:hover { - color: var(--coal); - - &::before { - width: 0; - } - } -} diff --git a/src/components/404/NotFoundError.tsx b/src/components/404/NotFoundError.tsx index 16d83def9..e193dcf3e 100644 --- a/src/components/404/NotFoundError.tsx +++ b/src/components/404/NotFoundError.tsx @@ -1,17 +1,19 @@ import Link from 'next/link'; -import Logo from 'shared/images/full-logo.svg'; -import SmallLogo from 'shared/images/compact-logo.svg'; -import Lines from 'shared/images/404lines.svg'; -import classes from './NotFoundError.module.css'; -import { useMediaQuery } from 'shared/hooks/use-media-query'; +import { Button } from 'components/ui/button2'; +import { Icon } from 'components/ui/icon'; +import { useSettings } from 'services/api/settings-adapter'; import * as breakpoints from 'shared/breakpoints'; -import { Button } from 'components/ui/button'; -import { usePersistentData } from 'providers/persistent-data-provider'; import { participationFormPath } from 'shared/constants/participation-form-path'; +import { useMediaQuery } from 'shared/hooks/use-media-query'; +import Lines from 'shared/images/404lines.svg'; +import SmallLogo from 'shared/images/compact-logo.svg'; +import Logo from 'shared/images/full-logo.svg'; + +import classes from './NotFoundError.module.css'; export default function NotFoundError() { - const { settings } = usePersistentData(); + const { settings } = useSettings(); const isMobile = useMediaQuery(`(max-width: ${breakpoints['tablet-portrait']})`); return ( @@ -37,41 +39,56 @@ export default function NotFoundError() {
  • {settings?.canProposePlay && (
  • )}
diff --git a/src/components/500/server-error.module.css b/src/components/500/server-error.module.css index 232efc63f..9d517e45f 100644 --- a/src/components/500/server-error.module.css +++ b/src/components/500/server-error.module.css @@ -47,7 +47,7 @@ margin: 142px 50px 0 180px; @media (max-width: $tablet-portrait) { - margin: 69px auto auto auto; + margin: 69px auto auto; } } @@ -56,7 +56,7 @@ @mixin headline3; max-width: 870px; - margin: 0 0 24px 0; + margin: 0 0 24px; @media (max-width: $tablet-portrait) { margin-bottom: 16px; diff --git a/src/components/500/server-error.tsx b/src/components/500/server-error.tsx index 185b3e371..ba02bbaa8 100644 --- a/src/components/500/server-error.tsx +++ b/src/components/500/server-error.tsx @@ -1,10 +1,13 @@ import Link from 'next/link'; -import Logo from 'shared/images/full-logo.svg'; + +import { Button } from 'components/ui/button2'; +import { Icon } from 'components/ui/icon'; +import * as breakpoints from 'shared/breakpoints'; +import { useMediaQuery } from 'shared/hooks/use-media-query'; import SmallLogo from 'shared/images/compact-logo.svg'; +import Logo from 'shared/images/full-logo.svg'; + import classes from './server-error.module.css'; -import { useMediaQuery } from 'shared/hooks/use-media-query'; -import * as breakpoints from 'shared/breakpoints'; -import { Button } from 'components/ui/button'; export default function ServerError() { @@ -28,28 +31,41 @@ export default function ServerError() { Чтобы узнать новости фестиваля, перейдите в наш Телеграм-канал

Или перезагрузите страницу

diff --git a/src/components/about-us-layout/about-us-layout.module.css b/src/components/about-us-layout/about-us-layout.module.css index b7743fd5d..6ada8d763 100644 --- a/src/components/about-us-layout/about-us-layout.module.css +++ b/src/components/about-us-layout/about-us-layout.module.css @@ -1,5 +1,4 @@ - -@import 'about-us-layout.vars.module'; +@import url("about-us-layout.vars.module"); .menu { padding: 40px 60px; diff --git a/src/components/about-us-layout/about-us-layout.tsx b/src/components/about-us-layout/about-us-layout.tsx index 03139b3ca..abeca6ae5 100644 --- a/src/components/about-us-layout/about-us-layout.tsx +++ b/src/components/about-us-layout/about-us-layout.tsx @@ -1,14 +1,14 @@ -import { useRouter } from 'next/router'; import classNames from 'classnames/bind'; +import { useRouter } from 'next/router'; +import { useEffect, useRef } from 'react'; import { Menu } from 'components/ui/menu'; -import { useMediaQuery } from 'shared/hooks/use-media-query'; -import { remToPx } from 'shared/helpers/rem-to-px'; - -import { aboutUsNavigationItems } from 'shared/constants/about-us-navigation-items'; import breakpoints from 'shared/breakpoints'; +import { aboutUsNavigationItems } from 'shared/constants/about-us-navigation-items'; +import { remToPx } from 'shared/helpers/rem-to-px'; +import { useMediaQuery } from 'shared/hooks/use-media-query'; -import { FC, useEffect, useRef } from 'react'; +import type { FC } from 'react'; import styles from './about-us-layout.module.css'; import vars from './about-us-layout.vars.module.css'; diff --git a/src/components/address-card/address-card.module.css b/src/components/address-card/address-card.module.css index ba7065a4e..46a557e3d 100644 --- a/src/components/address-card/address-card.module.css +++ b/src/components/address-card/address-card.module.css @@ -3,13 +3,13 @@ box-sizing: border-box; flex-direction: column; align-items: flex-start; - padding: 15px 30px 26px 30px; + padding: 15px 30px 26px; border-bottom: 1px solid var(--coal); border-left: 1px solid var(--coal); @media (max-width: $tablet-portrait) { min-height: auto; - padding: 16px 25px 20px 25px; + padding: 16px 25px 20px; } } diff --git a/src/components/address-card/address-card.tsx b/src/components/address-card/address-card.tsx index 49787343b..dc5a2f7d6 100644 --- a/src/components/address-card/address-card.tsx +++ b/src/components/address-card/address-card.tsx @@ -1,10 +1,9 @@ import classNames from 'classnames/bind'; -import { Icon } from 'components/ui/icon'; import { Button } from 'components/ui/button2'; +import { Icon } from 'components/ui/icon'; import type { FC } from 'react'; -import type { Url } from 'shared/types'; import styles from './address-card.module.css'; diff --git a/src/components/address-list/address-list.tsx b/src/components/address-list/address-list.tsx index 5bf3a0142..5037caf84 100644 --- a/src/components/address-list/address-list.tsx +++ b/src/components/address-list/address-list.tsx @@ -9,7 +9,7 @@ import style from './address-list.module.css'; const cx = classNames.bind(style); interface AddressListProps { - children: ReactNode, + children: ReactNode } const Component = (props: AddressListProps): JSX.Element => { diff --git a/src/components/afisha-page/afisha-pagination/afisha-pagination.module.css b/src/components/afisha-page/afisha-pagination/afisha-pagination.module.css deleted file mode 100644 index 2021b8479..000000000 --- a/src/components/afisha-page/afisha-pagination/afisha-pagination.module.css +++ /dev/null @@ -1,53 +0,0 @@ -.container { - position: relative; - box-sizing: border-box; - padding: 0 77px; - - @media (max-width: $tablet-portrait) { - padding: 0; - text-align: right; - } -} - -.containerSlides { - width: 70%; - margin: auto; -} - -.slider { - @media (max-width: $tablet-portrait) { - margin-top: 19px; - } -} - -.slide { - position: relative; - - &::before { - display: block; - width: 100%; - padding-top: calc((7 / 11) * 100%); - content: ""; - } -} - -.arrow { - position: absolute; - top: 50%; - width: 48px; - height: 48px; - transform: translateY(-50%); -} - -.arrowLeft { - left: 0; -} - -.arrowRight { - right: 0; -} - -.arrowButton { - width: 100%; - height: 100%; -} diff --git a/src/components/afisha-page/afisha-pagination/afisha-pagination.tsx b/src/components/afisha-page/afisha-pagination/afisha-pagination.tsx deleted file mode 100644 index 96d34afa0..000000000 --- a/src/components/afisha-page/afisha-pagination/afisha-pagination.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import { useState, Children, useEffect } from 'react'; -import classNames from 'classnames/bind'; -import { useKeenSlider } from 'keen-slider/react'; - -import { SliderButton } from 'components/ui/slider-button'; - -import styles from './afisha-pagination.module.css'; - -const cx = classNames.bind(styles); - -interface IProps { - className?: string; - initial?: number; - children: React.ReactNode; - onChange?: (index: number) => void; -} - -export const AfishaPagination = (props: IProps): JSX.Element => { - const { - className, - initial = 0, - children, - onChange - } = props; - - const [current, setCurrent] = useState(0); - const [showPrevBtn, setShowPrevBtn] = useState(initial !== 0); - const [showNextBtn, setShowNextBtn] = useState(Children.count(children) - 1 !== initial); - - useEffect(() => { - if (onChange) { - onChange(current); - } - }, [current]); - - const [sliderRef, slider] = useKeenSlider({ - loop: false, - spacing: 15, - initial, - slideChanged(s) { - const { relativeSlide } = s.details(); - setCurrent(relativeSlide); - setShowPrevBtn(relativeSlide !== 0); - setShowNextBtn(Children.count(children) - 1 !== relativeSlide); - }, - }); - - return ( -
-
- {slider && showPrevBtn && ( -
- -
- )} - - {slider && showNextBtn && ( -
- -
- )} -
-
- {Children.map(children, (child) => ( -
- {child} -
- ))} -
-
-
-
- ); -}; diff --git a/src/components/afisha-page/afisha-pagination/index.ts b/src/components/afisha-page/afisha-pagination/index.ts deleted file mode 100644 index e5d8ac7a3..000000000 --- a/src/components/afisha-page/afisha-pagination/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './afisha-pagination'; diff --git a/src/components/afisha-page/afisha-provider/index.ts b/src/components/afisha-page/afisha-provider/index.ts deleted file mode 100644 index 03be03e58..000000000 --- a/src/components/afisha-page/afisha-provider/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './provider'; diff --git a/src/components/afisha-page/afisha-provider/provider.tsx b/src/components/afisha-page/afisha-provider/provider.tsx deleted file mode 100644 index b569a43f4..000000000 --- a/src/components/afisha-page/afisha-provider/provider.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import { createContext, FC, ReactNode, useContext, useReducer } from 'react'; - -import { AfishaEvent, AfishaEvents, AfishaInfo } from 'shared/types'; - -import { setEvents, getInitialState, State, setDay } from './reducer'; -import { reducer, setCondition } from './reducer'; -import { fetchEvents } from '../utils/fetchData'; - -export interface IProps { - children: ReactNode; - info: AfishaInfo; - events: AfishaEvents; -} - -export type Context = { - selectInfo: () => AfishaInfo; - selectEvents: (day?: string) => AfishaEvent[]; - takeEvents: (date?: string) => void; - isLoading: () => boolean; - isComlete: () => boolean; - selectState: () => State; - putDay: (day: number) => void; - selectDay: () => number; -} - -const AfishaContext = createContext>({}); -export const useAfisha = (): Context => useContext(AfishaContext) as Context; - -export const AfishaProvider: FC = (props) => { - const { children, info } = props; - const [state, dispatch] = useReducer(reducer, getInitialState(info, props.events)); - const { events } = state; - - const selectState = () => state; - const isComlete = () => events.length === props.events.count; - const isLoading = () => state.condition === 'loading'; - const putDay = (d: number) => { - dispatch(setDay(d)); - takeEvents(d); - }; - const selectDay = () => state.day; - - const takeEvents = async (d?: number) => { - if (isComlete() || isLoading()) { - return; - } - - if (d !== undefined && events[events.length - 1].dateTime.slice(0, 10) !== info.afishaDates[d].slice(0, 10)) { - return; - } - - try { - dispatch(setCondition('loading')); - const res = await fetchEvents(events.length); - dispatch(setEvents(res.results)); - dispatch(setCondition('done')); - } catch (err) { - dispatch(setCondition('error')); - } - }; - const selectInfo = () => info; - const selectEvents = (d?: string) => d - ? events.filter(e => e.dateTime.slice(0, 10) === d.slice(0, 10)) - : events; - - return ( - - {children} - - ); -}; - diff --git a/src/components/afisha-page/afisha-provider/reducer.ts b/src/components/afisha-page/afisha-provider/reducer.ts deleted file mode 100644 index 95e7cde8e..000000000 --- a/src/components/afisha-page/afisha-provider/reducer.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { AfishaEvent, AfishaEvents, AfishaInfo } from 'shared/types'; - -type ActionSetEvents = { - type: 'SET_EVENTS', - payload: AfishaEvent[] -}; - -type ActionSetCondition = { - type: 'SET_CONDITION', - payload: StateСondition -}; - -type ActionSetDay = { - type: 'SET_DAY', - payload: number -}; - -type Actions = ActionSetEvents | ActionSetCondition | ActionSetDay; -type StateСondition = 'done' | 'loading' | 'error'; - -export const getInitialState = (info: AfishaInfo, fetchedEvents: AfishaEvents) => { - - info.afishaDates = Array.from(new Set(info.afishaDates)); - const { results: events } = fetchedEvents; - - return { - condition: 'done', - events, - day: info.afishaDates.length ? 0 : -1 - }; -}; - -export type State = ReturnType; - -export const setCondition = (c: StateСondition): ActionSetCondition => ({ type: 'SET_CONDITION', payload: c }); -export const setEvents = (e: AfishaEvent[]): ActionSetEvents => ({ type: 'SET_EVENTS', payload: e }); -export const setDay = (d: number): ActionSetDay => ({ type: 'SET_DAY', payload: d }); - -export const reducer = (state: State, action: Actions): State => { - switch (action.type) { - case 'SET_CONDITION': - return { ...state, condition: action.payload }; - case 'SET_DAY': - return { ...state, day: action.payload }; - case 'SET_EVENTS': - return { ...state, events: [...state.events, ...action.payload] }; - default: - return state; - } -}; diff --git a/src/components/afisha-page/afisha-title/afisha-title.module.css b/src/components/afisha-page/afisha-title/afisha-title.module.css deleted file mode 100644 index aedf4dc79..000000000 --- a/src/components/afisha-page/afisha-title/afisha-title.module.css +++ /dev/null @@ -1,79 +0,0 @@ -.section { - display: grid; - padding: 58px 0 112px; - grid-template-areas: '. title''discussion entrance'; - grid-template-columns: repeat(2, 1fr); - grid-template-rows: repeat(2, auto); - row-gap: 7px; - - @media (max-width: $tablet-portrait) { - padding: 0 24px 30px; - grid-template-areas: 'title''entrance''discussion'; - grid-template-columns: 1fr; - grid-template-rows: repeat(3, auto); - row-gap: 24px; - } -} - -.title { - @mixin headline; - @mixin headline1; - - max-width: 542px; - grid-area: title; - - @media (max-width: $tablet-portrait) { - @mixin headline4; - - max-width: 298px; - } -} - -.discussionInfo { - display: flex; - flex-direction: column; - padding-left: 125px; - grid-area: discussion; - - @media (max-width: $tablet-portrait) { - max-width: 261px; - padding-left: 0; - } -} - -.discussion { - @mixin text; - @mixin textSmall; - - max-width: 325px; - padding-left: 25px; - - @media (max-width: $tablet-portrait) { - padding-left: 20px; - } -} - -.info { - @mixin text; - @mixin textLarge; - - @media (max-width: $tablet-portrait) { - @mixin textSmall; - } -} - -.entranceInfo { - display: flex; - max-width: 477px; - flex-direction: column; - padding: 25px 0 0 65px; - gap: 16px; - grid-area: entrance; - - @media (max-width: $tablet-portrait) { - max-width: 255px; - padding: 0; - gap: 0; - justify-self: flex-end; - } -} diff --git a/src/components/afisha-page/afisha-title/afisha-title.tsx b/src/components/afisha-page/afisha-title/afisha-title.tsx deleted file mode 100644 index 687c7ab8c..000000000 --- a/src/components/afisha-page/afisha-title/afisha-title.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { FC } from 'react'; -import cn from 'classnames/bind'; - -import { Icon } from 'components/ui/icon'; - -import styles from './afisha-title.module.css'; - -interface IProps { - festivalStatus: boolean; - description: string; - infoRegistration?: string | undefined; - asteriskText?: string | undefined; - afishaDates: Array; -} - -const cx = cn.bind(styles); - -export const AfishaTitle: FC = ({ festivalStatus, description, infoRegistration, asteriskText }) => { - return ( -
-

- {festivalStatus ? 'Афиша фестиваля' : 'Афиша событий'} -

- - {festivalStatus - && ( -
- -

- {asteriskText} -

-
- ) - } -
-

- {description} -

- - {festivalStatus - && ( -

- {infoRegistration} -

- ) - } -
-
- ); -}; diff --git a/src/components/afisha-page/afisha-title/index.ts b/src/components/afisha-page/afisha-title/index.ts deleted file mode 100644 index 4556f2182..000000000 --- a/src/components/afisha-page/afisha-title/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './afisha-title'; diff --git a/src/components/afisha-page/festival-date/festival-date.module.css b/src/components/afisha-page/festival-date/festival-date.module.css deleted file mode 100644 index b9e918e88..000000000 --- a/src/components/afisha-page/festival-date/festival-date.module.css +++ /dev/null @@ -1,38 +0,0 @@ -.wrapper { - display: flex; - flex-direction: row; - align-items: flex-end; - align-items: center; - justify-content: center; - padding-top: 10px; -} - -.date { - display: flex; - - @mixin text; -} - -.number { - @mixin text; - @mixin headline; - @mixin headline1; -} - -.month { - @mixin text; - @mixin headline; - @mixin textMedium; -} - -.alignItemsTop { - align-items: flex-start; -} - -.alignItemsCenter { - align-items: center; -} - -.alignItemsBottom { - align-items: baseline; -} diff --git a/src/components/afisha-page/festival-date/festival-date.tsx b/src/components/afisha-page/festival-date/festival-date.tsx deleted file mode 100644 index 9a8ae1b4d..000000000 --- a/src/components/afisha-page/festival-date/festival-date.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { FC } from 'react'; -import cn from 'classnames/bind'; - -import { format } from 'shared/helpers/format-date'; -import { ucFirst } from 'shared/helpers/uc-first'; - -import styles from './festival-date.module.css'; - -interface IProps { - dateTime: string; - alignItems?: 'bottom' | 'center' | 'top' -}; - -const cx = cn.bind(styles); - -export const FestivalDate: FC = (props) => { - const { dateTime, alignItems = 'center' } = props; - - const date = format('d', new Date(dateTime)); - const month = format('MMMM', new Date(dateTime)); - - return ( -
- -
- ); -}; diff --git a/src/components/afisha-page/festival-event/festival-event.module.css b/src/components/afisha-page/festival-event/festival-event.module.css deleted file mode 100644 index 88ecc2b4d..000000000 --- a/src/components/afisha-page/festival-event/festival-event.module.css +++ /dev/null @@ -1,53 +0,0 @@ -.section { - display: flex; - flex-direction: column; -} - -.header { - display: flex; - flex-direction: row; - justify-content: space-between; - border-bottom: 1px solid var(--coal); - - @media (max-width: $tablet-portrait) { - height: 60px; - padding-right: 0; - margin-right: 0; - } -} - -.opened { - align-self: flex-end; - padding: 5px 25px; - margin: 0 90px 0 0; - background-color: var(--coal); - color: var(--white); - - @mixin text; - @mixin textMedium; - - @media (max-width: $tablet-portrait) { - margin: 0 auto; - } -} - -.closed { - max-width: 202px; - align-self: center; - - @mixin text; - @mixin textSmall; - - @media (max-width: $tablet-portrait) { - margin: 0 auto; - text-align: center; - } -} - -.event { - padding: 0 90px 0 60px; - - @media (max-width: $tablet-portrait) { - padding: 0 24px 0 24px; - } -} diff --git a/src/components/afisha-page/festival-event/festival-event.tsx b/src/components/afisha-page/festival-event/festival-event.tsx deleted file mode 100644 index 403af006b..000000000 --- a/src/components/afisha-page/festival-event/festival-event.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import { forwardRef } from 'react'; -import cn from 'classnames/bind'; -import { isToday, isTomorrow } from 'date-fns'; - -import { FestivalEventCard } from 'components/festival-event-card'; - -import { AfishaEvent } from 'shared/types'; - -import { useMediaQuery } from 'shared/hooks/use-media-query'; -import breakpoints from 'shared/breakpoints'; -import { format } from 'shared/helpers/format-date'; - -import styles from './festival-event.module.css'; - -import { FestivalDate } from '../festival-date'; - -interface IProps extends AfishaEvent { - isFirst: boolean; -}; - -const cx = cn.bind(styles); - -const getYesterday = (dateTime: string) => { - const date = new Date(dateTime); - date.setDate(date.getDate() - 1); - return date; -}; - -export const FestivalEvent = forwardRef((props, ref) => { - const { eventBody, isFirst, dateTime } = props; - const isMobile = useMediaQuery(`(max-width: ${breakpoints['tablet-portrait']})`); - const isRegistrationAlreadyOpen = isToday(new Date(dateTime)) || (isTomorrow(new Date(dateTime)) && new Date().getHours() >= 12); - - return ( - // TODO: тут происходит что-то непонятное: для чего этот компонент? зачем мы заворачиваем каждую карточку события в секцию? почему не редерим заголовки дат отдельным компонентом во вьюхе? семантически получается дичь -
- {isFirst && ( -
- {!isMobile && ( - - )} -

- {isRegistrationAlreadyOpen - ? 'открыта регистрация' - : ( - <> - Регистрация откроется -
- {`${format('d MMMM', getYesterday(dateTime))} в 12:00`} - - )} -

-
- )} - -
- ); -}); - -FestivalEvent.displayName = 'FestivalEvent'; diff --git a/src/components/afisha-page/festival-event/index.ts b/src/components/afisha-page/festival-event/index.ts deleted file mode 100644 index 7287fc3f1..000000000 --- a/src/components/afisha-page/festival-event/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './festival-event'; diff --git a/src/components/afisha-page/festival-events-desktop/festival-events-desktop.module.css b/src/components/afisha-page/festival-events-desktop/festival-events-desktop.module.css deleted file mode 100644 index b96d467ba..000000000 --- a/src/components/afisha-page/festival-events-desktop/festival-events-desktop.module.css +++ /dev/null @@ -1,9 +0,0 @@ -.section { - display: flex; - flex-direction: column; -} - -.spinner { - width: 64px; - margin: 0 auto; -} diff --git a/src/components/afisha-page/festival-events-desktop/festival-events-desktop.tsx b/src/components/afisha-page/festival-events-desktop/festival-events-desktop.tsx deleted file mode 100644 index 9c0de628e..000000000 --- a/src/components/afisha-page/festival-events-desktop/festival-events-desktop.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { FC, useEffect } from 'react'; -import cn from 'classnames/bind'; - -import { useIntersection } from 'shared/hooks/use-intersection'; -import { Spinner } from 'components/spinner'; - -import styles from './festival-events-desktop.module.css'; - -import { FestivalEvent } from '../festival-event'; -import { useAfisha } from '../afisha-provider'; - -const cx = cn.bind(styles); - -export const FestivalEventsDesktop: FC = () => { - const { selectEvents, takeEvents, isLoading } = useAfisha(); - const [bottomRef, shouldTakeEvents] = useIntersection(); - const events = selectEvents(); - - useEffect(() => { - if (!shouldTakeEvents) { - return; - } - takeEvents(); - }, [shouldTakeEvents, takeEvents]); - - return ( -
- {events.map((e, i) => { - const ref = i === events.length - 1 ? bottomRef : undefined; - - // TODO: Тут происходит что-то не вполне понятное. Вместо того, чтобы сгруппировать события по датам и отрендерить - // очевидным образом, мы зачем-то родили обертку для каждой карточки, которая инкапсулирует в себе логику показа заголовка секции. - // При этом теперь каждая карточка обернута в
, не оч понятно, зачем - - return ( - - ); - })} - {isLoading() && } -
- ); -}; diff --git a/src/components/afisha-page/festival-events-desktop/index.ts b/src/components/afisha-page/festival-events-desktop/index.ts deleted file mode 100644 index cfa858b0f..000000000 --- a/src/components/afisha-page/festival-events-desktop/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './festival-events-desktop'; diff --git a/src/components/afisha-page/festival-events-mobile/festival-events-mobile.module.css b/src/components/afisha-page/festival-events-mobile/festival-events-mobile.module.css deleted file mode 100644 index ff9f4b5e6..000000000 --- a/src/components/afisha-page/festival-events-mobile/festival-events-mobile.module.css +++ /dev/null @@ -1,22 +0,0 @@ -.section { - display: flex; - flex-direction: column; -} - -.paginationContainer { - padding: 15px; -} - -.paginationItem { - width: 100%; - text-align: center; -} - -.preloaderContainer { - width: 100px; -} - -.spinner { - width: 64px; - margin: 0 auto; -} diff --git a/src/components/afisha-page/festival-events-mobile/festival-events-mobile.tsx b/src/components/afisha-page/festival-events-mobile/festival-events-mobile.tsx deleted file mode 100644 index 4924ad71b..000000000 --- a/src/components/afisha-page/festival-events-mobile/festival-events-mobile.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { FC, useCallback, useMemo, useRef } from 'react'; -import cn from 'classnames/bind'; - -import { Spinner } from 'components/spinner'; -import { AfishaPagination } from 'components/afisha-page/afisha-pagination'; - -import styles from './festival-events-mobile.module.css'; - -import { FestivalDate } from '../festival-date'; -import { useAfisha } from '../afisha-provider'; -import { FestivalEvent } from '../festival-event'; - -const cx = cn.bind(styles); - -export const FestivalEventsMobile: FC = () => { - const { selectInfo, selectEvents, putDay, selectDay, isLoading } = useAfisha(); - const eventsRef = useRef(null); - - const { afishaDates } = selectInfo(); - const day = selectDay(); - const events = selectEvents(afishaDates[day]); - - const onChange = useCallback((index: number) => { - putDay(index); - }, [putDay]); - - return ( -
- day, [])} - onChange={onChange} - > - {afishaDates.map((date) => ( -
- -
- ))} -
-
- {isLoading() &&} - {!isLoading() && events.map((e, index) => )} -
-
- ); -}; diff --git a/src/components/afisha-page/festival-events-mobile/index.ts b/src/components/afisha-page/festival-events-mobile/index.ts deleted file mode 100644 index 4a9034611..000000000 --- a/src/components/afisha-page/festival-events-mobile/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './festival-events-mobile'; diff --git a/src/components/afisha-page/festival-events/festival-events.module.css b/src/components/afisha-page/festival-events/festival-events.module.css deleted file mode 100644 index 56cf1146c..000000000 --- a/src/components/afisha-page/festival-events/festival-events.module.css +++ /dev/null @@ -1,9 +0,0 @@ -.section { - display: flex; - flex-direction: column; - padding: 0 32px; - - @media (max-width: $tablet-portrait) { - padding: 0; - } -} diff --git a/src/components/afisha-page/festival-events/festival-events.tsx b/src/components/afisha-page/festival-events/festival-events.tsx deleted file mode 100644 index f45b79983..000000000 --- a/src/components/afisha-page/festival-events/festival-events.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import cn from 'classnames/bind'; - -import breakpoints from 'shared/breakpoints'; -import { useMediaQuery } from 'shared/hooks/use-media-query'; - -import type { FC } from 'react'; - -import styles from './festival-events.module.css'; - -import { FestivalEventsMobile } from '../festival-events-mobile'; -import { FestivalEventsDesktop } from '../festival-events-desktop'; - -const cx = cn.bind(styles); - -export const FestivalEvents: FC = () => { - const isMobile = useMediaQuery(`(max-width: ${breakpoints['tablet-portrait']})`); - - return ( -
- {isMobile ? ( - - ) : ( - - )} -
- ); -}; diff --git a/src/components/afisha-page/festival-events/index.ts b/src/components/afisha-page/festival-events/index.ts deleted file mode 100644 index 41cd12dfb..000000000 --- a/src/components/afisha-page/festival-events/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './festival-events'; diff --git a/src/components/afisha-page/regular-events/index.ts b/src/components/afisha-page/regular-events/index.ts deleted file mode 100644 index befb146f1..000000000 --- a/src/components/afisha-page/regular-events/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './regular-events'; diff --git a/src/components/afisha-page/regular-events/regular-events.module.css b/src/components/afisha-page/regular-events/regular-events.module.css deleted file mode 100644 index 2215a6f5e..000000000 --- a/src/components/afisha-page/regular-events/regular-events.module.css +++ /dev/null @@ -1,49 +0,0 @@ -.section { - display: grid; - padding: 66px 0 166px; - grid-template-columns: repeat(3, 1fr); - - @media (max-width: $tablet-portrait) { - display: flex; - flex-direction: column; - padding: 0 0 100px 0; - } -} - -.event { - padding: 0 30px 72px; - border-right: 1px solid var(--coal); - - &&:nth-last-child(-n+3) { - padding-bottom: 0; - } - - &&:nth-child(3n) { - padding-right: 0; - border-right: none; - } - - @media (max-width: $tablet-portrait) { - width: inherit; - padding: 32px 27px; - border-right: none; - margin-bottom: 0; - - &&:nth-last-child(-n+3) { - padding-bottom: 32px; - } - - &&:nth-child(3n) { - padding-right: 27px; - } - - &&:last-of-type { - border-bottom: 1px solid var(--coal); - } - } -} - -.spinner { - width: 64px; - margin: 0 auto; -} diff --git a/src/components/afisha-page/regular-events/regular-events.tsx b/src/components/afisha-page/regular-events/regular-events.tsx deleted file mode 100644 index 2a37ce8a3..000000000 --- a/src/components/afisha-page/regular-events/regular-events.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import { FC, useEffect } from 'react'; -import cn from 'classnames/bind'; - -import { EventCard } from 'components/event-card'; -import { Spinner } from 'components/spinner'; - -import { useIntersection } from 'shared/hooks/use-intersection'; -import { format } from 'shared/helpers/format-date'; - -import styles from './regular-events.module.css'; - -import { useAfisha } from '../afisha-provider'; - -const cx = cn.bind(styles); - -export const RegularEvents: FC = () => { - const { selectEvents, takeEvents, isLoading } = useAfisha(); - const [bottomRef, shouldTakeEvents] = useIntersection(); - const events = selectEvents(); - - useEffect(() => { - if (!shouldTakeEvents) { - return; - } - takeEvents(); - }, [shouldTakeEvents, takeEvents]); - - return ( -
- {events.map((event, i) => { - const ref = i === events.length - 1 ? bottomRef : undefined; - - return ( - - ); - })} - {isLoading() && } -
- ); -}; diff --git a/src/components/afisha-page/title/afisha-title.module.css b/src/components/afisha-page/title/afisha-title.module.css deleted file mode 100644 index aedf4dc79..000000000 --- a/src/components/afisha-page/title/afisha-title.module.css +++ /dev/null @@ -1,79 +0,0 @@ -.section { - display: grid; - padding: 58px 0 112px; - grid-template-areas: '. title''discussion entrance'; - grid-template-columns: repeat(2, 1fr); - grid-template-rows: repeat(2, auto); - row-gap: 7px; - - @media (max-width: $tablet-portrait) { - padding: 0 24px 30px; - grid-template-areas: 'title''entrance''discussion'; - grid-template-columns: 1fr; - grid-template-rows: repeat(3, auto); - row-gap: 24px; - } -} - -.title { - @mixin headline; - @mixin headline1; - - max-width: 542px; - grid-area: title; - - @media (max-width: $tablet-portrait) { - @mixin headline4; - - max-width: 298px; - } -} - -.discussionInfo { - display: flex; - flex-direction: column; - padding-left: 125px; - grid-area: discussion; - - @media (max-width: $tablet-portrait) { - max-width: 261px; - padding-left: 0; - } -} - -.discussion { - @mixin text; - @mixin textSmall; - - max-width: 325px; - padding-left: 25px; - - @media (max-width: $tablet-portrait) { - padding-left: 20px; - } -} - -.info { - @mixin text; - @mixin textLarge; - - @media (max-width: $tablet-portrait) { - @mixin textSmall; - } -} - -.entranceInfo { - display: flex; - max-width: 477px; - flex-direction: column; - padding: 25px 0 0 65px; - gap: 16px; - grid-area: entrance; - - @media (max-width: $tablet-portrait) { - max-width: 255px; - padding: 0; - gap: 0; - justify-self: flex-end; - } -} diff --git a/src/components/afisha-page/title/afisha-title.tsx b/src/components/afisha-page/title/afisha-title.tsx deleted file mode 100644 index 687c7ab8c..000000000 --- a/src/components/afisha-page/title/afisha-title.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { FC } from 'react'; -import cn from 'classnames/bind'; - -import { Icon } from 'components/ui/icon'; - -import styles from './afisha-title.module.css'; - -interface IProps { - festivalStatus: boolean; - description: string; - infoRegistration?: string | undefined; - asteriskText?: string | undefined; - afishaDates: Array; -} - -const cx = cn.bind(styles); - -export const AfishaTitle: FC = ({ festivalStatus, description, infoRegistration, asteriskText }) => { - return ( -
-

- {festivalStatus ? 'Афиша фестиваля' : 'Афиша событий'} -

- - {festivalStatus - && ( -
- -

- {asteriskText} -

-
- ) - } -
-

- {description} -

- - {festivalStatus - && ( -

- {infoRegistration} -

- ) - } -
-
- ); -}; diff --git a/src/components/afisha-page/title/index.ts b/src/components/afisha-page/title/index.ts deleted file mode 100644 index 4556f2182..000000000 --- a/src/components/afisha-page/title/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './afisha-title'; diff --git a/src/components/afisha-page/utils/fetchData.ts b/src/components/afisha-page/utils/fetchData.ts deleted file mode 100644 index 40f0ac915..000000000 --- a/src/components/afisha-page/utils/fetchData.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { AfishaEventListOutput, AfishaInfoOutput } from 'api-typings'; -import { fetcher } from 'services/fetcher'; -import { snakeToCamelObject } from 'shared/helpers/snake-to-camel'; -import { AfishaEvents, AfishaInfo } from 'shared/types'; - -export const fetchInfo = async () => snakeToCamelObject(await fetcher('afisha/info/')); - -export const fetchEvents = async (offset: number = 0, limit: number = 10) => { - return snakeToCamelObject(await fetcher - (`afisha/events/?limit=${limit}${offset ? `&offset=${offset}` : ''}`)); -}; diff --git a/src/components/alphabetical-author-list/alphabetical-author-list.module.css b/src/components/alphabetical-author-list/alphabetical-author-list.module.css new file mode 100644 index 000000000..a8d9be0d6 --- /dev/null +++ b/src/components/alphabetical-author-list/alphabetical-author-list.module.css @@ -0,0 +1,33 @@ +.letter { + @mixin headline; + @mixin headline4; + + text-transform: uppercase; +} + +.list { + padding: 0; + margin: 14px 0 60px; + + :first-child { + margin-bottom: 0; + } +} + +.item { + display: block; + + &:not(:last-child) { + margin: 0 0 12px; + } +} + +.link.link { + padding: 0; + + :first-child { + font-family: "PP Neue Machina", Arial, sans-serif; + font-weight: 400; + letter-spacing: -.01em; + } +} diff --git a/src/components/alphabetical-author-list/alphabetical-author-list.tsx b/src/components/alphabetical-author-list/alphabetical-author-list.tsx new file mode 100644 index 000000000..231016b3c --- /dev/null +++ b/src/components/alphabetical-author-list/alphabetical-author-list.tsx @@ -0,0 +1,75 @@ +import classNames from 'classnames/bind'; + +import { Button } from 'components/ui/button2'; + +import type { Author } from 'core/author'; + +import styles from './alphabetical-author-list.module.css'; + +const cx = classNames.bind(styles); + +interface AlphabeticalAuthorListProps { + items: Author[] +} + +export const AlphabeticalAuthorList: React.VFC = (props) => { + const { items } = props; + const groupedItems = groupByAlphabet(items); + + return ( +
+ {Object.keys(groupedItems).map((letter) => ( +
+

+ {letter} +

+
    + {groupedItems[letter].map((author) => ( +
  • + +
  • + ))} +
+
+ ))} +
+ ); +}; + +function groupByAlphabet(authors: Author[]) { + return authors.sort(compareAuthors).reduce((result, author) => { + const leadingSymbol = author.fullName.trim()[0].toLowerCase(); + const group = /[а-я]/.test(leadingSymbol) ? leadingSymbol : '#'; + + if (result[group]) { + result[group].push(author); + } else { + result[group] = [author]; + } + + return result; + }, {} as Record); +} + +function compareAuthors(a: Author, b: Author) { + if (a.fullName > b.fullName) { + return 1; + } + + if (a.fullName < b.fullName) { + return -1; + } + + return 0; +} diff --git a/src/components/alphabetical-author-list/index.ts b/src/components/alphabetical-author-list/index.ts new file mode 100644 index 000000000..f589a6b42 --- /dev/null +++ b/src/components/alphabetical-author-list/index.ts @@ -0,0 +1 @@ +export * from './alphabetical-author-list'; diff --git a/src/components/alphabetical-pagination/alphabetical-pagination.module.css b/src/components/alphabetical-pagination/alphabetical-pagination.module.css new file mode 100644 index 000000000..a45adda3f --- /dev/null +++ b/src/components/alphabetical-pagination/alphabetical-pagination.module.css @@ -0,0 +1,36 @@ +.list { + display: flex; + padding: 0; + margin: 0; +} + +.item { + display: block; + + &:not(:last-child) { + margin-right: 12px; + } +} + +.link { + @mixin text; + + display: block; + padding: 12px 10px; + color: inherit; + font-size: 20px; + line-height: 24px; + text-decoration: none; + text-transform: uppercase; + + &.current { + background-color: var(--coal); + color: var(--white); + pointer-events: none; + } + + &.disabled { + color: var(--gray); + pointer-events: none; + } +} diff --git a/src/components/alphabetical-pagination/alphabetical-pagination.tsx b/src/components/alphabetical-pagination/alphabetical-pagination.tsx new file mode 100644 index 000000000..eec931bf9 --- /dev/null +++ b/src/components/alphabetical-pagination/alphabetical-pagination.tsx @@ -0,0 +1,71 @@ +import classNames from 'classnames/bind'; +import Link from 'next/link'; +import { useCallback } from 'react'; + +import { alphabeticalPaginationLetters } from 'shared/constants/alphabetical-pagination-letters'; + +import type { VFC } from 'react'; +import type { AlphabeticalPaginationLetter } from 'shared/constants/alphabetical-pagination-letters'; + +import styles from './alphabetical-pagination.module.css'; + +interface AlphabeticalPaginationProps { + availableLetters: AlphabeticalPaginationLetter[] + currentLetter: AlphabeticalPaginationLetter + onLetterChange?: (letter: AlphabeticalPaginationLetter) => void +} + +const cx = classNames.bind(styles); + +export const AlphabeticalPagination: VFC = (props) => { + const { + availableLetters, + currentLetter, + onLetterChange, + } = props; + + const handleLetterChange = useCallback((letter: AlphabeticalPaginationLetter) => () => { + if (onLetterChange) { + onLetterChange(letter); + } + }, [onLetterChange]); + + return ( + + ); +}; diff --git a/src/components/alphabetical-pagination/index.ts b/src/components/alphabetical-pagination/index.ts new file mode 100644 index 000000000..d1834e8ec --- /dev/null +++ b/src/components/alphabetical-pagination/index.ts @@ -0,0 +1 @@ +export * from './alphabetical-pagination'; diff --git a/src/components/app-layout/app-layout.tsx b/src/components/app-layout/app-layout.tsx index fff8e33b5..ec38d4032 100644 --- a/src/components/app-layout/app-layout.tsx +++ b/src/components/app-layout/app-layout.tsx @@ -1,49 +1,51 @@ -import { useCallback, useEffect, useState } from 'react'; +import isEmpty from 'lodash/isEmpty'; import { useRouter } from 'next/router'; +import { useCallback, useEffect, useState } from 'react'; -import Page from 'components/page'; -import { Menu } from 'components/ui/menu'; -import { Icon } from 'components/ui/icon'; -import { Navbar } from 'components/navbar'; -import { Logotype } from 'components/logotype'; +import { DonationLink } from 'components/donation-link'; import { Footer } from 'components/footer'; -import { OverlayNav } from 'components/overlay-nav'; -import { BurgerButton } from 'components/ui/burger-button'; -import { PartnerList } from 'components/partner-list'; import { FooterCopyright } from 'components/footer-copyright'; -import { DonationLink } from 'components/donation-link'; +import { Logotype } from 'components/logotype'; +import { Navbar } from 'components/navbar'; +import { OverlayNav } from 'components/overlay-nav'; +import Page from 'components/page'; import PartnerCard from 'components/partner-card'; -import { mainNavigationItems } from 'shared/constants/main-navigation-items'; -import { footerNavigationItems } from 'shared/constants/footer-navigation-items'; -import { socialLinkItems } from 'shared/constants/social-link-items'; +import { PartnerList } from 'components/partner-list'; +import { BurgerButton } from 'components/ui/burger-button'; +import { Icon } from 'components/ui/icon'; +import { Menu } from 'components/ui/menu'; +import { usePartners } from 'services/api/partners-adapter'; +import { useSettings } from 'services/api/settings-adapter'; +import * as breakpoints from 'shared/breakpoints.js'; import { donationPath } from 'shared/constants/donation-path'; +import { footerNavigationItems } from 'shared/constants/footer-navigation-items'; +import { mainNavigationItems } from 'shared/constants/main-navigation-items'; import { participationFormPath } from 'shared/constants/participation-form-path'; -import { usePersistentData } from 'providers/persistent-data-provider'; -import { useMediaQuery } from 'shared/hooks/use-media-query'; +import { socialLinkItems } from 'shared/constants/social-link-items'; import { useDisableBodyScroll } from 'shared/hooks/use-disable-body-scroll'; -import * as breakpoints from 'shared/breakpoints.js'; +import { useMediaQuery } from 'shared/hooks/use-media-query'; -import type { ReactNode } from 'react'; import type { NavbarProps } from 'components/navbar'; -type disallowedNavbarProps = 'children' | 'view' - interface AppLayoutProps { + customNavbar?: React.ReactNode + navbarProps?: Pick + navbarAddon?: React.ReactNode hiddenPartners?: boolean - navbarProps?: Exclude - headBanner?: ReactNode - children: ReactNode } -export const AppLayout = (props: AppLayoutProps) => { +export const AppLayout: React.VFC> = (props) => { const { children, - hiddenPartners, + customNavbar, navbarProps, - headBanner, + navbarAddon, + hiddenPartners, } = props; - const { projects, generalPartners, settings } = usePersistentData(); + const { settings } = useSettings(); + const { partners } = usePartners({ onlyGeneral: true }); const [isOverlayMenuOpen, setIsOverlayMenuOpen] = useState(false); + const [scrollPosition, setScrollPosition] = useState(0); const isMobile = useMediaQuery(`(max-width: ${breakpoints['tablet-portrait']})`); const router = useRouter(); @@ -54,66 +56,83 @@ export const AppLayout = (props: AppLayoutProps) => { useDisableBodyScroll(!!isMobile && isOverlayMenuOpen); useEffect(() => { - if (!isMobile) setIsOverlayMenuOpen(false); + if (!isMobile) { + setIsOverlayMenuOpen(false); + } }, [isMobile]); + useEffect(() => { + const onChange = () => { + setScrollPosition(window.scrollY); + if (screen.orientation.type === 'landscape-primary') { + window.scroll(0, scrollPosition * (window.outerWidth / window.outerHeight)); + } + }; + screen.orientation.addEventListener('change', onChange); + + return () => { + screen.orientation.removeEventListener('change', onChange); + }; + }, [scrollPosition]); + return ( - {headBanner && ( - - {headBanner} - - )} - - - - - - - - - {mainNavigationItems - .filter(item => !item.mobileOnly) - .map((item) => ( - + + {customNavbar ? customNavbar : ( + + + + + + + + {mainNavigationItems + .filter(item => !item.mobileOnly) + .map((item) => ( + + {item.text} + + ))} + + + + + {socialLinkItems.map((item) => ( + {item.text} ))} - - - - - {socialLinkItems.map((item) => ( - - {item.text} - - ))} - - - - - - - + + + + + + + {navbarAddon && ( + + {navbarAddon} + + )} + + )} {children}
- {!hiddenPartners && generalPartners && generalPartners?.length > 0 && ( + {!hiddenPartners && partners && !isEmpty(partners) && ( - {generalPartners.map((partner) => ( + {partners.map((partner) => ( { - {projects && projects.length > 0 && ( + {!isEmpty(settings?.projects) && ( Все проекты - {projects.map((item) => ( + {settings?.projects.map((item) => ( { ); }; + diff --git a/src/components/app/app.tsx b/src/components/app/app.tsx index c81f1c968..1f778742a 100644 --- a/src/components/app/app.tsx +++ b/src/components/app/app.tsx @@ -1,44 +1,38 @@ -import { AppProps } from 'next/app'; -import Script from 'next/script'; +import { ru } from 'date-fns/locale'; +import setDefaultOptions from 'date-fns/setDefaultOptions'; +import { SWRConfig } from 'swr'; -import { PersistentDataProvider } from 'providers/persistent-data-provider'; -import { NewsProvider } from 'providers/news-provider'; -import { BlogProvider } from 'providers/blog-provider'; +import { GoogleAnalyticsScript } from 'components/google-analytics-script'; -import { googleAnalyticsTrackingId } from '../../../config/vars'; +import { googleAnalyticsTrackingId } from '../../../config/env'; -export const App = ({ Component, pageProps }: AppProps): JSX.Element => { +import type { AppProps } from 'next/app'; + +if (process.env.NEXT_PUBLIC_API_MOCKING === 'enabled') { + import('mocks').then(({ setupMocks }) => setupMocks()); +} + +setDefaultOptions({ + locale: ru, +}); + +export const App = ({ Component, pageProps }: AppProps) => { const { - preloadedNewsState, ...restPageProps } = pageProps; return ( <> {googleAnalyticsTrackingId && ( - <> - - + )} - - - - - - - + + + ); }; diff --git a/src/components/arrow-button/arrow-button.module.css b/src/components/arrow-button/arrow-button.module.css new file mode 100644 index 000000000..40f454d96 --- /dev/null +++ b/src/components/arrow-button/arrow-button.module.css @@ -0,0 +1,124 @@ +.button { + position: relative; + display: flex; + box-sizing: border-box; + align-items: center; + justify-content: center; + border: 0; + border-radius: 50%; + background: 0; + font-size: 0; + + &::before, + &::after { + position: absolute; + top: 50%; + left: 50%; + display: block; + border: 1px solid var(--coal); + border-radius: 50%; + border-top: 1px solid var(--coal); + background: 0; + content: ""; + transform: translate(-50%, -50%); + } + + &::before { + visibility: hidden; + } + + &:hover { + color: var(--white); + cursor: pointer; + transition-delay: .15s; + + &::after { + animation: fill .05s; + animation-delay: .15s; + animation-fill-mode: forwards; + } + + &::before { + transition: .15s transform linear; + visibility: visible; + } + + &.backward { + &::before { + transform: translate(-50%, -50%) rotate(-180deg); + } + } + + &.forward { + &::before { + transform: translate(-50%, -50%) rotate(180deg); + } + } + } + + &:active { + &::after { + transform: translate(-50%, -50%) scale(1.1); + } + } +} + +.forward { + composes: button; + + &::before, + &::after { + clip-path: polygon(50% 0, 100% 0, 100% 100%, 50% 100%); + } +} + +.backward { + composes: button; + + &::before, + &::after { + clip-path: polygon(0 0, 50% 0, 50% 100%, 0% 100%); + } +} + +.button-icon { + position: relative; + z-index: 1; + display: flex; + width: 24px; + height: 24px; +} + +.button:disabled { + visibility: hidden; +} + +.button.s { + width: 48px; + height: 48px; + + &::before, + &::after { + width: 100%; + height: 100%; + } +} + +.button.m { + width: 66px; + height: 66px; + background-color: var(--beige); + + &::before, + &::after { + width: 48px; + height: 48px; + } +} + +@keyframes fill { + to { + background-color: var(--coal); + clip-path: none; + } +} diff --git a/src/components/arrow-button/arrow-button.tsx b/src/components/arrow-button/arrow-button.tsx new file mode 100644 index 000000000..e2a381ef6 --- /dev/null +++ b/src/components/arrow-button/arrow-button.tsx @@ -0,0 +1,45 @@ +import classNames from 'classnames/bind'; + +import { Icon } from 'components/ui/icon'; + +import styles from './arrow-button.module.css'; + +interface ImageCarouselButtonProps { + variant: 'backward' | 'forward' + size?: 's' | 'm' + disabled?: boolean + text: string + className?: string + onClick: () => void +} + +const cx = classNames.bind(styles); + +export const ArrowButton: React.FC = (props) => { + const { + variant, + size = 'm', + disabled, + text, + className, + onClick, + } = props; + + return ( + + ); +}; diff --git a/src/components/arrow-button/index.ts b/src/components/arrow-button/index.ts new file mode 100644 index 000000000..2d4687ae7 --- /dev/null +++ b/src/components/arrow-button/index.ts @@ -0,0 +1 @@ +export * from './arrow-button'; diff --git a/src/components/article-footnote/article-footnote.tsx b/src/components/article-footnote/article-footnote.tsx index b62912940..23ebf8927 100644 --- a/src/components/article-footnote/article-footnote.tsx +++ b/src/components/article-footnote/article-footnote.tsx @@ -1,6 +1,6 @@ import classNames from 'classnames/bind'; -import type { VFC, ReactNode } from 'react'; +import type { ReactNode,VFC } from 'react'; import styles from './article-footnote.module.css'; diff --git a/src/components/article-headline/article-headline.module.css b/src/components/article-headline/article-headline.module.css index 76afd8675..07323d0d0 100644 --- a/src/components/article-headline/article-headline.module.css +++ b/src/components/article-headline/article-headline.module.css @@ -47,6 +47,8 @@ $padding-bottom: 82px; .author { align-self: center; + padding: 0; + padding-left: 4px; grid-area: author; justify-self: center; @@ -75,11 +77,12 @@ $padding-bottom: 82px; display: grid; box-sizing: border-box; padding: 18px 0 $padding-bottom 150px; + color: var(--coal); grid-column-gap: 30px; grid-template-areas: - 'title title .' - 'description description cover' - 'date author cover'; + "title title ." + "description description cover" + "date author cover"; grid-template-columns: 1fr 1fr min-content; row-gap: 28px; @@ -87,11 +90,11 @@ $padding-bottom: 82px; padding-left: 24px; grid-column-gap: 0; grid-template-areas: - 'cover' - 'date' - 'title' - 'description' - 'author'; + "cover" + "date" + "title" + "description" + "author"; grid-template-columns: 1fr; } } diff --git a/src/components/article-headline/article-headline.tsx b/src/components/article-headline/article-headline.tsx index a5e041251..6d40efc75 100644 --- a/src/components/article-headline/article-headline.tsx +++ b/src/components/article-headline/article-headline.tsx @@ -1,8 +1,8 @@ import cn from 'classnames/bind'; import Image from 'next/image'; -import { InfoLink } from 'components/ui/info-link'; -import { Url } from 'shared/types'; +import { Button } from 'components/ui/button2'; +import { Icon } from 'components/ui/icon'; import type { FC } from 'react'; @@ -57,15 +57,23 @@ export const ArticleHeadline: FC = (props) => { {date} {author && ( - + icon={( + + )} + iconPosition="right" + animation='invert' + className={cx('author')} + > + {author} + )}
); diff --git a/src/components/author-list-heading/author-list-heading.module.css b/src/components/author-list-heading/author-list-heading.module.css new file mode 100644 index 000000000..506cc2762 --- /dev/null +++ b/src/components/author-list-heading/author-list-heading.module.css @@ -0,0 +1,34 @@ +.root { + display: flex; +} + +.title { + @mixin headline; + + padding: 14px 0 0; + margin: 0; + font-size: 100px; + line-height: 1; + text-transform: uppercase; + + @media (max-width: $tablet-portrait) { + font-size: 56px; + } +} + +.subtitle { + min-width: 3ch; + margin: 0; + font-size: 20px; + line-height: 28px; +} + +.semantic-only-note { + font-size: 0; +} + +.root.pending { + .subtitle { + visibility: hidden; + } +} diff --git a/src/components/author-list-heading/author-list-heading.tsx b/src/components/author-list-heading/author-list-heading.tsx new file mode 100644 index 000000000..35e150617 --- /dev/null +++ b/src/components/author-list-heading/author-list-heading.tsx @@ -0,0 +1,45 @@ +import classNames from 'classnames/bind'; + +import type { VFC } from 'react'; +import type { AlphabeticalPaginationLetter } from 'shared/constants/alphabetical-pagination-letters'; + +import styles from './author-list-heading.module.css'; + +interface AuthorLetterProps { + pending?: boolean + letter: AlphabeticalPaginationLetter + totalAuthors?: number +} + +const cx = classNames.bind(styles); + +export const AuthorListHeading: VFC = (props) => { + const { + pending, + letter, + totalAuthors, + } = props; + + return ( +
+

+ + Авторы на букву + {' '} + « + + {letter.toUpperCase()} + + » + +

+

+ + Всего: + {' '} + + {totalAuthors} +

+
+ ); +}; diff --git a/src/components/author-list-heading/index.ts b/src/components/author-list-heading/index.ts new file mode 100644 index 000000000..30acb54d2 --- /dev/null +++ b/src/components/author-list-heading/index.ts @@ -0,0 +1 @@ +export * from './author-list-heading'; diff --git a/src/components/author-list/author-list.module.css b/src/components/author-list/author-list.module.css new file mode 100644 index 000000000..111f567f2 --- /dev/null +++ b/src/components/author-list/author-list.module.css @@ -0,0 +1,4 @@ +.root { + padding: 0; + margin: 0; +} diff --git a/src/components/author-list/author-list.tsx b/src/components/author-list/author-list.tsx new file mode 100644 index 000000000..2873e6bfe --- /dev/null +++ b/src/components/author-list/author-list.tsx @@ -0,0 +1,25 @@ +import classNames from 'classnames/bind'; + +import { AuthorListItem } from './item'; + +import type { FC } from 'react'; + +import styles from './author-list.module.css'; + +const cx = classNames.bind(styles); + +const Component: FC = (props) => { + const { + children, + } = props; + + return ( +
    + {children} +
+ ); +}; + +export const AuthorList = Object.assign(Component, { + Item: AuthorListItem, +}); diff --git a/src/components/author-list/index.ts b/src/components/author-list/index.ts new file mode 100644 index 000000000..876dd3155 --- /dev/null +++ b/src/components/author-list/index.ts @@ -0,0 +1 @@ +export * from './author-list'; diff --git a/src/components/author-list/item/author-list-item.module.css b/src/components/author-list/item/author-list-item.module.css new file mode 100644 index 000000000..2628b6bba --- /dev/null +++ b/src/components/author-list/item/author-list-item.module.css @@ -0,0 +1,7 @@ +.root { + display: block; + + a { + width: 100%; + } +} diff --git a/src/components/author-list/item/author-list-item.tsx b/src/components/author-list/item/author-list-item.tsx new file mode 100644 index 000000000..d790985d4 --- /dev/null +++ b/src/components/author-list/item/author-list-item.tsx @@ -0,0 +1,19 @@ +import classNames from 'classnames/bind'; + +import type { FC } from 'react'; + +import style from './author-list-item.module.css'; + +const cx = classNames.bind(style); + +export const AuthorListItem: FC = (props) => { + const { + children, + } = props; + + return ( +
  • + {children} +
  • + ); +}; diff --git a/src/components/author-list/item/index.ts b/src/components/author-list/item/index.ts new file mode 100644 index 000000000..6d17cd346 --- /dev/null +++ b/src/components/author-list/item/index.ts @@ -0,0 +1 @@ +export * from './author-list-item'; diff --git a/src/components/author-page/another-plays/another-plays.module.css b/src/components/author-page/another-plays/another-plays.module.css index 8214b6b85..9f81c3934 100644 --- a/src/components/author-page/another-plays/another-plays.module.css +++ b/src/components/author-page/another-plays/another-plays.module.css @@ -63,5 +63,8 @@ .downloadButton { margin: 5px 0; - text-decoration: none; +} + +.downloadButton.downloadButton :first-child { + margin-left: 0; } diff --git a/src/components/author-page/another-plays/another-plays.tsx b/src/components/author-page/another-plays/another-plays.tsx index 1c7aac2f0..ae3b4e10d 100644 --- a/src/components/author-page/another-plays/another-plays.tsx +++ b/src/components/author-page/another-plays/another-plays.tsx @@ -1,11 +1,11 @@ import cn from 'classnames/bind'; -import { Button } from 'components/ui/button'; - -import styles from './another-plays.module.css'; +import { Button } from 'components/ui/button2'; +import { Icon } from 'components/ui/icon'; import type { FC } from 'react'; -import type { Url } from 'shared/types'; + +import styles from './another-plays.module.css'; const cx = cn.bind(styles); @@ -15,7 +15,7 @@ type PlayLink = { } interface AnotherPlaysProps { - links: PlayLink[]; + links: PlayLink[] } export const AnotherPlays: FC = ({ links }) => { @@ -31,15 +31,23 @@ export const AnotherPlays: FC = ({ links }) => { {link.title}

    {link.href && ( - - )} ))} diff --git a/src/components/author-page/information/information.module.css b/src/components/author-page/information/information.module.css index d27c34e16..a6de5c904 100644 --- a/src/components/author-page/information/information.module.css +++ b/src/components/author-page/information/information.module.css @@ -42,7 +42,7 @@ @mixin textLarge; margin: 4px 6px 9px; - font-feature-settings: 'ss01' on; + font-feature-settings: "ss01" on; } .anchor { diff --git a/src/components/author-page/information/information.tsx b/src/components/author-page/information/information.tsx index 8605152f7..180e0a77d 100644 --- a/src/components/author-page/information/information.tsx +++ b/src/components/author-page/information/information.tsx @@ -1,15 +1,17 @@ -import { FC } from 'react'; import cn from 'classnames/bind'; -import { InfoLink } from 'components/ui/info-link'; -import { OtherLink } from 'api-typings'; +import { Button } from 'components/ui/button2'; +import { Icon } from 'components/ui/icon'; + +import type { OtherLink } from '__generated__/api-typings'; +import type { FC } from 'react'; import styles from './information.module.css'; const cx = cn.bind(styles); interface IAuthorInformation { - links: OtherLink[], + links: OtherLink[] } export const AuthorInformation: FC = ({ links }) => { @@ -23,15 +25,23 @@ export const AuthorInformation: FC = ({ links }) => { {links .map((item, idx) => (
    - + icon={( + + )} + iconPosition="right" + animation='invert' + > + {item.name} +
    )) } diff --git a/src/components/author-page/overview/overview.module.css b/src/components/author-page/overview/overview.module.css index cb58a5b8d..e53fd637d 100644 --- a/src/components/author-page/overview/overview.module.css +++ b/src/components/author-page/overview/overview.module.css @@ -4,42 +4,36 @@ .personalInfo { display: grid; - grid-template-areas: - 'button photo fullName' - 'button photo city' - 'button photo quote'; - grid-template-columns: 2fr 6fr 9fr; - grid-template-rows: auto; + grid-template: + "button photo fullName" + "button photo city" + "button photo quote" / 2fr 6fr 9fr; @media (max-width: $tablet-portrait) { background-color: var(--light-green); - grid-template-areas: - 'button' - 'photo' - 'fullName' - 'city' - 'quote'; - grid-template-columns: 10fr; + grid-template: + "button" + "photo" + "fullName" + "city" + "quote"; } } .personalInfoNoPhoto { display: grid; - grid-template-areas: - 'button photo fullName' - 'button photo city' - 'button quote empty'; - grid-template-columns: 2fr 6fr 9fr; - grid-template-rows: auto; + grid-template: + "button photo fullName" + "button photo city" + "button quote empty" / 2fr 6fr 9fr; @media (max-width: $tablet-portrait) { background-color: var(--light-green); - grid-template-areas: - 'button' - 'fullName' - 'city' - 'quote'; - grid-template-columns: 10fr; + grid-template: + "button" + "fullName" + "city" + "quote"; } } @@ -114,7 +108,7 @@ @mixin text; @mixin textMedium; - padding: 0 40px 0; + padding: 0 40px; margin: 0 0 56px; grid-area: city; @@ -200,7 +194,7 @@ white-space: pre-wrap; @media (max-width: $tablet-portrait) { - padding: 56px 0 0 0; + padding: 56px 0 0; } } @@ -208,6 +202,23 @@ max-height: 200px; } +.buttonToggle { + align-items: flex-start; + padding-top: 0; + padding-right: 0; + padding-bottom: 4px; + + :last-child { + padding-top: 7px; + } + + :first-child { + width: 24px; + height: 24px; + padding-top: 0; + } +} + .authorLinks { max-width: 479px; padding: 80px 0 0; @@ -221,13 +232,20 @@ @mixin text; @mixin textLarge; - font-feature-settings: 'ss01' on; + font-feature-settings: "ss01" on; } .link { min-width: 25px; } +.tagLink { + display: inline-block; + border-bottom: 1px solid currentColor; + color: inherit; + text-decoration: none; +} + .overviewContacts { max-width: 610px; } @@ -245,7 +263,7 @@ @media (max-width: $tablet-portrait) { max-width: 300px; - padding: 0 25px 100px 25px; + padding: 0 25px 100px; grid-column: auto; grid-row: 1/2; justify-self: center; @@ -267,7 +285,7 @@ } .overviewTagsBlock { - margin: 0 0 53px; + margin: 0 0 45px; } .overviewSocialLinkBlock { @@ -279,6 +297,15 @@ margin: 0 8px 8px 0; } +.overviewSocialLinkButton { + padding: 0; + padding-right: 10px; +} + +.overviewSocialLinkButton.overviewSocialLinkButton :first-child { + margin-right: 0; +} + .overviewSocialLinkHeading { @mixin headline; @mixin headline7; @@ -293,6 +320,15 @@ margin: 6px 0; } +.overviewEmaillLink.overviewEmaillLink { + padding: 0; + text-decoration: underline; + + :first-child { + font-family: "PP Neue Machina", Arial, sans-serif; + } +} + .overviewTagsHeading { @mixin headline; @mixin headline7; diff --git a/src/components/author-page/overview/overview.tsx b/src/components/author-page/overview/overview.tsx index 027650224..44ebaa7ea 100644 --- a/src/components/author-page/overview/overview.tsx +++ b/src/components/author-page/overview/overview.tsx @@ -1,38 +1,35 @@ -import { useState, useMemo } from 'react'; - import cn from 'classnames/bind'; +import { useMemo,useState } from 'react'; + +import { PlayCard } from 'components/play-card'; +import { PlayList } from 'components/play-list'; +import { Section } from 'components/section'; +import { Button } from 'components/ui/button2'; +import { Icon } from 'components/ui/icon'; import * as breakpoints from 'shared/breakpoints.js'; -import { AuthorPlays } from 'components/author-page/plays'; -import { Button } from 'components/ui/button'; -import { Tag } from 'components/ui/tag'; -import { InfoLink } from 'components/ui/info-link'; -import { useMediaQuery } from 'shared/hooks/use-media-query'; import { numberOfCharacters } from 'shared/constants/numbers'; +import { useMediaQuery } from 'shared/hooks/use-media-query'; -import type { FC } from 'react'; -import type { OtherLink, Play, SocialNetwork, Achievement } from 'api-typings'; +import type { Achievement,OtherLink, Play, SocialNetwork } from '__generated__/api-typings'; import styles from './overview.module.css'; -import { Link } from '../../ui/link'; const cx = cn.bind(styles); interface IAuthorOverview { - props: { - image: string, - name: string, - city: string, - quote: string, - biography: string, - other_links: OtherLink[], - achievements: Array, - social_networks: SocialNetwork[], - email: string, - plays: Play[], - } + image: string + name: string + city: string + quote: string + biography: string + other_links: OtherLink[] + achievements: Array + social_networks: SocialNetwork[] + email: string + plays: Play[] } -export const AuthorOverview: FC = ({ props }) => { +export const AuthorOverview: React.FC = (props) => { const { image, name, @@ -65,16 +62,22 @@ export const AuthorOverview: FC = ({ props }) => {
    - {image && (
    = ({ props }) => {

    {city}

    - {quote && (
    @@ -101,16 +103,29 @@ export const AuthorOverview: FC = ({ props }) => { ) }
    -
    - {availablePlays && ( - +
    + + {plays.map((play) => ( + + ({ + fullName: author.name, + slug: author.slug, + }))} + /> + + ))} + +
    )} - {biography && (
    @@ -119,40 +134,57 @@ export const AuthorOverview: FC = ({ props }) => {
                   {availableButton
                   && (
                     
                   )
                   }
                 
    )} - {availablePins && (
    {pinnedLinks .map((item, idx) => (
    - + icon={( + + )} + iconPosition='right' + animation='invert' + > + {item.name} +
    ) )}
    )}
    -
    {availableTags && (
    @@ -162,21 +194,20 @@ export const AuthorOverview: FC = ({ props }) => {
    {achievements.map((item, idx) => (
    - - - - - +
    ) )}
    )} - {availableSocialNetworks && (

    @@ -185,35 +216,44 @@ export const AuthorOverview: FC = ({ props }) => {
    {socialNetworks.map((item, idx) => (
    - + border='bottom-left' + href={item.link} + icon={( + + )} + iconPosition="left" + animation='invert' + className={cx('overviewSocialLinkButton')} + > + {item.name} +
    ) )}

    )} - {email && (

    E-mail для связи

    - + animation='invert' + className={cx('overviewEmaillLink')} + > + {email} +
    )}
    diff --git a/src/components/author-page/plays/index.ts b/src/components/author-page/plays/index.ts deleted file mode 100644 index 62938e507..000000000 --- a/src/components/author-page/plays/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './plays'; diff --git a/src/components/author-page/plays/plays.module.css b/src/components/author-page/plays/plays.module.css deleted file mode 100644 index af32ded03..000000000 --- a/src/components/author-page/plays/plays.module.css +++ /dev/null @@ -1,39 +0,0 @@ -.playsContainer { - position: relative; - padding: 130px 30px; - background-color: var(--beige); - - @media (max-width: $tablet-portrait) { - @mixin hide-scrollbars; - - overflow: scroll; - padding: 10px 0 80px 25px; - scroll-behavior: smooth; - } -} - -.list { - display: flex; - flex-wrap: wrap; - padding: 0; - margin: 0; - list-style: none; - - @media (max-width: $tablet-portrait) { - flex-wrap: nowrap; - margin: 0 24px 0 0; - } -} - -.item { - width: 240px; - margin: 0 30px 0 0; - - &:last-of-type { - margin-right: 0; - } - - @media (max-width: $tablet-portrait) { - width: 244px; - } -} diff --git a/src/components/author-page/plays/plays.tsx b/src/components/author-page/plays/plays.tsx deleted file mode 100644 index afd598e10..000000000 --- a/src/components/author-page/plays/plays.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { FC } from 'react'; -import cn from 'classnames/bind'; - -import { BasicPlayCard } from 'components/ui/basic-play-card'; -import { Play } from 'api-typings'; - -import styles from './plays.module.css'; - -const cx = cn.bind(styles); - -interface IAuthorPlays { - plays: Play[], -} - -export const AuthorPlays: FC = ({ plays }) => { - return ( -
    -
      - {plays.map((item, index) => ( -
    • - -
    • - ))} -
    -
    - ); -}; diff --git a/src/components/authors-layout/authors-layout.module.css b/src/components/authors-layout/authors-layout.module.css new file mode 100644 index 000000000..eb8a8cb89 --- /dev/null +++ b/src/components/authors-layout/authors-layout.module.css @@ -0,0 +1,10 @@ +.root { + display: grid; + grid-template: + "pagination pagination" + "list heading" / 1fr auto; + + @media (max-width: $tablet-portrait) { + display: block; + } +} diff --git a/src/components/authors-layout/authors-layout.tsx b/src/components/authors-layout/authors-layout.tsx new file mode 100644 index 000000000..23377a4bd --- /dev/null +++ b/src/components/authors-layout/authors-layout.tsx @@ -0,0 +1,23 @@ +import classNames from 'classnames/bind'; + +import { AuthorsLayoutHeading } from './heading'; +import { AuthorsLayoutList } from './list'; + +import styles from './authors-layout.module.css'; + +const cx = classNames.bind(styles); + +const Component: React.FC = (props) => { + const { children } = props; + + return ( +
    + {children} +
    + ); +}; + +export const AuthorsLayout = Object.assign(Component, { + Heading: AuthorsLayoutHeading, + List: AuthorsLayoutList, +}); diff --git a/src/components/authors-layout/heading/authors-layout-heading.module.css b/src/components/authors-layout/heading/authors-layout-heading.module.css new file mode 100644 index 000000000..e8dc43855 --- /dev/null +++ b/src/components/authors-layout/heading/authors-layout-heading.module.css @@ -0,0 +1,25 @@ +@value tablet-portrait from "shared/styles/media.module.css"; + +.root { + position: relative; + display: flex; + flex-direction: column; + justify-content: flex-end; + margin-right: 270px; + grid-area: heading; + + @media tablet-portrait { + display: block; + margin: 0 0 16px; + } +} + +.inner { + position: sticky; + bottom: 32px; + align-self: flex-end; + + @media tablet-portrait { + padding: 0 36px; + } +} diff --git a/src/components/authors-layout/heading/authors-layout-heading.tsx b/src/components/authors-layout/heading/authors-layout-heading.tsx new file mode 100644 index 000000000..d4a08f582 --- /dev/null +++ b/src/components/authors-layout/heading/authors-layout-heading.tsx @@ -0,0 +1,17 @@ +import classNames from 'classnames/bind'; + +import styles from './authors-layout-heading.module.css'; + +const cx = classNames.bind(styles); + +export const AuthorsLayoutHeading: React.FC = (props) => { + const { children } = props; + + return ( +
    +
    + {children} +
    +
    + ); +}; diff --git a/src/components/authors-layout/heading/index.ts b/src/components/authors-layout/heading/index.ts new file mode 100644 index 000000000..5cc3e77ec --- /dev/null +++ b/src/components/authors-layout/heading/index.ts @@ -0,0 +1 @@ +export * from './authors-layout-heading'; diff --git a/src/components/authors-layout/list/authors-layout-list.module.css b/src/components/authors-layout/list/authors-layout-list.module.css new file mode 100644 index 000000000..07afa87d9 --- /dev/null +++ b/src/components/authors-layout/list/authors-layout-list.module.css @@ -0,0 +1,16 @@ +.root { + position: relative; + margin-left: 360px; + grid-area: list; + + @media (max-width: $tablet-portrait) { + padding: 0 56px; + margin: 0; + } +} + +.spinner { + width: 64px; + + --delay: 200ms; +} diff --git a/src/components/authors-layout/list/authors-layout-list.tsx b/src/components/authors-layout/list/authors-layout-list.tsx new file mode 100644 index 000000000..bf73af19d --- /dev/null +++ b/src/components/authors-layout/list/authors-layout-list.tsx @@ -0,0 +1,28 @@ +import classNames from 'classnames/bind'; + +import { Spinner } from 'components/spinner'; + +import styles from './authors-layout-list.module.css'; + +const cx = classNames.bind(styles); + +interface AuthorsLayoutListProps { + pending?: boolean +} + +export const AuthorsLayoutList: React.FC = (props) => { + const { + children, + pending = false, + } = props; + + return ( +
    + {pending ? ( + + ) : ( + children + )} +
    + ); +}; diff --git a/src/components/authors-layout/list/index.ts b/src/components/authors-layout/list/index.ts new file mode 100644 index 000000000..c8182c87f --- /dev/null +++ b/src/components/authors-layout/list/index.ts @@ -0,0 +1 @@ +export * from './authors-layout-list'; diff --git a/src/components/banner/banner.module.css b/src/components/banner/banner.module.css deleted file mode 100644 index 91fd4b38b..000000000 --- a/src/components/banner/banner.module.css +++ /dev/null @@ -1,5 +0,0 @@ -.root { - position: relative; - height: 100%; - background-color: var(--green); -} diff --git a/src/components/banner/banner.tsx b/src/components/banner/banner.tsx deleted file mode 100644 index 4bc6d3b12..000000000 --- a/src/components/banner/banner.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import Image from 'next/image'; -import classNames from 'classnames/bind'; - -import type { FC } from 'react'; -import type { Url } from 'shared/types'; - -import styles from './banner.module.css'; - -interface BannerProps { - image: Url - title?: string - className?: string -} - -const cx = classNames.bind(styles); - -export const Banner: FC = (props) => { - const { - image, - title = '', - className - } = props; - - return ( -
    - {title} -
    - ); -}; - diff --git a/src/components/banner/index.ts b/src/components/banner/index.ts deleted file mode 100644 index 5f15d5d4e..000000000 --- a/src/components/banner/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './banner'; diff --git a/src/components/blog-entry-card/blog-entry-card.module.css b/src/components/blog-entry-card/blog-entry-card.module.css new file mode 100644 index 000000000..5afdd47cc --- /dev/null +++ b/src/components/blog-entry-card/blog-entry-card.module.css @@ -0,0 +1,88 @@ +@value tablet-portrait from "shared/styles/media.module.css"; + +.image-holder { + position: relative; + width: 100%; + order: 1; + margin: 0 0 16px; + aspect-ratio: 4 / 3; + + @supports not (aspect-ratio: 1) { + padding-top: 75%; + } +} + +.image { + transition: transform 400ms cubic-bezier(.6, 0, .5, 1); + will-change: transform; +} + +.author { + @mixin textSmall; + + order: 2; + margin: 0 0 16px; + + a& { + position: relative; + z-index: 1; + align-self: flex-start; + color: inherit; + text-decoration: none; + } + + @media tablet-portrait { + margin-left: 28px; + } +} + +.link { + order: 3; + text-decoration: none; + + &::before { + position: absolute; + top: 0; + left: 0; + display: block; + width: 100%; + height: 100%; + content: ""; + pointer-events: none; + } +} + +.title { + @mixin headline; + @mixin headline5; + + margin: 0 0 16px; + overflow-wrap: break-word; + word-break: break-word; + + @media tablet-portrait { + @mixin headline6; + } +} + +.description { + overflow: hidden; + order: 4; + margin: 0 0 0 28px; + hyphens: auto; + word-break: break-all; + + @mixin textSmall; +} + +.root { + position: relative; + display: flex; + flex-direction: column; + + &:hover { + .image { + transform: scale(1.2); + } + } +} diff --git a/src/components/blog-entry-card/blog-entry-card.tsx b/src/components/blog-entry-card/blog-entry-card.tsx new file mode 100644 index 000000000..0b22e8d81 --- /dev/null +++ b/src/components/blog-entry-card/blog-entry-card.tsx @@ -0,0 +1,60 @@ +import classNames from 'classnames/bind'; +import Image from 'next/image'; +import Link from 'next/link'; + +import type { BlogEntryPreview } from 'core/blog'; + +import styles from './blog-entry-card.module.css'; + +const cx = classNames.bind(styles); + +interface BlogEntryCardProps extends Omit { + viewUrl: Url +} + +export const BlogEntryCard: React.VFC = (props) => { + const { + authorFullName, + authorUrl, + title, + description, + image, + viewUrl, + } = props; + + const AuthorNameTag = authorUrl ? 'a' : 'address'; + const authorNameProps = authorUrl ? { href: authorUrl } : {}; + + return ( +
    + + +

    + {title} +

    +
    + + + {authorFullName} + +

    + {description} +

    + {image && ( +
    + +
    + )} +
    + ); +}; diff --git a/src/components/blog-entry-card/index.ts b/src/components/blog-entry-card/index.ts new file mode 100644 index 000000000..967619d31 --- /dev/null +++ b/src/components/blog-entry-card/index.ts @@ -0,0 +1 @@ +export * from './blog-entry-card'; diff --git a/src/components/blog-entry-list/blog-entry-list.module.css b/src/components/blog-entry-list/blog-entry-list.module.css index d2d2bf10e..d344c92c9 100644 --- a/src/components/blog-entry-list/blog-entry-list.module.css +++ b/src/components/blog-entry-list/blog-entry-list.module.css @@ -1,4 +1,4 @@ -@import "./blog-entry-list.vars.module"; +@import url("./blog-entry-list.vars.module"); .root { display: grid; @@ -6,9 +6,12 @@ margin: 0; grid-gap: $gap-tablet-portrait; grid-template-columns: repeat($column-count-tablet-portrait, 1fr); - grid-template-rows: masonry; @media (max-width: $tablet-portrait) { display: block; } } + +.column { + min-width: 0; +} diff --git a/src/components/blog-entry-list/blog-entry-list.tsx b/src/components/blog-entry-list/blog-entry-list.tsx index 3d44af89d..8e0491eae 100644 --- a/src/components/blog-entry-list/blog-entry-list.tsx +++ b/src/components/blog-entry-list/blog-entry-list.tsx @@ -1,22 +1,24 @@ +import classNames from 'classnames/bind'; import { - ReactNode, Children, cloneElement, isValidElement, useLayoutEffect, useState, } from 'react'; -import classNames from 'classnames/bind'; -import { useMediaQuery } from 'shared/hooks/use-media-query'; import breakpoints from 'shared/breakpoints.js'; +import { useMediaQuery } from 'shared/hooks/use-media-query'; + import { BlogEntryListItem } from './item'; +import type { ReactNode } from 'react'; + import styles from './blog-entry-list.module.css'; import blogEntryListVars from './blog-entry-list.vars.module.css'; interface BlogEntryListProps { - children: ReactNode | ReactNode[], + children: ReactNode | ReactNode[] } const cx = classNames.bind(styles); @@ -32,7 +34,9 @@ export const BlogEntryList = (props: BlogEntryListProps) => { const isMobile = useMediaQuery(`(max-width: ${breakpoints['tablet-portrait']})`); useLayoutEffect(() => { - if (isMobile) return; + if (isMobile) { + return; + } const columns: ReactNode[][] = Array.from( { length: columnCount }, @@ -40,7 +44,9 @@ export const BlogEntryList = (props: BlogEntryListProps) => { ); Children.forEach(children, (child, index) => { - if (!isValidElement(child)) return; + if (!isValidElement(child)) { + return; + } const clonedElement = cloneElement(child, { ...child.props, diff --git a/src/components/blog-entry-list/item/blog-entry-list-item.tsx b/src/components/blog-entry-list/item/blog-entry-list-item.tsx index 09e97c440..4925bb833 100644 --- a/src/components/blog-entry-list/item/blog-entry-list-item.tsx +++ b/src/components/blog-entry-list/item/blog-entry-list-item.tsx @@ -1,10 +1,12 @@ -import { forwardRef, ReactNode } from 'react'; import classNames from 'classnames/bind'; +import { forwardRef } from 'react'; + +import type { ReactNode } from 'react'; import styles from './blog-entry-list-item.module.css'; interface BlogEntryListItemProps { - children: ReactNode | ReactNode[], + children: ReactNode | ReactNode[] } const cx = classNames.bind(styles); diff --git a/src/components/blog-layout/blog-layout.module.css b/src/components/blog-layout/blog-layout.module.css index cd1fac305..0e96c62b9 100644 --- a/src/components/blog-layout/blog-layout.module.css +++ b/src/components/blog-layout/blog-layout.module.css @@ -22,11 +22,6 @@ max-width: 150px; } -.spinner { - width: 64px; - margin: 0 auto; -} - .no-result { @mixin text; @mixin textLarge; diff --git a/src/components/blog-layout/blog-layout.tsx b/src/components/blog-layout/blog-layout.tsx index 25b3a6d1a..5bba81a72 100644 --- a/src/components/blog-layout/blog-layout.tsx +++ b/src/components/blog-layout/blog-layout.tsx @@ -1,16 +1,17 @@ -import { ReactNode } from 'react'; import classNames from 'classnames/bind'; -import { BlogLayoutTitle } from './title'; +import { BlogLayoutCallToAction } from './call-to-action'; +import { BlogLayoutDescription } from './description'; import { BlogLayoutFilter } from './filter'; import { BlogLayoutMain } from './main'; -import { BlogLayoutDescription } from './description'; -import { BlogLayoutCallToAction } from './call-to-action'; +import { BlogLayoutTitle } from './title'; + +import type { ReactNode } from 'react'; import styles from './blog-layout.module.css'; interface BlogLayoutProps { - children: ReactNode; + children: ReactNode } const cx = classNames.bind(styles); diff --git a/src/components/blog-layout/call-to-action/blog-layout-call-to-action.tsx b/src/components/blog-layout/call-to-action/blog-layout-call-to-action.tsx index 7b42d040c..c7e84b48f 100644 --- a/src/components/blog-layout/call-to-action/blog-layout-call-to-action.tsx +++ b/src/components/blog-layout/call-to-action/blog-layout-call-to-action.tsx @@ -1,6 +1,7 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './blog-layout-call-to-action.module.css'; const cx = classNames.bind(styles); diff --git a/src/components/blog-layout/description/blog-layout-description.module.css b/src/components/blog-layout/description/blog-layout-description.module.css index d5b2db703..9a57ca496 100644 --- a/src/components/blog-layout/description/blog-layout-description.module.css +++ b/src/components/blog-layout/description/blog-layout-description.module.css @@ -25,8 +25,8 @@ width: 25px; height: 25px; background-color: var(--coal); - content: ''; - mask: url('../../../shared/icons/asterisk.svg') no-repeat 100% 100%; + content: ""; + mask: url("../../../shared/icons/asterisk.svg") no-repeat 100% 100%; mask-size: cover; @media (max-width: $tablet-portrait) { diff --git a/src/components/blog-layout/description/blog-layout-description.tsx b/src/components/blog-layout/description/blog-layout-description.tsx index 3590bc3c6..0fb248224 100644 --- a/src/components/blog-layout/description/blog-layout-description.tsx +++ b/src/components/blog-layout/description/blog-layout-description.tsx @@ -1,6 +1,7 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './blog-layout-description.module.css'; const cx = classNames.bind(styles); diff --git a/src/components/blog-layout/filter/blog-layout-filter.tsx b/src/components/blog-layout/filter/blog-layout-filter.tsx index 3109f52f4..968219687 100644 --- a/src/components/blog-layout/filter/blog-layout-filter.tsx +++ b/src/components/blog-layout/filter/blog-layout-filter.tsx @@ -1,6 +1,7 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './blog-layout-filter.module.css'; const cx = classNames.bind(styles); diff --git a/src/components/blog-layout/main/blog-layout-main.tsx b/src/components/blog-layout/main/blog-layout-main.tsx index 7ff03bfce..63e5a37a5 100644 --- a/src/components/blog-layout/main/blog-layout-main.tsx +++ b/src/components/blog-layout/main/blog-layout-main.tsx @@ -1,6 +1,7 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './blog-layout-main.module.css'; const cx = classNames.bind(styles); diff --git a/src/components/blog-layout/title/blog-layout-title.tsx b/src/components/blog-layout/title/blog-layout-title.tsx index 87fb06cf6..cd168544d 100644 --- a/src/components/blog-layout/title/blog-layout-title.tsx +++ b/src/components/blog-layout/title/blog-layout-title.tsx @@ -1,6 +1,7 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './blog-layout-title.module.css'; const cx = classNames.bind(styles); diff --git a/src/components/breadcrumb/breadcrumb.module.css b/src/components/breadcrumb/breadcrumb.module.css new file mode 100644 index 000000000..78a7190f9 --- /dev/null +++ b/src/components/breadcrumb/breadcrumb.module.css @@ -0,0 +1,7 @@ +.link.link { + padding: 3px 0 3px 19px; + + :first-child { + margin-left: 0; + } +} diff --git a/src/components/breadcrumb/breadcrumb.tsx b/src/components/breadcrumb/breadcrumb.tsx index a843a765e..d616a873a 100644 --- a/src/components/breadcrumb/breadcrumb.tsx +++ b/src/components/breadcrumb/breadcrumb.tsx @@ -4,8 +4,8 @@ import { Button } from 'components/ui/button2'; import { Icon } from 'components/ui/icon'; interface BreadcrumbProps { - text: string, - path: string, + text: string + path: string } export const Breadcrumb = (props: BreadcrumbProps) => { diff --git a/src/components/call-to-email/call-to-email.tsx b/src/components/call-to-email/call-to-email.tsx index aa6f3ebdc..907a15225 100644 --- a/src/components/call-to-email/call-to-email.tsx +++ b/src/components/call-to-email/call-to-email.tsx @@ -1,8 +1,8 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; import { Icon } from 'components/ui/icon'; -import { Email } from 'shared/types'; + +import type { FC } from 'react'; import styles from './call-to-email.module.css'; diff --git a/src/components/constructor-content/constructor-content.tsx b/src/components/constructor-content/constructor-content.tsx index 61f2e30c4..c00f29938 100644 --- a/src/components/constructor-content/constructor-content.tsx +++ b/src/components/constructor-content/constructor-content.tsx @@ -1,29 +1,29 @@ -//@ts-nocheck -import { Fragment } from 'react'; +// @ts-nocheck TODO: import classNames from 'classnames/bind'; +import format from 'date-fns/format'; import Image from 'next/image'; +import { Fragment } from 'react'; -import { PhotoGallery } from 'components/photo-gallery'; -import { ImageSlider } from 'components/ui/image-slider'; -import { BasicPlayCardList } from 'components/ui/basic-play-card-list'; -import { BasicPlayCard } from 'components/ui/basic-play-card'; +import { ConstructorLink } from 'components/constructor-link'; import { EventCard } from 'components/event-card'; -import { PersonCard } from 'components/ui/person-card'; +import { EventList } from 'components/event-list'; +import { HTMLMarkup } from 'components/html-markup'; +import { ImageGallery } from 'components/image-gallery'; import { PersonCardList } from 'components/person-card-list'; +import { PlayCard } from 'components/play-card'; +import { PlayList } from 'components/play-list'; +import { ImageSlider } from 'components/ui/image-slider'; +import { PersonCard } from 'components/ui/person-card'; import { Video } from 'components/video'; import { VideoList } from 'components/video-list'; -import { HTMLMarkup } from 'components/html-markup'; -import { ConstructorLink } from 'components/constructor-link'; -import { format } from 'shared/helpers/format-date'; -import { ConstructorContentSection } from './section'; + import { ConstructorBlockType } from './constructor-content.const'; import { ConstructorContentContextProvider } from './constructor-content.context'; +import { ConstructorContentSection } from './section'; -import type { FC } from 'react'; import type { ConstructorBlock } from './constructor-content.types'; import defaultStyles from './variant/default.module.css'; -import { EventList } from 'components/event-list'; enum Variant { Default = 'default', @@ -39,7 +39,7 @@ const variants = { default: defaultStyles, }; -export const ConstructorContent: FC = (props) => { +export const ConstructorContent: React.FC = (props) => { const { variant = Variant.Default, blocks, @@ -100,8 +100,8 @@ export const ConstructorContent: FC = (props) => { variant="image-gallery" title={content_item.title} > - ({ + ({ url: image, description: title, }))} @@ -113,19 +113,24 @@ export const ConstructorContent: FC = (props) => { variant="plays" title={content_item.title} > - - {content_item.items.map(({ id, name, city, year, authors }) => ( - + + {content_item.items.map(({ id, name, city, year, authors, url_download, url_reading }) => ( + + ({ + fullName: author.name, + slug: author.slug, + }))} + // TODO: непонятно, такое url_download, а что url_download_from. Оставлю пока наугад. + downloadUrl={url_download} + readingUrl={url_reading} + /> + ))} - + )} {content_type === ConstructorBlockType.Events && content_item.items.length === 1 && ( @@ -134,15 +139,18 @@ export const ConstructorContent: FC = (props) => { title={content_item.title} > = (props) => { id, type, date_time, - event_body: { - id: performanceId, - name, - team, - image, - description, - project_title, - }, + performance_id, + title, + team, + image, + description, action_url, action_text, }) => ( = (props) => { )} {content_type === ConstructorBlockType.Videos && ( @@ -225,7 +234,6 @@ export const ConstructorContent: FC = (props) => { {content_type === ConstructorBlockType.Link && ( { diff --git a/src/components/contacts-layout/form/contacts-layout-form.tsx b/src/components/contacts-layout/form/contacts-layout-form.tsx index 19a6f2d0f..82042703b 100644 --- a/src/components/contacts-layout/form/contacts-layout-form.tsx +++ b/src/components/contacts-layout/form/contacts-layout-form.tsx @@ -5,7 +5,7 @@ import styles from './contacts-layout-form.module.css'; const cx = classNames.bind(styles); interface IContactsLayoutFormProps { - children: React.ReactNode; + children: React.ReactNode } const ContactsLayoutForm = (props: IContactsLayoutFormProps): JSX.Element => { diff --git a/src/components/contacts-layout/title/contacts-layout-title.tsx b/src/components/contacts-layout/title/contacts-layout-title.tsx index 92a7a3aab..5600369ac 100644 --- a/src/components/contacts-layout/title/contacts-layout-title.tsx +++ b/src/components/contacts-layout/title/contacts-layout-title.tsx @@ -5,7 +5,7 @@ import styles from './contacts-layout-title.module.css'; const cx = classNames.bind(styles); interface IContactsLayoutTitleProps { - children: React.ReactNode; + children: React.ReactNode } const ContactsLayoutTitle = (props: IContactsLayoutTitleProps): JSX.Element => { diff --git a/src/components/contacts-title/contacts-title.tsx b/src/components/contacts-title/contacts-title.tsx index d6a4d24c3..9cfa1546b 100644 --- a/src/components/contacts-title/contacts-title.tsx +++ b/src/components/contacts-title/contacts-title.tsx @@ -5,7 +5,7 @@ import styles from './contacts-title.module.css'; const cx = classNames.bind(styles); interface IContactsTitleProps { - id: string; + id: string } const ContactsTitle = (props: IContactsTitleProps): JSX.Element => { diff --git a/src/components/credits-list/credits-list.module.css b/src/components/credits-list/credits-list.module.css index 8bc44454b..21680aaec 100644 --- a/src/components/credits-list/credits-list.module.css +++ b/src/components/credits-list/credits-list.module.css @@ -37,7 +37,7 @@ .role { &::after { display: inline; - content: ': '; + content: ": "; } } } diff --git a/src/components/dialog-window/dialog-window.module.css b/src/components/dialog-window/dialog-window.module.css new file mode 100644 index 000000000..574ad5d0a --- /dev/null +++ b/src/components/dialog-window/dialog-window.module.css @@ -0,0 +1,64 @@ +.root { + position: relative; + max-width: 100%; + height: min-content; + box-sizing: border-box; +} + +.close { + position: absolute; + z-index: 1; + border: 0; + cursor: pointer; + font-size: 0; +} + +.plays-filter { + composes: root; + min-height: 100vh; + padding: 102px 24px; + background-color: var(--beige); + + .close { + top: 32px; + right: 24px; + width: 44px; + height: 44px; + background-color: var(--light-green); + } +} + +.feedback { + composes: root; + width: 780px; + padding: 68px 56px; + background-color: var(--beige); + + .close { + display: none; + } +} + +.lightbox { + composes: root; + width: 780px; + + .close { + top: 16px; + right: 95px; + width: 40px; + height: 40px; + border-radius: 20px; + background-color: var(--beige); + + &:hover { + background-color: var(--coal); + color: var(--white); + } + + @media (max-width: $tablet-portrait) { + width: 25px; + height: 25px; + } + } +} diff --git a/src/components/dialog-window/dialog-window.tsx b/src/components/dialog-window/dialog-window.tsx new file mode 100644 index 000000000..718caf2d0 --- /dev/null +++ b/src/components/dialog-window/dialog-window.tsx @@ -0,0 +1,41 @@ +import classNames from 'classnames/bind'; + +import { Icon } from 'components/ui/icon'; + +import styles from './dialog-window.module.css'; + +const cx = classNames.bind(styles); + +interface DialogWindowProps { + variant: 'lightbox' | 'plays-filter' | 'feedback' + onClose: () => void +} + +export const DialogWindow: React.FC = (props) => { + const { + variant, + children, + onClose + } = props; + + return ( +
    + +
    + {children} +
    +
    + ); +}; + diff --git a/src/components/dialog-window/index.ts b/src/components/dialog-window/index.ts new file mode 100644 index 000000000..afe724c75 --- /dev/null +++ b/src/components/dialog-window/index.ts @@ -0,0 +1 @@ +export * from './dialog-window'; diff --git a/src/components/donation-link/donation-link.module.css b/src/components/donation-link/donation-link.module.css index e48f2a8bb..cd0cb3a0d 100644 --- a/src/components/donation-link/donation-link.module.css +++ b/src/components/donation-link/donation-link.module.css @@ -16,7 +16,7 @@ height: 1.6em; box-sizing: border-box; border: 1px solid currentColor; - content: ''; + content: ""; visibility: hidden; } diff --git a/src/components/donation-link/donation-link.tsx b/src/components/donation-link/donation-link.tsx index f77f5bc6f..996ada65a 100644 --- a/src/components/donation-link/donation-link.tsx +++ b/src/components/donation-link/donation-link.tsx @@ -1,8 +1,10 @@ -import Link, { LinkProps } from 'next/link'; import cn from 'classnames/bind'; +import Link from 'next/link'; import { Icon } from 'components/ui/icon'; +import type { LinkProps } from 'next/link'; + import styles from './donation-link.module.css'; const cx = cn.bind(styles); diff --git a/src/components/donation-page/donationPageTitle/donationPageTitle.stories.tsx b/src/components/donation-page/donationPageTitle/donationPageTitle.stories.tsx deleted file mode 100644 index f776d838c..000000000 --- a/src/components/donation-page/donationPageTitle/donationPageTitle.stories.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; -import { ComponentStory, ComponentMeta } from '@storybook/react'; - -import { DonationPageTitle } from './donationPageTitle'; - -import mockData from '../../../pages/donation/assets/mock-donation-data.json'; - -export default { - title: 'Components/Donation-DonationPageTitle', - component: DonationPageTitle, -} as ComponentMeta; - -const Template: ComponentStory = (args) => ; - -export const General = Template.bind({}); -General.args = mockData.donationPageTitle; - -General.parameters = { - layout: 'fullscreen' -}; diff --git a/src/components/donation-page/donationPageTitle/donationPageTitle.tsx b/src/components/donation-page/donationPageTitle/donationPageTitle.tsx index 4dfd97bc7..89107e118 100644 --- a/src/components/donation-page/donationPageTitle/donationPageTitle.tsx +++ b/src/components/donation-page/donationPageTitle/donationPageTitle.tsx @@ -1,12 +1,14 @@ import cn from 'classnames/bind'; + import type { VFC } from 'react'; + import styles from './donationPageTitle.module.css'; const cx = cn.bind(styles); interface IDonationPageTitleProps { - header: string; - text: string; + header: string + text: string } export const DonationPageTitle: VFC = ({ header, text }) => { diff --git a/src/components/donation-page/opportunities/opportunities.tsx b/src/components/donation-page/opportunities/opportunities.tsx index 4f73293e9..519669bb2 100644 --- a/src/components/donation-page/opportunities/opportunities.tsx +++ b/src/components/donation-page/opportunities/opportunities.tsx @@ -1,23 +1,24 @@ -import { FC } from 'react'; import cn from 'classnames/bind'; -import { Url } from '../../../shared/types/common'; import { Opportunity } from './opportunity/opportunity'; +import type { FC } from 'react'; + import styles from './opportunities.module.css'; const cx = cn.bind(styles); interface IOpportunityProps { data: { - title: string; - picture: Url; - kickies: string[]; - }[]; + title: string + picture: Url + kickies: string[] + }[] } export const Opportunities: FC = (props) => { const { data } = props; + return (
    {data.map((e,i) => { diff --git a/src/components/donation-page/opportunities/opportunity/opportunity.module.css b/src/components/donation-page/opportunities/opportunity/opportunity.module.css index 81bf780bd..156797b9f 100644 --- a/src/components/donation-page/opportunities/opportunity/opportunity.module.css +++ b/src/components/donation-page/opportunities/opportunity/opportunity.module.css @@ -1,9 +1,9 @@ .opportunityWrapper { padding: 0; - margin: 177px 0 0 0; + margin: 177px 0 0; @media (max-width: $tablet-portrait) { - margin: 58px 0 0 0; + margin: 58px 0 0; } } @@ -79,13 +79,13 @@ .kickies { display: grid; padding: 0; - margin: 73px 32px 0 32px; + margin: 73px 32px 0; gap: 119px 0; grid-template-columns: repeat(5, 1fr); list-style: none; @media (max-width: $tablet-portrait) { - margin: 24px 0 0 0; + margin: 24px 0 0; gap: 24px 0; grid-template-columns: 1fr; } diff --git a/src/components/donation-page/opportunities/opportunity/opportunity.stories.tsx b/src/components/donation-page/opportunities/opportunity/opportunity.stories.tsx deleted file mode 100644 index 2b8fe4dfc..000000000 --- a/src/components/donation-page/opportunities/opportunity/opportunity.stories.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; -import { ComponentStory, ComponentMeta } from '@storybook/react'; - -import { Opportunity } from './opportunity'; - -import mockData from '../../../../pages/donation/assets/mock-donation-data.json'; - -export default { - title: 'Components/Donation-Opportunity', - component: Opportunity, -} as ComponentMeta; - -const Template: ComponentStory = (args) => ; - -export const General = Template.bind({}); -General.args = mockData.opportunities[0]; diff --git a/src/components/donation-page/opportunities/opportunity/opportunity.tsx b/src/components/donation-page/opportunities/opportunity/opportunity.tsx index 30f0ea1e9..e08987230 100644 --- a/src/components/donation-page/opportunities/opportunity/opportunity.tsx +++ b/src/components/donation-page/opportunities/opportunity/opportunity.tsx @@ -1,17 +1,16 @@ -import { FC } from 'react'; import cn from 'classnames/bind'; import Image from 'next/image'; -import { Url } from '../../../../shared/types/common'; +import type { FC } from 'react'; import styles from './opportunity.module.css'; const cx = cn.bind(styles); interface IOpportunityProps { - title: string; - picture: Url; - kickies: string[]; + title: string + picture: Url + kickies: string[] } export const Opportunity: FC = (props) => { diff --git a/src/components/donation-page/report/report.module.css b/src/components/donation-page/report/report.module.css index f7185090d..8bf19f3ec 100644 --- a/src/components/donation-page/report/report.module.css +++ b/src/components/donation-page/report/report.module.css @@ -3,10 +3,10 @@ flex-flow: row nowrap; align-items: flex-end; justify-content: center; - padding: 213px 0 204px 0; + padding: 213px 0 204px; @media (max-width: $tablet-portrait) { - padding: 150px 0 100px 0; + padding: 150px 0 100px; } } @@ -23,11 +23,21 @@ } } -.reportEmail { - @mixin headline; - @mixin headline5; +.reportEmail.reportEmail { + padding: 0; - @media (max-width: $tablet-portrait) { - @mixin headline6; + :first-child { + @mixin headline; + @mixin headline5; + + @media (max-width: $tablet-portrait) { + @mixin headline6; + } + } + + &:hover { + :first-child { + color: var(--white); + } } } diff --git a/src/components/donation-page/report/report.stories.tsx b/src/components/donation-page/report/report.stories.tsx deleted file mode 100644 index fb2786a61..000000000 --- a/src/components/donation-page/report/report.stories.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; -import { ComponentStory, ComponentMeta } from '@storybook/react'; - -import { Report } from './report'; - -import mockData from '../../../pages/donation/assets/mock-donation-data.json'; - -export default { - title: 'Components/Donation-Report', - component: Report, -} as ComponentMeta; - -const Template: ComponentStory = (args) => ; - -export const General = Template.bind({}); -General.args = mockData.report; diff --git a/src/components/donation-page/report/report.tsx b/src/components/donation-page/report/report.tsx index a7c37b48f..a6a375376 100644 --- a/src/components/donation-page/report/report.tsx +++ b/src/components/donation-page/report/report.tsx @@ -1,15 +1,16 @@ -import { FC } from 'react'; import cn from 'classnames/bind'; -import { InfoLink } from 'components/ui/info-link'; +import { Button } from 'components/ui/button2'; + +import type { FC } from 'react'; import styles from './report.module.css'; const cx = cn.bind(styles); interface IReportProps { - text: string; - email?: string; + text: string + email?: string } export const Report: FC = (props) => { @@ -22,13 +23,15 @@ export const Report: FC = (props) => {

    {text} - + className={cx('reportEmail')} + animation='invert' + > + {email} +

    ); diff --git a/src/components/event-card/event-card.module.css b/src/components/event-card/event-card.module.css index 969ee075d..612d8e426 100644 --- a/src/components/event-card/event-card.module.css +++ b/src/components/event-card/event-card.module.css @@ -27,6 +27,7 @@ } .summary { + min-width: 0; grid-area: summary; } @@ -68,8 +69,7 @@ @mixin text; @mixin textSmall; - margin-bottom: 20px; - margin-left: 30px; + margin: 0 0 20px 28px; @media (max-width: $tablet-portrait) { margin-bottom: 8px; @@ -81,31 +81,32 @@ @mixin text; @mixin textSmall; - margin-bottom: 16px; - - p { - margin: 0; - } + margin: 0 0 0 28px; } -.action { - &:not(:last-child) { - margin-bottom: 16px; - - @media (max-width: $tablet-portrait) { - margin-right: 26px; - margin-bottom: 0; - } - } +.type { + margin: 20px 0 0; } .actions { display: flex; flex-direction: column; align-items: flex-start; + margin: 16px 0 0; grid-area: actions; @media (max-width: $tablet-portrait) { flex-direction: row; } } + +.action { + &:not(:last-child) { + margin-bottom: 16px; + + @media (max-width: $tablet-portrait) { + margin-right: 26px; + margin-bottom: 0; + } + } +} diff --git a/src/components/event-card/event-card.tsx b/src/components/event-card/event-card.tsx index 22264c18c..5cbe9d44e 100644 --- a/src/components/event-card/event-card.tsx +++ b/src/components/event-card/event-card.tsx @@ -7,7 +7,6 @@ import { CreditsList } from 'components/credits-list'; import { Button } from 'components/ui/button2'; import { Icon } from 'components/ui/icon'; -import type { Url } from 'shared/types'; import type { CreditsRole } from 'components/credits-list'; import styles from './event-card.module.css'; @@ -18,12 +17,13 @@ interface EventCardProps { date: string time: string title: string + type: string team: CreditsRole[] description?: string - projectTitle?: string - performanceUrl?: string - actionUrl: Url - actionText: string + aboutText?: string + aboutUrl?: string + actionUrl: Url | null + actionText: string | null } const cx = classNames.bind(styles); @@ -34,10 +34,11 @@ export const EventCard = forwardRef((props, ref) date, time, title, + type, team, description, - projectTitle, - performanceUrl, + aboutUrl, + aboutText, actionUrl, actionText, className @@ -77,24 +78,18 @@ export const EventCard = forwardRef((props, ref) roles={team} /> {description && ( -
    -

    - {description} -

    - {projectTitle && ( -

    - читка проекта - {' '} - {projectTitle} -

    - )} -
    +

    + {description} +

    )} +

    + {type} +

    - {performanceUrl && ( + {aboutUrl && aboutText && ( )} - + {actionUrl && actionText && ( + + )}
    ); diff --git a/src/components/event-list/event-list.module.css b/src/components/event-list/event-list.module.css index 13ab78287..dded57f54 100644 --- a/src/components/event-list/event-list.module.css +++ b/src/components/event-list/event-list.module.css @@ -12,6 +12,7 @@ .item { display: block; + box-sizing: border-box; } .compact { diff --git a/src/components/feed-list/feed-list-item.tsx b/src/components/feed-list/feed-list-item.tsx new file mode 100644 index 000000000..0a66f4ba5 --- /dev/null +++ b/src/components/feed-list/feed-list-item.tsx @@ -0,0 +1,15 @@ +import classNames from 'classnames/bind'; + +import styles from './feed-list.module.css'; + +const cx = classNames.bind(styles); + +export const FeedListItem: React.FC = (props) => { + const { children } = props; + + return ( +
  • + {children} +
  • + ); +}; diff --git a/src/components/feed-list/feed-list.module.css b/src/components/feed-list/feed-list.module.css index c201a1dbe..daa49f74a 100644 --- a/src/components/feed-list/feed-list.module.css +++ b/src/components/feed-list/feed-list.module.css @@ -1,4 +1,6 @@ -.root { +@value tablet-portrait from "shared/styles/media.module.css"; + +.common { padding: 0; margin: 0; @@ -11,3 +13,39 @@ overflow-y: auto; } } + +.item { + display: block; + + @media (max-width: $tablet-portrait) { + position: relative; + min-width: 302px; + border-top: 0; + + &:not(:last-child) { + margin-right: 32px; + } + } +} + +.news { + composes: common; + + .item { + border-top: 1px solid var(--coal); + } +} + +.blog { + composes: common; + + .item { + &:not(:first-child) { + margin-top: 72px; + + @media tablet-portrait { + margin-top: 0; + } + } + } +} diff --git a/src/components/feed-list/feed-list.tsx b/src/components/feed-list/feed-list.tsx index 28daac52a..387b7403d 100644 --- a/src/components/feed-list/feed-list.tsx +++ b/src/components/feed-list/feed-list.tsx @@ -1,30 +1,24 @@ -import { ReactNode } from 'react'; import classNames from 'classnames/bind'; -import { FeedListItem } from './item'; - import styles from './feed-list.module.css'; interface FeedListProps { - children: ReactNode | ReactNode[] + variant: 'blog' | 'news' className?: string } const cx = classNames.bind(styles); -const Component = (props: FeedListProps) => { +export const FeedList: React.FC = (props) => { const { - children, + variant, className, + children, } = props; return ( -
      +
        {children}
      ); }; - -export const FeedList = Object.assign(Component, { - Item: FeedListItem, -}); diff --git a/src/components/feed-list/index.ts b/src/components/feed-list/index.ts index c0556aecc..7eef886b9 100644 --- a/src/components/feed-list/index.ts +++ b/src/components/feed-list/index.ts @@ -1 +1,6 @@ -export * from './feed-list'; +import { FeedList as Component } from './feed-list'; +import { FeedListItem } from './feed-list-item'; + +export const FeedList = Object.assign(Component, { + Item: FeedListItem, +}); diff --git a/src/components/feed-list/item/feed-list-item.module.css b/src/components/feed-list/item/feed-list-item.module.css deleted file mode 100644 index e186a6949..000000000 --- a/src/components/feed-list/item/feed-list-item.module.css +++ /dev/null @@ -1,14 +0,0 @@ -.root { - display: block; - border-top: 1px solid var(--coal); - - @media (max-width: $tablet-portrait) { - position: relative; - min-width: 302px; - border-top: 0; - - &:not(:last-child) { - margin-right: 32px; - } - } -} diff --git a/src/components/feed-list/item/feed-list-item.tsx b/src/components/feed-list/item/feed-list-item.tsx deleted file mode 100644 index ce353d429..000000000 --- a/src/components/feed-list/item/feed-list-item.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import classNames from 'classnames/bind'; - -import styles from './feed-list-item.module.css'; - -import type { FC } from 'react'; - -const cx = classNames.bind(styles); - -export const FeedListItem: FC = (props) => { - const { children } = props; - - return ( -
    • - {children} -
    • - ); -}; diff --git a/src/components/feed-list/item/index.ts b/src/components/feed-list/item/index.ts deleted file mode 100644 index 3f9f70b35..000000000 --- a/src/components/feed-list/item/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './feed-list-item'; diff --git a/src/components/feedback-card/feedback-card.module.css b/src/components/feedback-card/feedback-card.module.css new file mode 100644 index 000000000..25f19ce16 --- /dev/null +++ b/src/components/feedback-card/feedback-card.module.css @@ -0,0 +1,50 @@ +.root { + position: relative; +} + +.author { + display: flex; + min-height: 76px; + flex-direction: column; + align-items: center; + justify-content: center; + margin-bottom: 32px; +} + +.photo { + position: relative; + overflow: hidden; + width: 76px; + height: 76px; + border-radius: 50%; + margin: 0 0 16px; +} + +.tldr, +.text { + @mixin text; + @mixin textLarge; +} + +.tldr + .text { + margin-top: 32px; +} + +.control { + position: absolute; + top: 68px; +} + +.forward { + composes: control; + right: 65px; +} + +.backward { + composes: control; + left: 65px; +} + +.pagination { + margin-top: 48px; +} diff --git a/src/components/feedback-card/feedback-card.tsx b/src/components/feedback-card/feedback-card.tsx new file mode 100644 index 000000000..6f7c5f538 --- /dev/null +++ b/src/components/feedback-card/feedback-card.tsx @@ -0,0 +1,74 @@ +import classNames from 'classnames/bind'; +import Image from 'next/image'; + +import { ArrowButton } from 'components/arrow-button'; + +import styles from './feedback-card.module.css'; + +const cx = classNames.bind(styles); + +interface FeedbackProps { + author: string + photoUrl?: Url + tldr?: string + text: string + pagination: React.ReactNode + onBackward: () => void + onForward: () => void +} + +export const FeedbackCard: React.VFC = (props) => { + const { + author, + photoUrl, + tldr, + text, + pagination, + onBackward, + onForward + } = props; + + return ( +
      +
      + {photoUrl && ( +
      + +
      + )} + {author} +
      +

      + {tldr} +

      +

      + {text} +

      +
      +
      + +
      +
      + +
      +
      +
      + {pagination} +
      +
      + ); +}; diff --git a/src/components/feedback-card/index.ts b/src/components/feedback-card/index.ts new file mode 100644 index 000000000..ea075dace --- /dev/null +++ b/src/components/feedback-card/index.ts @@ -0,0 +1 @@ +export * from './feedback-card'; diff --git a/src/components/feedback-carousel/feedback-carousel-item.tsx b/src/components/feedback-carousel/feedback-carousel-item.tsx new file mode 100644 index 000000000..a62e9fd2c --- /dev/null +++ b/src/components/feedback-carousel/feedback-carousel-item.tsx @@ -0,0 +1,10 @@ +export const FeedbackCarouselItem: React.FC = (props) => { + const { children } = props; + + return ( +
      + {children} +
      + ); +}; + diff --git a/src/components/feedback-carousel/feedback-carousel.tsx b/src/components/feedback-carousel/feedback-carousel.tsx new file mode 100644 index 000000000..bc659771e --- /dev/null +++ b/src/components/feedback-carousel/feedback-carousel.tsx @@ -0,0 +1,84 @@ +import { useKeenSlider } from 'keen-slider/react'; +import { useState } from 'react'; + +type ChildrenProps = { + currentItemIndex: number +} & ({ + loaded: true + handleCurrentItemChange: (index: number) => void + handleForward: () => void + handleBackward: () => void +} | { + loaded: false + handleCurrentItemChange?: never + handleForward?: never + handleBackward?: never +}) + +interface FeedbackCarouselProps { + className?: string + initialItemIndex?: number + children: (childrenProps: ChildrenProps) => void +} + +export const FeedbackCarousel = (props: FeedbackCarouselProps) => { + const { + className = '', + initialItemIndex = 0, + children, + } = props; + + const [currentSlideIndex, setCurrentSlideIndex] = useState(0); + const [loaded, setLoaded] = useState(false); + const [sliderRef, instanceRef] = useKeenSlider({ + loop: true, + slides: { + spacing: 15, + }, + initial: initialItemIndex, + created() { + setLoaded(true); + }, + slideChanged(s) { + setCurrentSlideIndex(s.track.details.rel); + }, + }); + + const handleKeyDown = (event: React.KeyboardEvent) => { + if (event.key === 'ArrowLeft') { + instanceRef.current?.prev(); + + return; + } + + if (event.key === 'ArrowRight') { + instanceRef.current?.next(); + + return; + } + }; + + return ( +
      +
      + {children({ + ...loaded && !!instanceRef.current ? { + loaded: true, + handleCurrentItemChange: instanceRef.current?.moveToIdx, + handleForward: instanceRef.current?.next, + handleBackward: instanceRef.current?.prev, + } : { + loaded: false, + }, + currentItemIndex: currentSlideIndex, + })} +
      +
      + ); +}; diff --git a/src/components/feedback-carousel/index.ts b/src/components/feedback-carousel/index.ts new file mode 100644 index 000000000..fce0007e1 --- /dev/null +++ b/src/components/feedback-carousel/index.ts @@ -0,0 +1,6 @@ +import { FeedbackCarousel as Component } from './feedback-carousel'; +import { FeedbackCarouselItem } from './feedback-carousel-item'; + +export const FeedbackCarousel = Object.assign(Component, { + Item: FeedbackCarouselItem, +}); diff --git a/src/components/festival-date/festival-date.module.css b/src/components/festival-date/festival-date.module.css new file mode 100644 index 000000000..c9f4fecbf --- /dev/null +++ b/src/components/festival-date/festival-date.module.css @@ -0,0 +1,24 @@ +@value tablet-portrait from "shared/styles/media.module.css"; + +.root { + display: inline-block; + + @media tablet-portrait { + display: inline-flex; + align-items: center; + } +} + +.day { + @mixin headline; + @mixin headline1; + + @media tablet-portrait { + margin-right: 8px; + } +} + +.month { + @mixin text; + @mixin textMedium; +} diff --git a/src/components/festival-date/festival-date.tsx b/src/components/festival-date/festival-date.tsx new file mode 100644 index 000000000..6e2b16808 --- /dev/null +++ b/src/components/festival-date/festival-date.tsx @@ -0,0 +1,31 @@ +import classNames from 'classnames/bind'; + +import styles from './festival-date.module.css'; + +interface FestivalDateProps { + day: string + month: string + dateTime?: DateTimeIsoString +} + +const cx = classNames.bind(styles); + +export const FestivalDate: React.VFC = (props) => { + const { + day, + month, + dateTime, + } = props; + + return ( + + ); +}; diff --git a/src/components/afisha-page/festival-date/index.ts b/src/components/festival-date/index.ts similarity index 100% rename from src/components/afisha-page/festival-date/index.ts rename to src/components/festival-date/index.ts diff --git a/src/components/festival-event-card/festival-event-card.module.css b/src/components/festival-event-card/festival-event-card.module.css index 17ebd6695..7c68edf3a 100644 --- a/src/components/festival-event-card/festival-event-card.module.css +++ b/src/components/festival-event-card/festival-event-card.module.css @@ -1,3 +1,7 @@ +/* TODO: переписать с desktop-first подходом */ + +@value tablet-portrait from "shared/styles/media.module.css"; + .root { display: grid; padding-bottom: 48px; @@ -14,7 +18,8 @@ gap: 16px 32px; grid-template: "image time-location title . ." - "image time-location description credits actions" 1fr / minmax(0, 147px) minmax(0, 12.5%) minmax(0, 27.5%) minmax(0, 30%) minmax(0, 17.5%); + "image time-location description credits actions" 1fr + / minmax(0, 147px) minmax(0, 12.5%) minmax(0, 27.5%) minmax(0, 30%) minmax(0, 17.5%); } } @@ -66,14 +71,14 @@ .time { @mixin headline; - @mixin headline7; + @mixin headline6; - margin-top: 19px; + margin: 16px 0 0; - @media (min-width: $tablet-portrait) { - @mixin headline6; + @media tablet-portrait { + @mixin headline7; - margin-top: 15px; + margin-top: 18px; } } @@ -81,8 +86,10 @@ @mixin text; @mixin textSmall; - @media (min-width: $tablet-portrait) { - margin: 16px 0 0; + margin: 16px 0 0; + + @media tablet-portrait { + margin: 0; } } @@ -110,6 +117,10 @@ grid-area: actions; } +.button { + padding: 0 2px 2px 0; +} + .card:not(:first-of-type) { border-top: 1px solid var(--coal); diff --git a/src/components/festival-event-card/festival-event-card.tsx b/src/components/festival-event-card/festival-event-card.tsx index 8d18a688b..527ca3a88 100644 --- a/src/components/festival-event-card/festival-event-card.tsx +++ b/src/components/festival-event-card/festival-event-card.tsx @@ -1,11 +1,9 @@ import classNames from 'classnames/bind'; +import { CreditsList } from 'components/credits-list'; import { Button } from 'components/ui/button2'; import { Icon } from 'components/ui/icon'; -import { CreditsList } from 'components/credits-list'; -import type { VFC } from 'react'; -import type { Url } from 'shared/types'; import type { CreditsRole } from 'components/credits-list'; import styles from './festival-event-card.module.css'; @@ -13,19 +11,21 @@ import styles from './festival-event-card.module.css'; export interface FestivalEventCardProps { image?: Url time: string + location?: string | null title: string - description: string + description?: string credits: CreditsRole[] - actionUrl?: Url + actionUrl?: Url | null className?: string } const cx = classNames.bind(styles); -export const FestivalEventCard: VFC = (props) => { +export const FestivalEventCard: React.VFC = (props) => { const { image, time, + location, title, description, credits, @@ -56,10 +56,18 @@ export const FestivalEventCard: VFC = (props) => {
      {time}
      +
      + Место +
      +
      + {location} +
      -

      - {description} -

      + {description && ( +

      + {description} +

      + )} = (props) => { /> )} href={actionUrl} + className={cx('button')} target="_blank" + upperCase > Регистрация diff --git a/src/components/festival-event-tabs/festival-event-tabs-panel.tsx b/src/components/festival-event-tabs/festival-event-tabs-panel.tsx new file mode 100644 index 000000000..163dfd7a8 --- /dev/null +++ b/src/components/festival-event-tabs/festival-event-tabs-panel.tsx @@ -0,0 +1,44 @@ +import classNames from 'classnames/bind'; + +import styles from './festival-event-tabs.module.css'; + +export interface FestivalEventTabsPanelProps { + title: React.ReactNode + registrationOpen?: boolean + registrationOpeningDate: string + active?: boolean +} + +const cx = classNames.bind(styles); + +export const FestivalEventTabsPanel: React.FC = (props) => { + const { + active, + title, + registrationOpen = false, + registrationOpeningDate, + children, + } = props; + + return ( +
      +
      +

      + {title} +

      + {registrationOpen ? ( +

      + открыта регистрация +

      + ) : ( +

      + {`Регистрация откроется ${registrationOpeningDate}`} +

      + )} +
      +
      + {children} +
      +
      + ); +}; diff --git a/src/components/festival-event-tabs/festival-event-tabs.module.css b/src/components/festival-event-tabs/festival-event-tabs.module.css new file mode 100644 index 000000000..c056ade7d --- /dev/null +++ b/src/components/festival-event-tabs/festival-event-tabs.module.css @@ -0,0 +1,80 @@ +@value tablet-portrait from "shared/styles/media.module.css"; + +$control-size: 48px; + +.panel { + &:not(:first-child) { + margin-bottom: 140px; + + @media tablet-portrait { + margin-bottom: 0; + } + } + + @media tablet-portrait { + display: none; + } +} + +.panel-active { + composes: panel; + + @media tablet-portrait { + display: block; + } +} + +.panel-header { + display: flex; + align-items: flex-end; + justify-content: space-between; + padding-right: 118px; + border-bottom: 1px solid var(--coal); + + @media tablet-portrait { + flex-direction: column; + align-items: center; + padding-right: 0; + text-align: center; + } +} + +.panel-title { + padding: 0 0 8px; + margin: 0; +} + +.panel-status-open { + padding: 4px 25px; + margin: 0; + background-color: var(--coal); + color: var(--beige); +} + +.panel-status-close { + max-width: 200px; + margin: 0 0 0 20px; + + @media tablet-portrait { + margin: 0; + } +} + +.panel-inner { + padding: 0 118px 0 58px; + + @media tablet-portrait { + padding: 0 24px; + } +} + +.controls { + display: none; + + @media tablet-portrait { + display: flex; + justify-content: space-between; + padding: 0 24px; + margin-bottom: -$control-size; + } +} diff --git a/src/components/festival-event-tabs/festival-event-tabs.tsx b/src/components/festival-event-tabs/festival-event-tabs.tsx new file mode 100644 index 000000000..6bbd5df2e --- /dev/null +++ b/src/components/festival-event-tabs/festival-event-tabs.tsx @@ -0,0 +1,58 @@ +import classNames from 'classnames/bind'; +import React, { cloneElement } from 'react'; + +import { ArrowButton } from 'components/arrow-button'; + +import type { FestivalEventTabsPanelProps } from './festival-event-tabs-panel'; + +import styles from './festival-event-tabs.module.css'; + +interface FestivalEventTabsProps { + children: React.ReactElement[] + selectedTabIndex: number + onTabChange: (tabIndex: number, totalTabCount: number) => void +} + +const cx = classNames.bind(styles); + +export const FestivalEventTabs: React.FC = (props) => { + const { + selectedTabIndex, + onTabChange, + children, + } = props; + + const tabs = React.Children.toArray(children) as FestivalEventTabsProps['children']; + + const goToNext = () => { + onTabChange(selectedTabIndex + 1, tabs.length); + }; + + const goToPrevious = () => { + onTabChange(selectedTabIndex -1, tabs.length); + }; + + return ( +
      +
      + + +
      + {tabs.map((tab, currentTabIndex) => ( + cloneElement(tab, { active: currentTabIndex === selectedTabIndex }) + ))} +
      + ); +}; diff --git a/src/components/festival-event-tabs/index.ts b/src/components/festival-event-tabs/index.ts new file mode 100644 index 000000000..e80cbd812 --- /dev/null +++ b/src/components/festival-event-tabs/index.ts @@ -0,0 +1,6 @@ +import { FestivalEventTabs as Component } from './festival-event-tabs'; +import { FestivalEventTabsPanel } from './festival-event-tabs-panel'; + +export const FestivalEventTabs = Object.assign(Component, { + Panel: FestivalEventTabsPanel, +}); diff --git a/src/components/festival-schedule/festival-schedule.tsx b/src/components/festival-schedule/festival-schedule.tsx new file mode 100644 index 000000000..e76085e5d --- /dev/null +++ b/src/components/festival-schedule/festival-schedule.tsx @@ -0,0 +1,111 @@ +import { format } from 'date-fns'; +import { useState, useCallback, useMemo } from 'react'; + +import { FestivalDate } from 'components/festival-date'; +import { FestivalEventCard } from 'components/festival-event-card'; +import { FestivalEventTabs } from 'components/festival-event-tabs'; +import { PaginationSentinel } from 'components/pagination-sentinel'; +import { withSWRFallback } from 'hocs/with-swr-fallback'; +import { useFestivalEvents } from 'services/api/schedule-adapter'; + +import type { FestivalEvent } from 'core/schedule'; + +interface FestivalScheduleProps { + fallback: object +} + +const REMAINING_TAB_COUNT_BEFORE_LOAD_EVENTS = 2; + +export const FestivalSchedule: React.VFC = withSWRFallback(() => { + const [selectedTabIndex, setSelectedTabIndex] = useState(0); + const { data, isLoading, setSize } = useFestivalEvents(); + + const handleLoadMore = useCallback(() => { + setSize((size) => size + 1); + }, []); + + const handleTabChange = (tabIndex: number, totalTabCount: number) => { + if (totalTabCount - tabIndex < REMAINING_TAB_COUNT_BEFORE_LOAD_EVENTS) { + handleLoadMore(); + } + + setSelectedTabIndex(tabIndex); + }; + + const groupedEvents = useMemo(() => { + if (!data) { + return []; + } + + return data.reduce((groups, page) => { + page.results.forEach((event) => { + const [date] = event.date.split('T'); + + if (!groups[date]) { + groups[date] = { + registrationOpen: !!event.registrationUrl, + registrationOpeningDate: event.registrationOpeningDate, + events: [], + }; + } else if (event.registrationUrl && !groups[date].registrationOpen) { + groups[date].registrationOpen = true; + } else if (event.registrationOpeningDate < groups[date].registrationOpeningDate) { + groups[date].registrationOpeningDate = event.registrationOpeningDate; + } + + groups[date].events.push(event); + }); + + return groups; + }, {} as Record); + }, [data]); + + return ( + <> + + {Object.entries(groupedEvents).map(([date, { events, registrationOpen, registrationOpeningDate }]) => { + const [day, month] = format(new Date(date), 'd MMMM').split(' '); + + return ( + + )} + registrationOpen={registrationOpen} + registrationOpeningDate={format(new Date(registrationOpeningDate), 'd MMMM в H:mm')} + > + {events.map((event) => ( + + ))} + + ); + })} + + + + ); +}); diff --git a/src/components/festival-schedule/index.ts b/src/components/festival-schedule/index.ts new file mode 100644 index 000000000..a8fcc4df4 --- /dev/null +++ b/src/components/festival-schedule/index.ts @@ -0,0 +1 @@ +export * from './festival-schedule'; diff --git a/src/components/filter/field/filter-field.module.css b/src/components/filter/field/filter-field.module.css deleted file mode 100644 index 922449dd2..000000000 --- a/src/components/filter/field/filter-field.module.css +++ /dev/null @@ -1,43 +0,0 @@ -.regular { - flex: 1; - - &:not(:last-child) { - margin-right: 30px; - } -} - -.caption { - @mixin text; - - display: block; - margin-bottom: 16px; - - @media (max-width: $tablet-portrait) { - max-width: 220px; - margin-right: 16px; - margin-bottom: 0; - font-size: 20px; - line-height: 24px; - } -} - -.label { - @media (max-width: $tablet-portrait) { - display: flex; - justify-content: space-between; - } -} - -.hidden-caption { - composes: regular; - - .caption { - @mixin visually-hidden; - } - - .control { - @media (max-width: $tablet-portrait) { - flex-grow: 1; - } - } -} diff --git a/src/components/filter/field/filter-field.tsx b/src/components/filter/field/filter-field.tsx deleted file mode 100644 index 26caceddd..000000000 --- a/src/components/filter/field/filter-field.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { ReactNode } from 'react'; -import classNames from 'classnames/bind'; - -import styles from './filter-field.module.css'; - -interface FilterFieldProps { - caption: string - children: ReactNode - hiddenCaption?: boolean - className?: string -} - -const cx = classNames.bind(styles); - -export const FilterField = (props: FilterFieldProps): JSX.Element => { - const { - caption, - children, - hiddenCaption, - className, - } = props; - - return ( -
      - -
      - ); -}; diff --git a/src/components/filter/field/index.ts b/src/components/filter/field/index.ts deleted file mode 100644 index e61f35244..000000000 --- a/src/components/filter/field/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { FilterField } from './filter-field'; diff --git a/src/components/filter/filter-actions.tsx b/src/components/filter/filter-actions.tsx new file mode 100644 index 000000000..cf75689a2 --- /dev/null +++ b/src/components/filter/filter-actions.tsx @@ -0,0 +1,22 @@ +import classNames from 'classnames/bind'; + +import styles from './filter.module.css'; + +interface FilterActionProps { + className?: string +} + +const cx = classNames.bind(styles); + +export const FilterActions: React.FC = (props) => { + const { + children, + className, + } = props; + + return ( +
      + {children} +
      + ); +}; diff --git a/src/components/filter/filter-field.tsx b/src/components/filter/filter-field.tsx new file mode 100644 index 000000000..85c83b0ab --- /dev/null +++ b/src/components/filter/filter-field.tsx @@ -0,0 +1,36 @@ +import classNames from 'classnames/bind'; + +import styles from './filter.module.css'; + +interface FilterFieldProps { + caption: string + hiddenCaption?: boolean + className?: string +} + +const cx = classNames.bind(styles); + +export const FilterField: React.FC = (props) => { + const { + caption, + children, + hiddenCaption, + className, + } = props; + + return ( + + ); +}; diff --git a/src/components/filter/filter-list.tsx b/src/components/filter/filter-list.tsx new file mode 100644 index 000000000..86bfed641 --- /dev/null +++ b/src/components/filter/filter-list.tsx @@ -0,0 +1,35 @@ +import classNames from 'classnames/bind'; + +import styles from './filter.module.css'; + +interface FilterListProps { + caption: string + hiddenCaption?: boolean + className?: string + addon?: React.ReactNode +} + +const cx = classNames.bind(styles); + +export const FilterList: React.FC = (props) => { + const { + caption, + children, + className, + addon, + } = props; + + return ( +
      + + {caption} + + {children} + {addon && ( +
      + {addon} +
      + )} +
      + ); +}; diff --git a/src/components/filter/filter.module.css b/src/components/filter/filter.module.css index 0e854ab5d..48021c306 100644 --- a/src/components/filter/filter.module.css +++ b/src/components/filter/filter.module.css @@ -1,4 +1,96 @@ -.root { +@value tablet-portrait from "shared/styles/media.module.css"; + +.common { + position: relative; display: flex; +} + +.caption { + @mixin text; + + display: block; + margin-bottom: 16px; + font-size: 20px; + line-height: 24px; +} + +.field { + flex: 1; + + @media tablet-portrait { + display: flex; + justify-content: space-between; + } +} + +.field-caption { + composes: caption; + + @media tablet-portrait { + max-width: 220px; + margin-right: 16px; + margin-bottom: 0; + } +} + +.field-hidden-caption { + composes: field; + + .field-caption { + @mixin visually-hidden; + } +} + +.field-control { + @media tablet-portrait { + flex-grow: 1; + } +} + +.list { + min-width: 0; + padding: 0; + border: 0; + margin: 0; +} + +.list-caption { + @mixin text; + + composes: caption; + display: block; + margin: 0 0 16px; + font-size: 20px; + line-height: 24px; +} + +.list-addon { + padding: 0 8px; + margin: 8px 0 0; +} + +.actions { + display: flex; + width: 100%; + justify-content: stretch; +} + +.horizontal { + composes: common; align-items: flex-end; + + .field:not(:last-child), + .list:not(:last-child) { + margin-right: 30px; + } +} + +.vertical { + composes: common; + flex-direction: column; + + .field:not(:last-child), + .list:not(:last-child) { + margin-bottom: 56px; + } } diff --git a/src/components/filter/filter.tsx b/src/components/filter/filter.tsx index c6d7557be..a5475e39a 100644 --- a/src/components/filter/filter.tsx +++ b/src/components/filter/filter.tsx @@ -1,32 +1,24 @@ import classNames from 'classnames/bind'; -import { FilterField } from './field'; - -import type { PropsWithChildren } from 'react'; - import styles from './filter.module.css'; interface FilterProps { className?: string + variant?: 'horizontal' | 'vertical' } const cx = classNames.bind(styles); -const Component = (props: PropsWithChildren) => { +export const Filter = (props: React.PropsWithChildren) => { const { children, className, + variant = 'horizontal' } = props; return ( -
      +
      {children}
      ); }; - -Component.displayName = 'Filter'; - -export const Filter = Object.assign(Component, { - Field: FilterField, -}); diff --git a/src/components/filter/index.ts b/src/components/filter/index.ts index 009bf0763..c5e2b466b 100644 --- a/src/components/filter/index.ts +++ b/src/components/filter/index.ts @@ -1 +1,10 @@ -export * from './filter'; +import { Filter as Component } from './filter'; +import { FilterActions } from './filter-actions'; +import { FilterField } from './filter-field'; +import { FilterList } from './filter-list'; + +export const Filter = Object.assign(Component, { + Field: FilterField, + List: FilterList, + Actions: FilterActions, +}); diff --git a/src/components/footer-copyright/footer-copyright.module.css b/src/components/footer-copyright/footer-copyright.module.css index 372d9d00e..241d7f242 100644 --- a/src/components/footer-copyright/footer-copyright.module.css +++ b/src/components/footer-copyright/footer-copyright.module.css @@ -17,13 +17,15 @@ margin: 0 32px 0 0; @media (max-width: $tablet-portrait) { - margin: 0 0 10px 0; + margin: 0 0 10px; } } -.footnoteLink { +.footnoteLink.footnoteLink { + padding: 0; + @media (max-width: $tablet-portrait) { - text-decoration: underline; + border-bottom-color: var(--coal); } } @@ -34,13 +36,13 @@ @media (max-width: $tablet-portrait) { width: 254px; flex-direction: column; - margin: 59px 0 0 0; + margin: 59px 0 0; } dt { &::after { display: inline; - content: ' –'; + content: " –"; } } @@ -66,10 +68,10 @@ width: 27px; height: 25px; margin-right: 4px; - background-image: url('./footer-copyright.assets/shishki.svg'); + background-image: url("./footer-copyright.assets/shishki.svg"); background-repeat: no-repeat; background-size: contain; - content: ''; + content: ""; grid-area: logo; @media (max-width: $tablet-portrait) { diff --git a/src/components/footer-copyright/footer-copyright.tsx b/src/components/footer-copyright/footer-copyright.tsx index d184b3d54..52e976972 100644 --- a/src/components/footer-copyright/footer-copyright.tsx +++ b/src/components/footer-copyright/footer-copyright.tsx @@ -1,7 +1,8 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; -import { InfoLink } from 'components/ui/info-link'; +import { Button } from 'components/ui/button2'; + +import type { FC } from 'react'; import styles from './footer-copyright.module.css'; @@ -31,15 +32,17 @@ export const FooterCopyright: FC = (props) => { {currentYear}
      {privacyPolicyUrl && ( - + target='_blank' + rel='noopener noreferrer' + > + {'Политика конфиденциальности'} + )}
      @@ -47,15 +50,17 @@ export const FooterCopyright: FC = (props) => { дизайн сайта
      - + animation='bottomLine' + href="https://shishki.co" + target='_blank' + rel='noopener noreferrer' + > + {'shishki.collective'} +
      @@ -65,15 +70,17 @@ export const FooterCopyright: FC = (props) => {
      студенты {' '} - + animation='bottomLine' + href="https://practicum.yandex.ru" + target='_blank' + rel='noopener noreferrer' + > + {'Яндекс Практикума'} +
      diff --git a/src/components/footer/footer.module.css b/src/components/footer/footer.module.css index 01e8c9609..187b038fd 100644 --- a/src/components/footer/footer.module.css +++ b/src/components/footer/footer.module.css @@ -30,8 +30,13 @@ } } +.logo:hover { + cursor: pointer; +} + .footnote { margin-top: 49px; + color: var(--coal); grid-area: footnote; @media (max-width: $tablet-portrait) { diff --git a/src/components/footer/footer.tsx b/src/components/footer/footer.tsx index 0e59ad4e6..5bf3103f5 100644 --- a/src/components/footer/footer.tsx +++ b/src/components/footer/footer.tsx @@ -1,12 +1,15 @@ -import { ReactNode } from 'react'; import classNames from 'classnames/bind'; +import Link from 'next/link'; import { FooterCopyright } from 'components/footer-copyright'; +import Logo from 'shared/images/full-logo.svg'; + import { FooterNavigation } from './navigation'; -import { FooterProjects } from './projects'; import { FooterPartners } from './partners'; +import { FooterProjects } from './projects'; + +import type { ReactNode } from 'react'; -import Logo from 'shared/images/full-logo.svg'; import styles from './footer.module.css'; interface FooterProps { @@ -26,7 +29,9 @@ export const Footer = (props: FooterProps): JSX.Element => { return (
      - + + + {children} ; - -const Template: ComponentStory = (args) => { - return ; -}; - -export const Default = Template.bind({}); - -Default.args = { - data: mockData, -}; diff --git a/src/components/for-press-hero/for-press-hero-description/for-press-hero-description.tsx b/src/components/for-press-hero/for-press-hero-description/for-press-hero-description.tsx index 8f9d869b8..87cfdc92e 100644 --- a/src/components/for-press-hero/for-press-hero-description/for-press-hero-description.tsx +++ b/src/components/for-press-hero/for-press-hero-description/for-press-hero-description.tsx @@ -1,8 +1,9 @@ -import { FC } from 'react'; import cn from 'classnames/bind'; -import { Button } from '../../ui/button'; -import { Url } from 'shared/types/common'; +import { Button } from 'components/ui/button2'; +import { Icon } from 'components/ui/icon'; + +import type { FC } from 'react'; import styles from './for-press-hero-description.module.css'; @@ -10,10 +11,10 @@ const cx = cn.bind(styles); export interface IForPressHeroDescriptionProps { data: { - description: string, - link: Url, - }, - customClass?: string; + description: string + link: Url + } + customClass?: string } export const ForPressHeroDescription: FC = ({ data, customClass }) => { @@ -24,17 +25,22 @@ export const ForPressHeroDescription: FC = ({ dat {data.description}

    ); }; diff --git a/src/components/for-press-hero/for-press-hero-pr-contact/for-press-hero-pr-contact.module.css b/src/components/for-press-hero/for-press-hero-pr-contact/for-press-hero-pr-contact.module.css index d69e2a541..3ec0d22f5 100644 --- a/src/components/for-press-hero/for-press-hero-pr-contact/for-press-hero-pr-contact.module.css +++ b/src/components/for-press-hero/for-press-hero-pr-contact/for-press-hero-pr-contact.module.css @@ -39,8 +39,19 @@ @mixin textSmall; max-width: 269px; + margin-left: 0; } .hiddenText { @mixin visually-hidden; } + +.button { + padding: 0; + text-decoration: underline; + + :first-child { + font-family: "PP Neue Machina", Arial, sans-serif; + font-weight: 400; + } +} diff --git a/src/components/for-press-hero/for-press-hero-pr-contact/for-press-hero-pr-contact.tsx b/src/components/for-press-hero/for-press-hero-pr-contact/for-press-hero-pr-contact.tsx index 6e541cb1d..4c2aff75c 100644 --- a/src/components/for-press-hero/for-press-hero-pr-contact/for-press-hero-pr-contact.tsx +++ b/src/components/for-press-hero/for-press-hero-pr-contact/for-press-hero-pr-contact.tsx @@ -1,9 +1,9 @@ -import { FC } from 'react'; import cn from 'classnames/bind'; import Image from 'next/image'; -import { Url } from 'shared/types'; -import { InfoLink } from 'components/ui/info-link'; +import { Button } from 'components/ui/button2'; + +import type { FC } from 'react'; import styles from './for-press-hero-pr-contact.module.css'; @@ -11,13 +11,13 @@ const cx = cn.bind(styles); export interface IForPressHeroPrContactProps { data: { - name: string, - nameDative: string, - email: string, - role: string, - photo: Url, - }, - customClass?: string; + name: string + nameDative: string + email: string + role: string + photo: Url + } + customClass?: string } export const ForPressHeroPrContact: FC = ({ data, customClass }) => { @@ -44,13 +44,15 @@ export const ForPressHeroPrContact: FC = ({ data, c Email:
    - + className={cx('button')} + > + {data.email} +
    Должность: diff --git a/src/components/for-press-hero/for-press-hero-title/for-press-hero-title.stories.tsx b/src/components/for-press-hero/for-press-hero-title/for-press-hero-title.stories.tsx deleted file mode 100644 index 2b25f96d2..000000000 --- a/src/components/for-press-hero/for-press-hero-title/for-press-hero-title.stories.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import React from 'react'; -import { ComponentStory, ComponentMeta } from '@storybook/react'; - -import { ForPressHeroTitle } from './for-press-hero-title'; - -import mockData from './assets/mock-data.json'; - -export default { - title: 'Components/ForPressHeroTitle', - component: ForPressHeroTitle, - -} as ComponentMeta; - -const Template: ComponentStory = (args) => { - return ; -}; - -export const Default = Template.bind({}); - -Default.args = { - data: mockData, -}; diff --git a/src/components/for-press-hero/for-press-hero-title/for-press-hero-title.tsx b/src/components/for-press-hero/for-press-hero-title/for-press-hero-title.tsx index 55b1b9567..6b99eb5a8 100644 --- a/src/components/for-press-hero/for-press-hero-title/for-press-hero-title.tsx +++ b/src/components/for-press-hero/for-press-hero-title/for-press-hero-title.tsx @@ -1,15 +1,16 @@ -import { FC } from 'react'; import cn from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './for-press-hero-title.module.css'; const cx = cn.bind(styles); export interface IForPressHeroTitleProps { data: { - title: string, - }, - customClass?: string; + title: string + } + customClass?: string } export const ForPressHeroTitle: FC = ({ data, customClass }) => { diff --git a/src/components/for-press-hero/for-press-hero.tsx b/src/components/for-press-hero/for-press-hero.tsx index 010ba0a47..32bab1fe8 100644 --- a/src/components/for-press-hero/for-press-hero.tsx +++ b/src/components/for-press-hero/for-press-hero.tsx @@ -1,42 +1,42 @@ -import { FC } from 'react'; import cn from 'classnames/bind'; -import { Url, Email } from '../../shared/types/common'; -import { ForPressHeroTitle } from 'components/for-press-hero/for-press-hero-title'; import { ForPressHeroDescription } from 'components/for-press-hero/for-press-hero-description'; import { ForPressHeroPrContact } from 'components/for-press-hero/for-press-hero-pr-contact'; +import { ForPressHeroTitle } from 'components/for-press-hero/for-press-hero-title'; + +import type { FC } from 'react'; import styles from './for-press-hero.module.css'; const cx = cn.bind(styles); export interface ForPressHeroProps { - customClass?: string; + customClass?: string data: { - forPressHeroTitle: ForPressHeroTitle; - forPressHeroDescription: ForPressHeroDescription; - prPerson: PRPerson; + forPressHeroTitle: ForPressHeroTitle + forPressHeroDescription: ForPressHeroDescription + prPerson: PRPerson } } export type ForPressHeroTitle = { - title: string; + title: string } export type ForPressHeroDescription = { - description: string, - link: Url, + description: string + link: Url } export type PRPerson = { - name: string, - nameDative: string, - email: Email, - role: string, - photo: string, + name: string + nameDative: string + email: Email + role: string + photo: string } -export const ForPressHero: FC = ( { data } ) => { +export const ForPressHero: FC = ({ data }) => { return (
    diff --git a/src/components/form-field/form-field.tsx b/src/components/form-field/form-field.tsx index fef5e26b7..9bc52d1bb 100644 --- a/src/components/form-field/form-field.tsx +++ b/src/components/form-field/form-field.tsx @@ -1,12 +1,13 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './form-field.module.css'; interface IFormField { - caption: string, - hiddenCaption?: boolean, - className?: string, + caption: string + hiddenCaption?: boolean + className?: string } const cx = classNames.bind(styles); diff --git a/src/components/google-analytics-script/google-analytics-script.tsx b/src/components/google-analytics-script/google-analytics-script.tsx new file mode 100644 index 000000000..79d2f713f --- /dev/null +++ b/src/components/google-analytics-script/google-analytics-script.tsx @@ -0,0 +1,27 @@ +import Script from 'next/script'; + +interface GoogleAnalyticsScriptProps { + googleAnalyticsTrackingId: string +} + +export const GoogleAnalyticsScript: React.VFC = (props) => { + const { googleAnalyticsTrackingId } = props; + + return ( + <> + + + ); +}; diff --git a/src/components/google-analytics-script/index.ts b/src/components/google-analytics-script/index.ts new file mode 100644 index 000000000..4b24274a6 --- /dev/null +++ b/src/components/google-analytics-script/index.ts @@ -0,0 +1 @@ +export * from './google-analytics-script'; diff --git a/src/components/history-page/itself/history-itself.tsx b/src/components/history-page/itself/history-itself.tsx index 5423abe7a..c56993cc7 100644 --- a/src/components/history-page/itself/history-itself.tsx +++ b/src/components/history-page/itself/history-itself.tsx @@ -1,10 +1,10 @@ -import { FC } from 'react'; +import type { FC } from 'react'; import style from './history-itself.module.css'; interface ImageItemData { - imageUrl1: string, - imageUrl2: string, + imageUrl1: string + imageUrl2: string imageUrl3: string } @@ -16,6 +16,7 @@ interface IHistoryItself { export const HistoryItself: FC= ({ data }) => { const { historyImages } = data; + return (
    @@ -63,7 +64,7 @@ export const HistoryItself: FC= ({ data }) => { {' '} diff --git a/src/components/history-page/title/history-title.module.css b/src/components/history-page/title/history-title.module.css index 00b25661c..8ff56926a 100644 --- a/src/components/history-page/title/history-title.module.css +++ b/src/components/history-page/title/history-title.module.css @@ -61,27 +61,9 @@ display: inline-block; } -.button.link.title { - @mixin headline4; - @mixin headline; - - padding: 0; - - &:hover { - color: var(--white); - } -} - .button.link.subtitle { - @mixin textHistorySmall; - @mixin text; - padding: 0; margin-bottom: 10px; - - &:hover { - color: var(--white); - } } .links { diff --git a/src/components/history-page/title/history-title.tsx b/src/components/history-page/title/history-title.tsx index 208e46907..fc4ffa8c5 100644 --- a/src/components/history-page/title/history-title.tsx +++ b/src/components/history-page/title/history-title.tsx @@ -1,22 +1,23 @@ -import React, { FC } from 'react'; import cn from 'classnames'; +import { useEffect,useState } from 'react'; -import { Button } from 'components/ui/button/button'; -import { Festival } from 'api-typings'; +import { Button } from 'components/ui/button2'; +import { Icon } from 'components/ui/icon'; +import { isNonEmpty } from 'shared/helpers/is-non-empty'; + +import type { Festival } from '__generated__/api-typings'; import style from './history-title.module.css'; interface IHistoryTitle { - data: Festival, - currentYear: number, + data: Festival + currentYear: number } -const iconPlace = 'right'; -const icon = 'arrow-right'; -const alignStart = 'start'; +// TODO: TT заменить на локальное изображение const imageUrl = 'https://s1.hostingkartinok.com/uploads/images/2021/12/fb0c8e1baf21b0ca306ee98a6678c0d8.png'; -export const HistoryTitle: FC = ({ data, currentYear }) => { +export const HistoryTitle: React.FC = ({ data, currentYear }) => { const { plays_count, selected_plays_count, @@ -31,20 +32,25 @@ export const HistoryTitle: FC = ({ data, currentYear }) => { additional_links, description } = data; + const startDate = new Date(start_date).toLocaleDateString('ru-Ru', { timeZone: 'Europe/Moscow', month: 'long', day: 'numeric' }); + const finishDate = new Date(end_date).toLocaleDateString('ru-Ru', { timeZone: 'Europe/Moscow', month: 'long', day: 'numeric' }); - const [urlVolonters, setUrlVolonters] = React.useState(`/about-us/team/?year=${currentYear}`); - React.useEffect(() => { + + const [urlVolonters, setUrlVolonters] = useState(`/about-us/team/?year=${currentYear}`); + + useEffect(() => { setUrlVolonters(`/about-us/team/?year=${currentYear}`); }, [currentYear]); + return (
    Изображение @@ -63,12 +69,12 @@ export const HistoryTitle: FC = ({ data, currentYear }) => {

    пьес прислали на конкурс @@ -77,30 +83,34 @@ export const HistoryTitle: FC = ({ data, currentYear }) => {

    - пьес прошли отбор + пьес прозвучало на фестивале

    отборщиков читали пьесы @@ -109,16 +119,20 @@ export const HistoryTitle: FC = ({ data, currentYear }) => {

    волонтёров работали на фестивале @@ -127,12 +141,12 @@ export const HistoryTitle: FC = ({ data, currentYear }) => {

    событий прошло в образовательной программе @@ -141,12 +155,12 @@ export const HistoryTitle: FC = ({ data, currentYear }) => {

    число городов, откуда приехали авторы @@ -154,7 +168,7 @@ export const HistoryTitle: FC = ({ data, currentYear }) => {

    - {plays_links.length > 0 && ( + {isNonEmpty(plays_links) && (

    Пьесы @@ -162,39 +176,48 @@ export const HistoryTitle: FC = ({ data, currentYear }) => { {plays_links.map(({ title, link }) => (
    ))}

    )} - {additional_links.length > 0 && ( + {isNonEmpty(additional_links) && (

    Дополнительно

    - {additional_links.map(({ title, link }) => (
    ))}
    diff --git a/src/components/homepage-events-section/homepage-events-section.module.css b/src/components/homepage-events-section/homepage-events-section.module.css index b2f7d9680..c4ae86c40 100644 --- a/src/components/homepage-events-section/homepage-events-section.module.css +++ b/src/components/homepage-events-section/homepage-events-section.module.css @@ -10,7 +10,7 @@ margin: 0 0 110px 380px; @media (max-width: $tablet-portrait) { - margin: 0 24px 32px 24px; + margin: 0 24px 32px; } } diff --git a/src/components/homepage-events-section/homepage-events-section.tsx b/src/components/homepage-events-section/homepage-events-section.tsx index 60aa01124..42a79df2d 100644 --- a/src/components/homepage-events-section/homepage-events-section.tsx +++ b/src/components/homepage-events-section/homepage-events-section.tsx @@ -4,7 +4,7 @@ import Link from 'next/link'; import { Button } from 'components/ui/button2'; import { Icon } from 'components/ui/icon'; -import { FC, ReactNode } from 'react'; +import type { FC, ReactNode } from 'react'; import styles from './homepage-events-section.module.css'; @@ -29,7 +29,7 @@ export const HomepageEventsSection: FC = (props) => {title} -
    -
    -
    -)); - -HomepageHeadline.displayName = 'HomepageHeadline'; diff --git a/src/components/homepage-headline/index.ts b/src/components/homepage-headline/index.ts deleted file mode 100644 index c7008a256..000000000 --- a/src/components/homepage-headline/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './homepage-headline'; diff --git a/src/components/homepage-layout/content/index.ts b/src/components/homepage-layout/content/index.ts deleted file mode 100644 index 8d46932f7..000000000 --- a/src/components/homepage-layout/content/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './homepage-layout-content'; diff --git a/src/components/homepage-layout/events/index.ts b/src/components/homepage-layout/events/index.ts deleted file mode 100644 index 81686035d..000000000 --- a/src/components/homepage-layout/events/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './homepage-layout-events'; diff --git a/src/components/homepage-layout/feed/index.ts b/src/components/homepage-layout/feed/index.ts deleted file mode 100644 index 2ddd6fbd7..000000000 --- a/src/components/homepage-layout/feed/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './homepage-layout-feed'; diff --git a/src/components/homepage-layout/homepage-layout.module.css b/src/components/homepage-layout/homepage-layout.module.css deleted file mode 100644 index af6a2f3d0..000000000 --- a/src/components/homepage-layout/homepage-layout.module.css +++ /dev/null @@ -1,24 +0,0 @@ -@import './homepage-layout.vars.module.css'; - -.root { - display: grid; - grid-template-areas: - "headline headline" - "events feed" - "content feed"; - grid-template-columns: 1fr auto; - grid-template-rows: auto auto 1fr; - - @media (max-width: $tablet-portrait) { - display: block; - } -} - -.headline { - min-height: calc(100vh - var(--head-banner-height-tablet-portrait) - var(--page-navbar-extended-height)); - grid-area: headline; - - @media (max-width: $tablet-portrait) { - min-height: initial; - } -} diff --git a/src/components/homepage-layout/homepage-layout.tsx b/src/components/homepage-layout/homepage-layout.tsx deleted file mode 100644 index e7326e747..000000000 --- a/src/components/homepage-layout/homepage-layout.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import classNames from 'classnames/bind'; - -import { HomepageLayoutFeed } from './feed'; -import { HomepageLayoutContent } from './content'; -import { HomepageLayoutEvents } from './events'; - -import type { FC } from 'react'; - -import styles from './homepage-layout.module.css'; - -const cx = classNames.bind(styles); - -const Component: FC = (props) => { - const { children } = props; - - return ( -
    - {children} -
    - ); -}; - -Component.displayName = 'HomepageLayout'; - -export const HomepageLayout = Object.assign(Component, { - Feed: HomepageLayoutFeed, - Content: HomepageLayoutContent, - Events: HomepageLayoutEvents, -}); diff --git a/src/components/homepage-layout/index.ts b/src/components/homepage-layout/index.ts deleted file mode 100644 index e0a422041..000000000 --- a/src/components/homepage-layout/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './homepage-layout'; diff --git a/src/components/homepage-video-archive-section/homepage-video-archive-section.module.css b/src/components/homepage-video-archive-section/homepage-video-archive-section.module.css index 4dc74b5e8..5da958b38 100644 --- a/src/components/homepage-video-archive-section/homepage-video-archive-section.module.css +++ b/src/components/homepage-video-archive-section/homepage-video-archive-section.module.css @@ -1,9 +1,9 @@ .root { - padding: 62px 0 108px 0; + padding: 62px 0 108px; background-color: var(--light-green); @media (max-width: $tablet-portrait) { - padding: 75px 0 100px 0; + padding: 75px 0 100px; } } diff --git a/src/components/homepage-video-archive-section/homepage-video-archive-section.tsx b/src/components/homepage-video-archive-section/homepage-video-archive-section.tsx index 4082a643c..0379a8d10 100644 --- a/src/components/homepage-video-archive-section/homepage-video-archive-section.tsx +++ b/src/components/homepage-video-archive-section/homepage-video-archive-section.tsx @@ -1,11 +1,10 @@ -import Image from 'next/image'; import classNames from 'classnames/bind'; +import Image from 'next/image'; import { Button } from 'components/ui/button2'; import { Icon } from 'components/ui/icon'; import type { FC } from 'react'; -import type { Url } from 'shared/types'; import styles from './homepage-video-archive-section.module.css'; diff --git a/src/components/html-markup/html-markup.module.css b/src/components/html-markup/html-markup.module.css index fc86a8d9a..a19e9f678 100644 --- a/src/components/html-markup/html-markup.module.css +++ b/src/components/html-markup/html-markup.module.css @@ -4,6 +4,8 @@ @mixin text; @mixin textLarge; + color: var(--coal); + big { margin: 24px 0; font-size: 28px; @@ -72,7 +74,7 @@ left: 420px; width: 1px; background-color: var(--coal); - content: ''; + content: ""; @media (max-width: $tablet-portrait) { top: 66px; @@ -86,6 +88,10 @@ margin: 0; } } + + a { + color: currentColor; + } } .default { diff --git a/src/components/html-markup/html-markup.tsx b/src/components/html-markup/html-markup.tsx index 9745dd3e9..dc5b19280 100644 --- a/src/components/html-markup/html-markup.tsx +++ b/src/components/html-markup/html-markup.tsx @@ -1,19 +1,23 @@ import classNames from 'classnames/bind'; -import type { FC } from 'react'; - import styles from './html-markup.module.css'; -interface HTMLMarkupProps { +type HTMLMarkupProps = { variant?: 'default' | 'centered' - markup: string className?: string -} +} & ({ + children: React.ReactNode + markup?: never +} | { + children?: never + markup: string +}) const cx = classNames.bind(styles); -export const HTMLMarkup: FC = (props) => { +export const HTMLMarkup = (props: HTMLMarkupProps) => { const { + children, variant = 'default', markup, className, @@ -25,9 +29,13 @@ export const HTMLMarkup: FC = (props) => { variant, className )} - dangerouslySetInnerHTML={{ - __html: markup, - }} - /> + {...markup && !children ? { + dangerouslySetInnerHTML: { + __html: markup, + } + } : {}} + > + {children} +
    ); }; diff --git a/src/components/photo-gallery/photo-gallery.module.css b/src/components/image-gallery/image-gallery.module.css similarity index 72% rename from src/components/photo-gallery/photo-gallery.module.css rename to src/components/image-gallery/image-gallery.module.css index 7301ee7c9..a1f3b2724 100644 --- a/src/components/photo-gallery/photo-gallery.module.css +++ b/src/components/image-gallery/image-gallery.module.css @@ -12,6 +12,21 @@ } } +.title { + @mixin headline; + @mixin headline4; + + max-width: 568px; + margin: 0 auto 40px 362px; + + @media (max-width: $tablet-portrait) { + @mixin headline6; + + max-width: 369px; + margin: 0 22px 34px; + } +} + .item { position: relative; overflow: hidden; diff --git a/src/components/image-gallery/image-gallery.tsx b/src/components/image-gallery/image-gallery.tsx new file mode 100644 index 000000000..200160649 --- /dev/null +++ b/src/components/image-gallery/image-gallery.tsx @@ -0,0 +1,91 @@ +import classNames from 'classnames/bind'; +import Image from 'next/image'; +import { useState } from 'react'; + +import { DialogWindow } from 'components/dialog-window'; +import { Modal } from 'components/ui/modal'; + +import { ImageSlider } from '../ui/image-slider'; + +import styles from './image-gallery.module.css'; + +const cx = classNames.bind(styles); + +type GalleryImage = { + url: Url + description?: string +} + +interface ImageGalleryProps { + title?: string + items: GalleryImage[] + className?: string +} + +export const ImageGallery: React.VFC = (props) => { + const { className, title, items } = props; + const [fullscreenMode, setFullscreenMode] = useState(false); + const [currentSlideIndex, setCurrentSlideIndex] = useState(0); + + const toggleFullscreenMode = () => (setFullscreenMode(!fullscreenMode)); + + const handleItemClick = (index: number) => () => { + setCurrentSlideIndex(index); + toggleFullscreenMode(); + }; + + return ( +
    + {title && ( +

    + {title} +

    + )} +
      + {items.map(({ url, description = '' }, index) => ( +
    • + {description} +
    • + ))} +
    + + + + {items.map(({ url, description= '' }) => ( + {description} + ))} + + + +
    + ); +}; diff --git a/src/components/image-gallery/index.ts b/src/components/image-gallery/index.ts new file mode 100644 index 000000000..89a48b3ed --- /dev/null +++ b/src/components/image-gallery/index.ts @@ -0,0 +1 @@ +export * from './image-gallery'; diff --git a/src/components/library-authors-page/index.module.css b/src/components/library-authors-page/index.module.css deleted file mode 100644 index 30b961a53..000000000 --- a/src/components/library-authors-page/index.module.css +++ /dev/null @@ -1,145 +0,0 @@ -.wrap { - position: relative; -} - -.topWrap { - position: absolute; - z-index: -1; - top: calc(91px * -1); - left: 0; - width: 100%; - height: 0; - - @media (max-width: $tablet-portrait) { - height: 90%; - } -} - -.top { - position: sticky; - top: 0; - width: 100%; - height: 0; - background-color: var(--white); - - @media (max-width: $tablet-portrait) { - height: 140px; - } -} - -.content { - position: relative; - z-index: 0; - display: flex; - max-width: 100%; - box-sizing: border-box; - flex-direction: column; - align-items: center; - justify-content: center; - padding: 58px 0 210px; - margin: 0 auto; - - @media (max-width: $tablet-portrait) { - padding: 0 0 100px; - } -} - -.menuWrap { - position: absolute; - z-index: 1; - top: 0; - left: 0; - - @media (max-width: $tablet-portrait) { - top: 47px; - left: 0; - width: 100%; - } -} - -.menu { - position: sticky; - top: 0; - left: auto; - height: 62px; - box-sizing: border-box; - align-self: flex-start; - padding-top: 21px; - padding-left: 30px; - background-color: var(--beige); - - @media (max-width: $tablet-portrait) { - top: calc(9px * -1); - height: 134px; - padding-top: 48px; - padding-left: 24px; - background-color: var(--white); - } -} - -.title { - @mixin headline; - @mixin headline1; - - z-index: 4; - width: 720px; - box-sizing: border-box; - align-self: flex-end; - padding-right: 108px; - margin: 0 0 16px; - - @media (max-width: $tablet-portrait) { - @mixin headline4; - - width: 298px; - align-self: flex-start; - padding-right: 24px; - margin: 0 0 8px 24px; - } -} - -.search { - position: sticky; - z-index: 3; - top: 30px; - width: 800px; - height: 52px; - box-sizing: border-box; - padding: 0 80px 20px; - margin-left: 30px; - background-color: var(--beige); - - &::before { - position: absolute; - z-index: 0; - top: calc(30px * -1); - left: 0; - width: 100%; - height: 30px; - background-color: var(--beige); - content: ''; - } - - @media (max-width: $tablet-portrait) { - position: static; - width: 100%; - height: 32px; - padding: 0 24px; - margin-bottom: 77px; - margin-left: 0; - background-color: var(--white); - - &::before { - height: 0; - } - } -} - -.pagination { - width: 100%; - margin-bottom: calc(48px * -1); - - @media (max-width: $tablet-portrait) { - margin-bottom: 0; - } -} diff --git a/src/components/library-authors-page/index.tsx b/src/components/library-authors-page/index.tsx deleted file mode 100644 index fa88dafa6..000000000 --- a/src/components/library-authors-page/index.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { FC } from 'react'; - -import { Menu } from 'components/ui/menu'; -import LibraryForm from 'components/library-form'; -import LibraryPagination from 'components/library-pagination'; - -import styles from './index.module.css'; -import { useRouter } from 'next/router'; - -export interface IAuthorInfo { - slug: string; - name: string; -} - -interface IAuthorsPageProps { - letters: string[]; - authors: Array; - isLoading: boolean; - onLetterChange: () => void; - defaultLetter: string; -} - -const AuthorsPage: FC = ({ letters, authors, isLoading,onLetterChange,defaultLetter }) => { - const router = useRouter(); - - const changeLetter = (letter: string) => { - onLetterChange(); - router.push(`${router.pathname}/${encodeURI(`?letter=${letter}`)}`, undefined, { shallow: false, scroll: false }); - }; - - return ( -
    -
    -
    -
    -
    -
    -
    - {/* TODO: убрать дублирование на страницах библиотеки */} - - - Пьесы - - - Авторы - - -
    -
    -

    - Библиотека -

    -
    - -
    -
    - -
    -
    -
    - ); -}; - -export default AuthorsPage; diff --git a/src/components/library-filter/index.ts b/src/components/library-filter/index.ts deleted file mode 100644 index 8da64ed7e..000000000 --- a/src/components/library-filter/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './library-filter'; diff --git a/src/components/library-filter/library-filter-reducer.ts b/src/components/library-filter/library-filter-reducer.ts deleted file mode 100644 index 53ece1c16..000000000 --- a/src/components/library-filter/library-filter-reducer.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Dispatch } from 'react'; - -import { DroplistOption } from '../ui/droplist'; - -export type Action = - { type: 'add years'; festival: DroplistOption } | - { type: 'remove year'; festival: DroplistOption } | - { type: 'add programme'; program: string } | - { type: 'remove programme'; program: string } | - { type: 'reset' } - -export type State = { - festival: DroplistOption[], - program: string[], -} - -export interface ILibraryFilterReducer { - filterState: State; - filterDispatcher: Dispatch; -} - -function reducer(state: State, action: Action): State { - switch(action.type) { - case 'add years': - return { - ...state, - festival: [...state.festival, action.festival] - }; - case 'remove year': - return { - ...state, - festival: state.festival.filter( - ({ value }) => value !== action.festival.value - ) - }; - case 'add programme': - return { - ...state, - program: [...state.program, action.program] - }; - case 'remove programme': - return { - ...state, - program: state.program.filter( - (el, index, arr) => index !== arr.indexOf(action.program) - ) - }; - case 'reset': - return { - festival: [], - program: [] - }; - default: - return state; - } -} - -export default reducer; diff --git a/src/components/library-filter/library-filter.module.css b/src/components/library-filter/library-filter.module.css deleted file mode 100644 index 7dfcd52eb..000000000 --- a/src/components/library-filter/library-filter.module.css +++ /dev/null @@ -1,52 +0,0 @@ -.container { - width: 269px; -} - -.title { - @mixin headline; - @mixin headline7; - - margin-bottom: 16px; -} - -.years { - margin-bottom: 38px; -} - -.programmesList { - display: grid; - padding: 0; - margin: 0 0 75px; - list-style: none; - row-gap: 13px; -} - -.programme { - &:hover { - cursor: pointer; - } -} - -.buttonWrap { - display: block; - - @media (max-width: $tablet-portrait) { - display: none; - } -} - -.mobileButtons { - display: none; - max-width: 100%; - margin-top: 80px; - - @media (max-width: $tablet-portrait) { - display: flex; - } -} - -.button { - @media (max-width: $tablet-portrait) { - width: 183px; - } -} diff --git a/src/components/library-filter/library-filter.stories.tsx b/src/components/library-filter/library-filter.stories.tsx deleted file mode 100644 index f8f1211e6..000000000 --- a/src/components/library-filter/library-filter.stories.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { ComponentStory, ComponentMeta } from '@storybook/react'; - -import LibraryFilter from './library-filter'; - -export default { - title: 'Components/LibraryFilter', - component: LibraryFilter -} as ComponentMeta; - -const Template: ComponentStory = (args) => ; - -export const Default = Template.bind({}); - diff --git a/src/components/library-filter/library-filter.tsx b/src/components/library-filter/library-filter.tsx deleted file mode 100644 index 4130c6809..000000000 --- a/src/components/library-filter/library-filter.tsx +++ /dev/null @@ -1,104 +0,0 @@ -import React, { FC, useCallback, Dispatch, useContext } from 'react'; - -import { Droplist, DroplistOption, } from 'components/ui/droplist'; -import { Tag } from 'components/ui/tag'; -import { Button } from 'components/ui/button'; -import { Action } from 'components/library-filter/library-filter-reducer'; -import { LibraryFiltersProviderContext } from 'providers/library-filters-provider'; -import { IProgram } from 'pages/library'; - -import style from './library-filter.module.css'; - -export interface LibraryFilterProps { - years: DroplistOption[]; - programmes: Array; - filterDispatcher: Dispatch; - onCheckResults?: () => void; -} - -const LibraryFilter: FC = ({ years, programmes, filterDispatcher, onCheckResults }) => { - const filterState = useContext(LibraryFiltersProviderContext); - - const handleTagClick = useCallback( - (el: string): void => { - if (!filterState.program.find((i) => i === el)) { - filterDispatcher({ type: 'add programme', program: el }); - } else { - filterDispatcher({ type: 'remove programme', program: el }); - } - }, [filterState, filterDispatcher]); - - const handleResetClick = useCallback((): void => { - filterDispatcher({ type: 'reset' }); - }, [filterDispatcher]); - - const handleYearsClick = useCallback((years: DroplistOption): void => { - if (!filterState.festival.find((i) => i.value === years.value)) { - filterDispatcher({ type: 'add years', festival: years }); - } else { - filterDispatcher({ type: 'remove year', festival: years }); - } - }, [filterDispatcher, filterState.festival]); - - return ( -
    -
    -

    - Годы фестиваля -

    - -
    -
    -

    - Программа -

    -
      - {programmes.map(({ pk, name }) => ( -
    • handleTagClick(String(pk))} className={style.programme} key={pk}> - -
    • - ))} -
    -
    - {(filterState.festival.length > 0 || filterState.program.length > 0) && ( - <> -
    -
    -
    -
    - - )} -
    - ); -}; - -export default LibraryFilter; diff --git a/src/components/library-form/index.ts b/src/components/library-form/index.ts deleted file mode 100644 index a534b73b6..000000000 --- a/src/components/library-form/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './library-form'; diff --git a/src/components/library-form/library-form.module.css b/src/components/library-form/library-form.module.css deleted file mode 100644 index bad9f2381..000000000 --- a/src/components/library-form/library-form.module.css +++ /dev/null @@ -1,42 +0,0 @@ -.searchForm { - display: flex; - width: 100%; - height: 32px; - border-bottom: 1px solid var(--coal); -} - -.searchInput { - @mixin text; - @mixin textMedium; - - width: 450px; - height: 32px; - box-sizing: border-box; - padding: 1px 3px 8px; - border: none; - border-right: 1px solid var(--coal); - background: none; - outline: none; - - &::placeholder { - opacity: .4; - } - - &:-webkit-autofill, - :-webkit-autofill:hover, - :-webkit-autofill:focus, - :-webkit-autofill:active { - transition: background-color 5000s; - } - - @media (max-width: $tablet-portrait) { - @mixin textSmall; - - width: 256px; - } -} - -.button { - width: 120px; - column-gap: 3px !important; -} diff --git a/src/components/library-form/library-form.stories.tsx b/src/components/library-form/library-form.stories.tsx deleted file mode 100644 index 8a7a4e3db..000000000 --- a/src/components/library-form/library-form.stories.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { ComponentStory, ComponentMeta } from '@storybook/react'; - -import LibraryForm from './library-form'; - -export default { - title: 'Components/LibraryForm', - component: LibraryForm -} as ComponentMeta; - -const Template: ComponentStory = (args) => ; - -export const Default = Template.bind({}); - diff --git a/src/components/library-form/library-form.tsx b/src/components/library-form/library-form.tsx deleted file mode 100644 index be976478c..000000000 --- a/src/components/library-form/library-form.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import React, { FC, useState, ChangeEvent, FormEvent, useCallback } from 'react'; -import { useRouter } from 'next/router'; - -import { Button } from 'components/ui/button'; - -import style from './library-form.module.css'; - -const LibraryForm: FC = () => { - const router = useRouter(); - const [searchInput, setSearchInput] = useState(''); - - const [urlQuery, setUrlQuery] = useState(''); - - const handleChange = useCallback((e: ChangeEvent): void => { - setSearchInput(e.target.value); - setUrlQuery(encodeURI(`?q=${e.target.value}`)); - }, []); - - const handleSubmit = (e: FormEvent): void => { - e.preventDefault(); - if(urlQuery) { - router.push(`/library/search-result${urlQuery}`); - } - }; - - return ( -
    - -
    + + ); +}; diff --git a/src/components/library-layout/library-layout-slot.tsx b/src/components/library-layout/library-layout-slot.tsx new file mode 100644 index 000000000..a71bb553c --- /dev/null +++ b/src/components/library-layout/library-layout-slot.tsx @@ -0,0 +1,24 @@ +import classNames from 'classnames/bind'; + +import styles from './library-layout.module.css'; + +interface LibraryLayoutFilterProps { + area: 'filter' | 'pagination' | 'content' + className?: string +} + +const cx = classNames.bind(styles); + +export const LibraryLayoutSlot: React.FC = (props) => { + const { + area, + className, + children, + } = props; + + return ( +
    + {children} +
    + ); +}; diff --git a/src/components/library-layout/library-layout-spinner.tsx b/src/components/library-layout/library-layout-spinner.tsx new file mode 100644 index 000000000..38fc6daab --- /dev/null +++ b/src/components/library-layout/library-layout-spinner.tsx @@ -0,0 +1,11 @@ +import classNames from 'classnames/bind'; + +import { Spinner } from 'components/spinner'; + +import styles from './library-layout.module.css'; + +const cx = classNames.bind(styles); + +export const LibraryLayoutSpinner: React.VFC = () => ( + +); diff --git a/src/components/library-layout/library-layout.module.css b/src/components/library-layout/library-layout.module.css new file mode 100644 index 000000000..9bc9bedc1 --- /dev/null +++ b/src/components/library-layout/library-layout.module.css @@ -0,0 +1,231 @@ +@value tablet-portrait from "shared/styles/media.module.css"; + +.common { + position: relative; + display: grid; + column-gap: 30px; + grid-template-columns: 330px 1fr; + isolation: isolate; + + --height-library-navigation-menu-tablet-portrait: 80px; + + @media tablet-portrait { + grid-template-columns: 100%; + } + + &::before { + position: sticky; + z-index: 2; + top: var(--height-navbar-tablet-portrait); + display: block; + height: var(--height-library-navigation-menu-tablet-portrait); + margin-bottom: calc(-1 * var(--height-library-navigation-menu-tablet-portrait)); + background-color: var(--beige); + content: ""; + grid-area: backdrop; + } +} + +.heading { + padding: 60px 0 20px; + grid-area: heading; + + @media tablet-portrait { + padding: 0 24px; + background-color: var(--white); + } +} + +.title { + @mixin headline; + @mixin headline1; + + position: relative; + z-index: 3; + margin: 0 0 16px; + text-align: center; + + @media tablet-portrait { + @mixin headline4; + + z-index: auto; + margin-bottom: 8px; + text-align: left; + } +} + +.search { + position: sticky; + z-index: 3; + padding: 0 30px 0 0; + grid-area: search; + + @media tablet-portrait { + position: static; + z-index: auto; + padding: 0 24px; + background-color: var(--white); + } +} + +.navigation { + position: sticky; + z-index: 3; + top: var(--height-navbar-tablet-portrait); + display: flex; + height: var(--height-library-navigation-menu-tablet-portrait); + padding: 0 0 0 30px; + grid-area: navigation; + + @media tablet-portrait { + z-index: 2; + top: 0; + box-sizing: border-box; + padding-top: 26px; + background-color: var(--white); + } +} + +.content { + z-index: 1; + grid-area: content; + + @media tablet-portrait { + z-index: auto; + } +} + +.pagination { + position: sticky; + z-index: 1; + top: calc(var(--height-navbar-tablet-portrait) + var(--height-library-navigation-menu-tablet-portrait)); + display: flex; + border-bottom: 1px solid var(--coal); + margin: 20px 0 52px; + background-color: var(--beige); + grid-area: pagination; + place-content: center; + + @media tablet-portrait { + @mixin hide-scrollbars; + + top: var(--height-library-navigation-menu-tablet-portrait); + display: block; + margin: 0; + background-color: var(--white); + overflow-x: auto; + + nav { + border-top: 1px solid var(--coal); + margin-top: 16px; + } + } +} + +.authors { + composes: common; + grid-template-areas: + "backdrop backdrop" + "navigation heading" + ". heading" + ". search" + "pagination pagination" + "content content"; + grid-template-rows: repeat(5, auto) 1fr; + + @media tablet-portrait { + grid-template-areas: + "heading" + "search" + "navigation" + "pagination" + "content"; + } + + .search { + top: calc(var(--height-navbar-tablet-portrait) + 24px); + max-width: 580px; + } + + .content { + @media tablet-portrait { + padding-top: 56px; + } + } +} + +.plays { + composes: common; + grid-template-areas: + "backdrop backdrop" + "navigation heading" + "filter heading" + "filter search" + "filter content"; + grid-template-rows: repeat(4, auto) 1fr; + + @media tablet-portrait { + grid-template-areas: + "heading" + "search" + "navigation" + "filter" + "content"; + } + + .search { + top: calc(var(--height-navbar-tablet-portrait) + 48px); + } + + .navigation { + box-sizing: border-box; + border-bottom: 1px solid var(--coal); + + @media tablet-portrait { + border: 0; + } + } + + .filter { + @mixin hide-scrollbars; + + position: sticky; + top: calc(var(--height-navbar-tablet-portrait) + var(--height-library-navigation-menu-tablet-portrait)); + height: calc(100vh - var(--height-navbar-tablet-portrait) - var(--height-library-navigation-menu-tablet-portrait)); + box-sizing: border-box; + align-self: flex-start; + padding: 30px 0 30px 30px; + grid-area: filter; + overflow-y: auto; + + @media tablet-portrait { + z-index: 1; + top: 80px; + height: auto; + padding: 10px 24px 16px; + background-color: var(--white); + overflow-x: auto; + } + } + + .content { + padding-right: 28px; + margin-top: 56px; + + @media tablet-portrait { + padding: 0; + } + } +} + +.filter-toggler { + position: fixed; + z-index: 2; + top: 32px; + right: 24px; + width: 44px; + height: 44px; + border: 0; + background-color: var(--light-green); + font-size: 0; +} diff --git a/src/components/library-layout/library-layout.tsx b/src/components/library-layout/library-layout.tsx new file mode 100644 index 000000000..49f7ea4e3 --- /dev/null +++ b/src/components/library-layout/library-layout.tsx @@ -0,0 +1,60 @@ +import classNames from 'classnames/bind'; +import { useRouter } from 'next/router'; + +import { LibrarySearchForm } from 'components/library-search-form'; +import { Menu } from 'components/ui/menu'; + +import styles from './library-layout.module.css'; + +interface LibraryLayoutProps { + variant: 'authors' | 'plays' +} + +const libraryNavigationItems = [ + { + text: 'Пьесы', + href: '/library', + }, + { + text: 'Авторы', + href: '/library/authors', + } +]; + +const cx = classNames.bind(styles); + +export const LibraryLayout: React.FC = (props) => { + const { + variant, + children, + } = props; + + const router = useRouter(); + + return ( +
    +
    + + {libraryNavigationItems.map(({ text, href }) => ( + + {text} + + ))} + +
    +
    +

    + Библиотека +

    +
    +
    + +
    + {children} +
    + ); +}; diff --git a/src/components/library-pagination/index.ts b/src/components/library-pagination/index.ts deleted file mode 100644 index 3f321ec20..000000000 --- a/src/components/library-pagination/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './library-pagination'; diff --git a/src/components/library-pagination/library-pagination.module.css b/src/components/library-pagination/library-pagination.module.css deleted file mode 100644 index 3d6eec0d8..000000000 --- a/src/components/library-pagination/library-pagination.module.css +++ /dev/null @@ -1,163 +0,0 @@ -.container { - position: relative; - max-width: 100%; -} - -.letters { - position: sticky; - z-index: 1; - top: 82px; - display: grid; - box-sizing: border-box; - padding: 0 15px; - border-bottom: 1px solid var(--coal); - margin: 0; - background-color: var(--beige); - column-gap: 12px; - grid-auto-flow: column; - list-style: none; - overflow-x: auto; - overflow-y: hidden; - scroll-behavior: smooth; - - &::-webkit-scrollbar { - display: none; - } - - @media (max-width: $tablet-portrait) { - top: 100px; - border-top: 1px solid var(--coal); - background-color: var(--white); - column-gap: 23px; - } -} - -.letter { - @mixin headline; - @mixin headline7; - - position: relative; - width: 36px; - height: 48px; -} - -.letterActive { - background: var(--coal); - color: var(--white); -} - -.label { - position: absolute; - z-index: 2; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - - &:hover { - cursor: pointer; - } -} - -.inputRadio { - position: absolute; - top: 50%; - left: 50%; - height: 24px; - margin: 0; - transform: translate(-50%, -50%); - visibility: hidden; -} - -.authors { - display: flex; - max-width: 812px; - box-sizing: border-box; - align-items: flex-start; - justify-content: space-between; - padding: 0 36px; - margin: 0 auto; - - @media (max-width: $tablet-portrait) { - flex-direction: column-reverse; - } -} - -.authorsList { - display: flex; - flex-direction: column; - align-items: flex-start; - justify-content: flex-start; - padding: 0; - margin: 53px 0 0; - list-style: none; - - @media (max-width: $tablet-portrait) { - padding-left: 19px; - margin: 16px 0 0; - } -} - -.author { - margin-bottom: 12px; - - &:last-child { - margin-bottom: 0; - } -} - -.link { - @mixin text; - @mixin textLarge; - - padding: 1px 8px 3px; - color: var(--coal); - text-decoration: none; - - &:active { - background-color: var(--coal); - color: var(--white); - } -} - -.chosenLetter { - position: relative; - margin: 309px 20px 0 0; - - @media (max-width: $tablet-portrait) { - margin: 56px 0 0; - } -} - -.letterDisabled { - cursor: default; - opacity: .2; - pointer-events: none; - - &:hover { - color: var(--coal); - } -} - -.bigLetter { - @mixin headline; - - font-size: 100px; - line-height: 100px; - - @media (max-width: $tablet-portrait) { - @mixin headline3; - } -} - -.authorsQuantity { - @mixin text; - @mixin textLarge; - - position: absolute; - top: calc(8px * -1); - right: calc(7px * -1); - - @media (max-width: $tablet-portrait) { - right: calc(14px * -1); - } -} diff --git a/src/components/library-pagination/library-pagination.tsx b/src/components/library-pagination/library-pagination.tsx deleted file mode 100644 index e1b770254..000000000 --- a/src/components/library-pagination/library-pagination.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import React, { FC, useState, useEffect, useMemo } from 'react'; -import cn from 'classnames'; - -import { InfoLink } from '../ui/info-link'; -import { IAuthorInfo } from 'components/library-authors-page'; - -import style from './library-pagination.module.css'; -import styles from '../library-pieces-page/index.module.css'; -import LibraryPreloader from '../library-pieces-page/library-preloader/library-preloader'; - -interface LibraryPaginationProps { - letters: string[]; - authors: Array; - className?: string; - onChange: (letter: string) => void; - isLoading: boolean; - defaultLetter: string; -} - -const defaultLetters = ['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З', 'И', 'К', 'Л', 'М', 'Н', - 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Э', 'Ю', 'Я']; - -const LibraryPagination: FC = ({ letters, authors, onChange, isLoading,defaultLetter }) => { - const [letter, setLetter] = useState(defaultLetter); - const [letterElement, setLetterElement] = useState(null); - - const changeLetter = (e: React.MouseEvent, el: string) => { - setLetter(el); - setLetterElement(e.target as HTMLInputElement); - onChange(el); - }; - const chosenAuthors = useMemo(() => letter ? authors.filter((el) => - el.name.startsWith(letter)) : [], [letter, authors]); - - useEffect(() => { - letterElement?.parentElement?.scrollIntoView({ block: 'nearest', behavior: 'smooth' }); - }, [letterElement]); - - return ( -
    -
      - {defaultLetters.map((el) => ( -
    • - - changeLetter(e, el)} - type="radio" - name="letter" - id={el} - value={el} - className={style.inputRadio} - /> -
    • - ))} -
    -
    - {isLoading ? ( -
    - -
    - ) : ( - <> -
      - {chosenAuthors.length > 0 && chosenAuthors.map((el) => ( -
    • - - {el.name} - -
    • - ))} -
    -
    -

    - {letter} -

    -

    - {letter && String(chosenAuthors.length)} -

    -
    - - ) - - } -
    -
    - ); -}; - -export default LibraryPagination; diff --git a/src/components/library-pieces-page/index.module.css b/src/components/library-pieces-page/index.module.css deleted file mode 100644 index f24091b3d..000000000 --- a/src/components/library-pieces-page/index.module.css +++ /dev/null @@ -1,261 +0,0 @@ -@keyframes emergence { - from { - opacity: 0; - } - - to { - opacity: 1; - } -} - -.wrap { - position: relative; -} - -.filtersButton { - display: none; - - @media (max-width: $tablet-portrait) { - position: fixed; - z-index: 1; - top: 32px; - right: 24px; - display: flex; - width: 45px; - height: 45px; - align-items: center; - justify-content: center; - background-color: var(--light-green); - } -} - -.topWrap { - position: absolute; - z-index: -1; - top: -91px; - left: 0; - width: 100%; - height: 0; - - @media (max-width: $tablet-portrait) { - height: 90%; - } -} - -.top { - position: sticky; - top: calc(50px * -1); - width: 100%; - height: 0; - background-color: var(--white); - - @media (max-width: $tablet-portrait) { - height: 140px; - } -} - -.content { - position: relative; - z-index: 0; - display: flex; - max-width: 100%; - min-height: calc(100vh - 61px); - align-items: flex-start; - justify-content: space-between; - margin: 0 auto; - - @media (max-width: $tablet-portrait) { - display: block; - } -} - -.sidebar { - @mixin hide-scrollbars; - - position: sticky; - z-index: 1; - top: 0; - left: auto; - max-height: 100vh; - box-sizing: border-box; - padding: 21px 0; - overflow-y: scroll; - - @media (max-width: $tablet-portrait) { - position: absolute; - z-index: -1; - top: 47px; - left: 0; - width: 100%; - height: calc(100% - 166px); - padding: 0; - pointer-events: none; - } -} - -.sidebar * { - @media (max-width: $tablet-portrait) { - pointer-events: all; - } -} - -.menu { - box-sizing: border-box; - padding-bottom: 17px; - padding-left: 30px; - border-bottom: 1px solid var(--coal); - margin: 0 0 30px; - - @media (max-width: $tablet-portrait) { - position: sticky; - top: calc(9px * -1); - left: auto; - height: 105px; - padding: 48px 0 0 24px; - border-bottom: none; - margin: 0; - background-color: var(--white); - } -} - -.filter { - box-sizing: border-box; - padding-left: 30px; - - @media (max-width: $tablet-portrait) { - display: none; - } -} - -.section { - position: relative; - z-index: 0; - display: flex; - width: 1050px; - flex-direction: column; - align-items: center; - justify-content: center; - margin: 58px 29px 163px auto; - justify-self: flex-end; - - @media (max-width: $tablet-portrait) { - width: 100%; - margin: 0; - } -} - -.title { - @mixin headline; - @mixin headline1; - - z-index: 4; - width: 720px; - box-sizing: border-box; - align-self: flex-end; - padding-right: 108px; - margin: 0 0 16px; - - @media (max-width: $tablet-portrait) { - @mixin headline4; - - width: 298px; - align-self: flex-start; - padding-right: 24px; - margin: 0 0 8px 24px; - } -} - -.search { - position: sticky; - z-index: 3; - top: 48px; - width: 100%; - box-sizing: border-box; - background-color: var(--beige); - - &::before { - position: absolute; - z-index: 3; - top: calc(48px * -1); - left: 0; - width: 100%; - height: 48px; - background-color: var(--beige); - content: ''; - } - - @media (max-width: $tablet-portrait) { - position: static; - padding: 0 24px; - background-color: var(--white); - - &::before { - height: 0; - } - } -} - -.loader { - display: flex; - width: 100%; - min-height: 429px; - align-items: center; - justify-content: center; -} - -.loaderMobile { - display: none; - - @media (max-width: $tablet-portrait) { - display: flex; - align-items: center; - justify-content: center; - } -} - -.pieces { - width: calc(100% + 48px); - margin: 54px auto 0 calc(24px * -1); - - @media (max-width: $tablet-portrait) { - display: none; - } -} - -.pieces article { - animation: emergence 1s linear; -} - -.piecesMobile { - display: none; - - @media (max-width: $tablet-portrait) { - position: relative; - z-index: -2; - display: grid; - box-sizing: border-box; - padding: 56px 85px 100px; - margin-top: 124px; - row-gap: 48px; - } -} - -.piecesMobile article { - animation: emergence 1s linear; -} - -.mobileTags { - display: none; - background-color: var(--white); - - @media (max-width: $tablet-portrait) { - display: flex; - } -} - -.noResult { - @mixin text; - @mixin textLarge; - - text-align: center; -} diff --git a/src/components/library-pieces-page/index.tsx b/src/components/library-pieces-page/index.tsx deleted file mode 100644 index e5a1b54fa..000000000 --- a/src/components/library-pieces-page/index.tsx +++ /dev/null @@ -1,160 +0,0 @@ -import { FC, useState, useEffect, Dispatch, } from 'react'; -import { disableBodyScroll, enableBodyScroll } from '@funboxteam/diamonds'; - -import LibraryForm from 'components/library-form/library-form'; -import LibraryFilter from 'components/library-filter/library-filter'; -import { BasicPlayCard } from 'components/ui/basic-play-card'; -import { BasicPlayCardList } from 'components/ui/basic-play-card-list'; -import { Menu } from 'components/ui/menu'; -import { Icon } from 'components/ui/icon'; -import { DroplistOption } from 'components/ui/droplist'; -import LibraryFiltersModal from './library-filters-modal'; -import LibraryPreloader from './library-preloader/library-preloader'; -import LibraryTagsMobile from 'components/library-tags-mobile/library-tags-mobile'; -import { Play } from 'api-typings'; -import { Action } from 'components/library-filter/library-filter-reducer'; -import { IProgram } from 'pages/library'; - -import styles from './index.module.css'; - -interface ILibraryPageProps { - isLoading: boolean; - items: Play[]; - years: DroplistOption[]; - programmes: Array; - filterDispatcher: Dispatch; -} - -const LibraryPage: FC = ({ isLoading, items, years, programmes, filterDispatcher }) => { - const [isModalOpen, setIsModalOpen] = useState(false); - - function handleFiltersClick(): void { - setIsModalOpen((prev) => !prev); - } - - useEffect(() => { - isModalOpen ? disableBodyScroll({ savePosition: true }) : enableBodyScroll(); - - return () => enableBodyScroll(); - }, [isModalOpen]); - - return ( -
    -
    - -
    -
    -
    -
    -
    -
    -
    - - - Пьесы - - - Авторы - - -
    -
    - -
    -
    - -
    -
    -
    -

    - Библиотека -

    -
    - -
    - {isLoading ? ( -
    - -
    - ) : ( -
    - {!items.length - && ( -

    - Ничего не найдено. Попробуйте изменить параметры поиска. -

    - ) - } - - {items.map(({ id, name, city, year, url_download, url_reading, authors }) => ( - - ))} - -
    - )} -
    -
    - {!items.length - && ( -

    - Ничего не найдено. Попробуйте изменить параметры поиска. -

    - ) - } - {isLoading ? ( -
    - -
    - ) : ( - <> - {items.map(({ id, name, city, year, url_download, url_reading, authors }) => ( - - ))} - - )} -
    - - - -
    -
    - ); -}; - -export default LibraryPage; diff --git a/src/components/library-pieces-page/library-filters-modal/index.module.css b/src/components/library-pieces-page/library-filters-modal/index.module.css deleted file mode 100644 index c522c7c6e..000000000 --- a/src/components/library-pieces-page/library-filters-modal/index.module.css +++ /dev/null @@ -1,22 +0,0 @@ -.wrap { - position: fixed; - top: 0; - left: 0; - overflow: auto; - width: 100%; - height: 100%; - box-sizing: border-box; - flex-direction: column; - padding: 103px 24px 56px; - background-color: var(--beige); - opacity: 0; - transition: visibility .5s, opacity .5s linear; - visibility: hidden; -} - -.isOpen { - z-index: 1; - opacity: 1; - transition: visibility .5s, opacity .5s linear; - visibility: visible; -} diff --git a/src/components/library-pieces-page/library-filters-modal/index.tsx b/src/components/library-pieces-page/library-filters-modal/index.tsx deleted file mode 100644 index 9c8f9b6b6..000000000 --- a/src/components/library-pieces-page/library-filters-modal/index.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import classNames from 'classnames/bind'; -import { FC, ReactNode } from 'react'; - -import styles from './index.module.css'; - -interface ILibraryFiltersModalProps { - children: ReactNode; - isModalOpen: boolean; -} - -const cx = classNames.bind(styles); - -const LibraryFiltersModal: FC = ({ children, isModalOpen }) => { - return ( -
    - {children} -
    - ); -}; - -export default LibraryFiltersModal; diff --git a/src/components/library-pieces-page/library-preloader/Thumbs.db b/src/components/library-pieces-page/library-preloader/Thumbs.db deleted file mode 100644 index bb80d46f3..000000000 Binary files a/src/components/library-pieces-page/library-preloader/Thumbs.db and /dev/null differ diff --git a/src/components/library-pieces-page/library-preloader/library-preloader.tsx b/src/components/library-pieces-page/library-preloader/library-preloader.tsx deleted file mode 100644 index a8657769d..000000000 --- a/src/components/library-pieces-page/library-preloader/library-preloader.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { FC } from 'react'; -import Image from 'next/dist/client/image'; - -import Loader from './loader.gif'; - -const LibraryPreloader: FC = () => { - return ( - Прелоадер - ); -}; - -export default LibraryPreloader; diff --git a/src/components/library-pieces-page/library-preloader/loader.gif b/src/components/library-pieces-page/library-preloader/loader.gif deleted file mode 100644 index e66c1ede6..000000000 Binary files a/src/components/library-pieces-page/library-preloader/loader.gif and /dev/null differ diff --git a/src/components/library-pieces-page/library-query-parser.ts b/src/components/library-pieces-page/library-query-parser.ts deleted file mode 100644 index ab83fff7d..000000000 --- a/src/components/library-pieces-page/library-query-parser.ts +++ /dev/null @@ -1,21 +0,0 @@ -interface IQueryParser { - [key: string]: string[]; -} - -function queryParser(querys: IQueryParser): string { - let parsedQuery: string = ''; - - for (const [key, value] of Object.entries(querys)) { - if (value.length > 0) { - parsedQuery = parsedQuery.concat(`${key}=${value.join()}&`); - } - } - - if (parsedQuery[parsedQuery.length - 1] === '&') { - return parsedQuery.substring(0, parsedQuery.length - 1); - } - - return parsedQuery; -} - -export default queryParser; diff --git a/src/components/library-search-form/index.ts b/src/components/library-search-form/index.ts new file mode 100644 index 000000000..bbfef73f7 --- /dev/null +++ b/src/components/library-search-form/index.ts @@ -0,0 +1 @@ +export * from './library-search-form'; diff --git a/src/components/library-search-form/library-search-form.module.css b/src/components/library-search-form/library-search-form.module.css new file mode 100644 index 000000000..23756ddd0 --- /dev/null +++ b/src/components/library-search-form/library-search-form.module.css @@ -0,0 +1,49 @@ +.root { + display: flex; + border-bottom: 1px solid var(--coal); +} + +.input { + @mixin text; + @mixin textMedium; + + max-width: 460px; + height: 32px; + box-sizing: border-box; + flex: 1 0; + padding: 0 4px 8px; + border: 0; + background: 0; + font-size: 16px; + line-height: 1; + outline: 0; +} + +.submit-button { + display: flex; + padding: 4px 10px 4px 0; + border: 0; + border-left: 1px solid var(--coal); + background: 0; + outline: 0; + place-items: center; + text-transform: uppercase; + + &:disabled { + border-left-color: var(--gray); + color: var(--gray); + pointer-events: none; + } + + &:hover { + background-color: var(--coal); + color: var(--white); + cursor: pointer; + } +} + +.submit-button-icon { + width: 25px; + height: 25px; + margin: 0 4px 0 0; +} diff --git a/src/components/library-search-form/library-search-form.tsx b/src/components/library-search-form/library-search-form.tsx new file mode 100644 index 000000000..012d5f2bd --- /dev/null +++ b/src/components/library-search-form/library-search-form.tsx @@ -0,0 +1,62 @@ +import classNames from 'classnames/bind'; +import { useRouter } from 'next/router'; +import { useCallback, useEffect,useRef, useState } from 'react'; + +import { Icon } from 'components/ui/icon'; + +import styles from './library-search-form.module.css'; + +const SEARCH_QUERY_MIN_LENGTH = 2; + +const cx = classNames.bind(styles); + +export const LibrarySearchForm: React.VFC = () => { + const router = useRouter(); + const [query, setQuery] = useState(''); + const inputElRef = useRef(null); + + const handleQueryChange = useCallback((e: React.ChangeEvent) => { + setQuery(e.target.value); + }, []); + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + router.push(`/library/search/${query}`); + }; + + const canSubmit = query.length >= SEARCH_QUERY_MIN_LENGTH; + + useEffect(() => inputElRef.current?.focus(), [router.asPath]); + + return ( +
    + + +
    + ); +}; diff --git a/src/components/library-tags-mobile/index.ts b/src/components/library-tags-mobile/index.ts deleted file mode 100644 index b49b4685a..000000000 --- a/src/components/library-tags-mobile/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './library-tags-mobile'; diff --git a/src/components/library-tags-mobile/library-tags-mobile.module.css b/src/components/library-tags-mobile/library-tags-mobile.module.css deleted file mode 100644 index cd22517f5..000000000 --- a/src/components/library-tags-mobile/library-tags-mobile.module.css +++ /dev/null @@ -1,25 +0,0 @@ -.programmesList { - @mixin hide-scrollbars; - - --card-width: max-content; - - display: grid; - max-width: 100vw; - box-sizing: border-box; - justify-content: start; - padding: 0 0 16px; - margin: 0 0 0 24px; - background-color: var(--white); - gap: 2px; - grid-auto-flow: column; - grid-template-columns: repeat(auto-fit, var(--card-width)); - list-style: none; - overflow-x: auto; - scroll-behavior: smooth; - scroll-snap-type: x mandatory; -} - -.programme { - cursor: pointer; - scroll-snap-align: start; -} diff --git a/src/components/library-tags-mobile/library-tags-mobile.tsx b/src/components/library-tags-mobile/library-tags-mobile.tsx deleted file mode 100644 index 1d36610f3..000000000 --- a/src/components/library-tags-mobile/library-tags-mobile.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import React, { FC, useCallback, Dispatch, useContext, useMemo } from 'react'; - -import { Action } from 'components/library-filter/library-filter-reducer'; -import { LibraryFiltersProviderContext } from 'providers/library-filters-provider'; -import { IProgram } from 'pages/library'; -import { Tag } from 'components/ui/tag'; -import { DroplistOption } from 'components/ui/droplist'; - -import styles from './library-tags-mobile.module.css'; - -export interface LibraryTagsMobileProps { - programmes: Array; - filterDispatcher: Dispatch; -} - -const LibraryTagsMobile: FC = ({ programmes, filterDispatcher }) => { - const filterState = useContext(LibraryFiltersProviderContext); - - const selectedProgrammes = useMemo(()=> { - return programmes.filter((tag) => filterState.program.includes(String(tag.pk))); - }, [filterState.program, programmes]); - - const handleTagClick = useCallback( - (el: string): void => { - filterDispatcher({ type: 'remove programme', program: el }); - }, [filterDispatcher]); - - const handleYearClick = useCallback((year: DroplistOption): void => { - filterDispatcher({ type: 'remove year', festival: year }); - }, [filterDispatcher]); - - return ( -
      - {filterState.festival.map((year) => ( -
    • handleYearClick(year)} className={styles.programme} key={year.value}> - -
    • - ))} - {selectedProgrammes.map(({ pk, name }) => ( -
    • handleTagClick(String(pk))} className={styles.programme} key={pk}> - -
    • - ))} -
    - ); -}; - -export default LibraryTagsMobile; diff --git a/src/components/lightbox-image-slider/index.ts b/src/components/lightbox-image-slider/index.ts deleted file mode 100644 index 9a6beacaf..000000000 --- a/src/components/lightbox-image-slider/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './lightbox-image-slider'; diff --git a/src/components/lightbox-image-slider/lightbox-image-slider.module.css b/src/components/lightbox-image-slider/lightbox-image-slider.module.css deleted file mode 100644 index cf4228545..000000000 --- a/src/components/lightbox-image-slider/lightbox-image-slider.module.css +++ /dev/null @@ -1,99 +0,0 @@ -.container { - position: relative; - box-sizing: border-box; - padding: 0 100px; - - @media (max-width: $tablet-portrait) { - padding: 0; - } -} - -.slide { - position: relative; - - &::before { - display: block; - width: 100%; - padding-top: calc((5 / 7) * 100%); - content: ""; - } -} - -.image { - width: 100%; - height: auto; - max-height: 100%; - object-fit: cover; -} - -.close { - position: absolute; - top: 16px; - right: 16px; - width: 42px; - height: 42px; -} - -.closeButton { - width: 100%; - height: 100%; - - @mixin sliderButtonAnimationBase; -} - -.arrow { - position: absolute; - top: 50%; - width: 48px; - height: 48px; - padding: 9px; - background-color: var(--beige); - border-radius: 50%; - transform: translateY(-50%); - - @media (max-width: $tablet-portrait) { - z-index: 10; - top: auto; - right: 16px; - width: 42px; - height: 42px; - padding: 0; - background-color: unset; - border-radius: 0; - transform: translateY(0); - } -} - -.arrowLeft { - left: 0; - - @media (max-width: $tablet-portrait) { - bottom: 66px; - left: auto; - } -} - -.arrowRight { - right: 0; - - @media (max-width: $tablet-portrait) { - right: 16px; - bottom: 16px; - } -} - -.arrowButton { - position: relative; - width: 100%; - height: 100%; - - @mixin sliderButtonAnimationBase; - @mixin sliderButtonAnimationOutline; - - @media (max-width: $tablet-portrait) { - &::before, - &::after { - display: none; - } - } -} diff --git a/src/components/lightbox-image-slider/lightbox-image-slider.tsx b/src/components/lightbox-image-slider/lightbox-image-slider.tsx deleted file mode 100644 index 92eb98407..000000000 --- a/src/components/lightbox-image-slider/lightbox-image-slider.tsx +++ /dev/null @@ -1,79 +0,0 @@ -import { Children } from 'react'; -import classNames from 'classnames/bind'; -import { useKeenSlider } from 'keen-slider/react'; - -import { SliderButton } from 'components/ui/slider-button'; -import { IconButton } from 'components/ui/icon-button'; -import { Icon } from 'components/ui/icon'; - -import styles from './lightbox-image-slider.module.css'; - -const cx = classNames.bind(styles); - -interface ILightboxImageSliderProps { - className?: string; - initialSlideIndex?: number; - children: React.ReactNode; - onClose?: () => void; -} - -export const LightboxImageSlider = (props: ILightboxImageSliderProps): JSX.Element => { - const { - className = '', - initialSlideIndex = 0, - children, - onClose - } = props; - - const [sliderRef, slider] = useKeenSlider({ - loop: true, - spacing: 15, - initial: initialSlideIndex, - }); - - return ( -
    - {slider && ( - <> -
    - -
    -
    - -
    - - )} -
    - {Children.map(children, (slide) => ( -
    - {slide} -
    - ))} - {slider && ( -
    - } - onClick={onClose} - /> -
    - )} -
    -
    - ); -}; diff --git a/src/components/lightbox/index.ts b/src/components/lightbox/index.ts deleted file mode 100644 index a29c50680..000000000 --- a/src/components/lightbox/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './lightbox'; diff --git a/src/components/lightbox/lightbox.module.css b/src/components/lightbox/lightbox.module.css deleted file mode 100644 index 3976487db..000000000 --- a/src/components/lightbox/lightbox.module.css +++ /dev/null @@ -1,3 +0,0 @@ -.slider { - width: min(135vh, 976px); -} diff --git a/src/components/lightbox/lightbox.stories.tsx b/src/components/lightbox/lightbox.stories.tsx deleted file mode 100644 index 38617afea..000000000 --- a/src/components/lightbox/lightbox.stories.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { useState } from 'react'; -import { Story, ComponentMeta } from '@storybook/react'; -import Image from 'next/image'; - -import { Lightbox } from './lightbox'; - -const fakeImages = Array.from({ length: 8 }, () => ({ - image: 'https://source.unsplash.com/random', -})); - -export default { - title: 'Components/Lightbox', - component: Lightbox, -} as ComponentMeta; - -const Template: Story = () => { - const [isOpen, setIsOpen] = useState(true); - - const toggleVisibility = () => setIsOpen(!isOpen); - - return ( - <> - - - {fakeImages.map((image, index) => ( - {`Изображениe - ))} - - - ); -}; - -export const Default = Template.bind({}); -Default.args = {}; diff --git a/src/components/lightbox/lightbox.tsx b/src/components/lightbox/lightbox.tsx deleted file mode 100644 index a663a65c9..000000000 --- a/src/components/lightbox/lightbox.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import classNames from 'classnames/bind'; - -import { Modal } from 'components/ui/modal'; -import { LightboxImageSlider } from 'components/lightbox-image-slider'; - -import styles from './lightbox.module.css'; - -const cx = classNames.bind(styles); - -interface ILightboxProps { - isOpen: boolean; - initialSlideIndex: number; - children: React.ReactNode; - onClose: () => void; -} -export const Lightbox = (props: ILightboxProps): JSX.Element => { - const { - isOpen, - initialSlideIndex, - children, - onClose - } = props; - - return ( - - - {children} - - - ); -}; diff --git a/src/components/logotype/logotype.tsx b/src/components/logotype/logotype.tsx index 30d4ae9f8..1bc9a76f8 100644 --- a/src/components/logotype/logotype.tsx +++ b/src/components/logotype/logotype.tsx @@ -1,16 +1,19 @@ -import { FC } from 'react'; -import Link, { LinkProps } from 'next/link'; import classNames from 'classnames/bind'; +import Link from 'next/link'; import CompactLogo from 'shared/images/compact-logo.svg'; import FullLogo from 'shared/images/full-logo.svg'; + +import type { LinkProps } from 'next/link'; +import type { FC } from 'react'; + import styles from './logotype.module.css'; interface ILogotypeProps extends Pick { - title?: string, - className?: string, - full?: boolean, - onClick?: React.MouseEventHandler, + title?: string + className?: string + full?: boolean + onClick?: React.MouseEventHandler } const cx = classNames.bind(styles); diff --git a/src/components/main-header/index.ts b/src/components/main-header/index.ts new file mode 100644 index 000000000..3c0fdb1f3 --- /dev/null +++ b/src/components/main-header/index.ts @@ -0,0 +1 @@ +export * from './main-header'; diff --git a/src/components/main-header/main-header.module.css b/src/components/main-header/main-header.module.css new file mode 100644 index 000000000..3f2d9582c --- /dev/null +++ b/src/components/main-header/main-header.module.css @@ -0,0 +1,97 @@ +.root { + display: flex; + min-height: 100vh; + flex-direction: column; + scroll-snap-align: start; + + @media (max-width: $tablet-portrait) { + min-height: 0; + } +} + +.cover { + position: relative; + min-height: 280px; + flex: 2 1 40vh; + + @media (max-width: $tablet-portrait) { + height: 360px; + } +} + +.title { + @mixin headline; + @mixin headline1; + + margin-bottom: 16px; + color: var(--coal); + + @media (max-width: $tablet-portrait) { + @mixin headline4; + + margin-bottom: 12px; + } +} + +.content { + display: flex; + flex: 1 0; + flex-direction: column; + justify-content: center; + padding: 66px 80px 66px 460px; + + @media (max-width: $tablet-portrait) { + padding: 32px 24px; + } +} + +.actions { + margin-top: 16px; +} + +.action { + min-width: 360px; + + @media (max-width: $tablet-portrait) { + min-width: 244px; + } +} + +.navbar { + flex: 0 0; + + @media (max-width: $tablet-portrait) { + order: -1; + } + + &.pinned { + position: fixed; + z-index: 2; + top: 0; + left: 0; + width: 100%; + border-bottom: 1px solid var(--coal); + animation: navbar .1s linear; + background-color: var(--beige); + will-change: transform; + + @media (max-width: $tablet-portrait) { + position: static; + border: 0; + } + } + + &.pinned + .content { + margin-top: var(--height-navbar-tablet-portrait); + } +} + +@keyframes navbar { + from { + transform: translateY(-100%); + } + + to { + transform: none; + } +} diff --git a/src/components/main-header/main-header.tsx b/src/components/main-header/main-header.tsx new file mode 100644 index 000000000..a6daeac64 --- /dev/null +++ b/src/components/main-header/main-header.tsx @@ -0,0 +1,129 @@ +import classNames from 'classnames/bind'; +import Image from 'next/image'; +import { useRouter } from 'next/router'; + +import { DonationLink } from 'components/donation-link'; +import { Logotype } from 'components/logotype'; +import { Navbar } from 'components/navbar'; +import { Button } from 'components/ui/button2'; +import { Icon } from 'components/ui/icon'; +import { Menu } from 'components/ui/menu'; +import { donationPath } from 'shared/constants/donation-path'; +import { mainNavigationItems } from 'shared/constants/main-navigation-items'; +import { socialLinkItems } from 'shared/constants/social-link-items'; +import { useIntersectionObserver } from 'shared/hooks/use-intersection-observer'; + +import styles from './main-header.module.css'; + +interface MainHeaderProps { + className?: string + cover: Url + title: string + actionText: string + actionUrl: string +} + +const cx = classNames.bind(styles); + +export const MainHeader: React.VFC = (props) => { + const { + className, + cover, + title, + actionUrl, + actionText, + } = props; + + const router = useRouter(); + const [containerElRef, isContainerElInViewport] = useIntersectionObserver({ threshold: 0.1 }); + + return ( +
    +
    + +
    +
    + + + + + + + + {mainNavigationItems + .filter(item => !item.mobileOnly) + .map((item) => ( + + {item.text} + + ))} + + + + + {socialLinkItems.map((item) => ( + + {item.text} + + ))} + + + + + + + +
    +
    +

    + {title} +

    +
    + +
    +
    +
    + ); +}; diff --git a/src/components/main-layout/content/index.ts b/src/components/main-layout/content/index.ts new file mode 100644 index 000000000..a4624dba4 --- /dev/null +++ b/src/components/main-layout/content/index.ts @@ -0,0 +1 @@ +export * from './main-layout-content'; diff --git a/src/components/homepage-layout/content/homepage-layout-content.module.css b/src/components/main-layout/content/main-layout-content.module.css similarity index 100% rename from src/components/homepage-layout/content/homepage-layout-content.module.css rename to src/components/main-layout/content/main-layout-content.module.css diff --git a/src/components/homepage-layout/events/homepage-layout-events.tsx b/src/components/main-layout/content/main-layout-content.tsx similarity index 67% rename from src/components/homepage-layout/events/homepage-layout-events.tsx rename to src/components/main-layout/content/main-layout-content.tsx index 835b8b854..9fe4144f7 100644 --- a/src/components/homepage-layout/events/homepage-layout-events.tsx +++ b/src/components/main-layout/content/main-layout-content.tsx @@ -2,11 +2,11 @@ import classNames from 'classnames/bind'; import type { FC } from 'react'; -import styles from './homepage-layout-events.module.css'; +import styles from './main-layout-content.module.css'; const cx = classNames.bind(styles); -export const HomepageLayoutEvents: FC = (props) => { +export const MainLayoutContent: FC = (props) => { const { children } = props; return ( diff --git a/src/components/main-layout/events/index.ts b/src/components/main-layout/events/index.ts new file mode 100644 index 000000000..49096bd73 --- /dev/null +++ b/src/components/main-layout/events/index.ts @@ -0,0 +1 @@ +export * from './main-layout-events'; diff --git a/src/components/homepage-layout/events/homepage-layout-events.module.css b/src/components/main-layout/events/main-layout-events.module.css similarity index 100% rename from src/components/homepage-layout/events/homepage-layout-events.module.css rename to src/components/main-layout/events/main-layout-events.module.css diff --git a/src/components/homepage-layout/content/homepage-layout-content.tsx b/src/components/main-layout/events/main-layout-events.tsx similarity index 66% rename from src/components/homepage-layout/content/homepage-layout-content.tsx rename to src/components/main-layout/events/main-layout-events.tsx index d437ab48e..7b1f441b7 100644 --- a/src/components/homepage-layout/content/homepage-layout-content.tsx +++ b/src/components/main-layout/events/main-layout-events.tsx @@ -2,11 +2,11 @@ import classNames from 'classnames/bind'; import type { FC } from 'react'; -import styles from './homepage-layout-content.module.css'; +import styles from './main-layout-events.module.css'; const cx = classNames.bind(styles); -export const HomepageLayoutContent: FC = (props) => { +export const MainLayoutEvents: FC = (props) => { const { children } = props; return ( diff --git a/src/components/main-layout/feed/index.ts b/src/components/main-layout/feed/index.ts new file mode 100644 index 000000000..dfcd406de --- /dev/null +++ b/src/components/main-layout/feed/index.ts @@ -0,0 +1 @@ +export * from './main-layout-feed'; diff --git a/src/components/homepage-layout/feed/homepage-layout-feed.module.css b/src/components/main-layout/feed/main-layout-feed.module.css similarity index 61% rename from src/components/homepage-layout/feed/homepage-layout-feed.module.css rename to src/components/main-layout/feed/main-layout-feed.module.css index a6a760c88..d901c81bd 100644 --- a/src/components/homepage-layout/feed/homepage-layout-feed.module.css +++ b/src/components/main-layout/feed/main-layout-feed.module.css @@ -1,18 +1,27 @@ -@import '../homepage-layout.vars.module.css'; +@import url("../main-layout.vars.module.css"); + +@value tablet-portrait from "shared/styles/media.module.css"; .root { position: sticky; z-index: 1; - top: 0; + top: var(--height-navbar-tablet-portrait); width: $aside-visible-width; - height: 100vh; + height: calc(100vh - var(--height-navbar-tablet-portrait)); background-color: var(--light-green); grid-area: feed; -ms-overflow-style: none; overflow-x: hidden; scrollbar-width: none; - transition: margin, width; transition-duration: .2s; + transition-property: margin, width; + transition-timing-function: cubic-bezier(.6, 0, .5, 1); + + @media tablet-portrait { + position: static; + width: initial; + height: initial; + } @media (min-width: $tablet-portrait) { &:hover { @@ -21,12 +30,6 @@ } } - @media (max-width: $tablet-portrait) { - position: static; - width: initial; - height: initial; - } - &::-webkit-scrollbar { display: none; } @@ -36,7 +39,7 @@ width: $aside-width; overflow-y: auto; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { width: initial; } } diff --git a/src/components/homepage-layout/feed/homepage-layout-feed.tsx b/src/components/main-layout/feed/main-layout-feed.tsx similarity index 72% rename from src/components/homepage-layout/feed/homepage-layout-feed.tsx rename to src/components/main-layout/feed/main-layout-feed.tsx index e4efe42f1..75f09ce5b 100644 --- a/src/components/homepage-layout/feed/homepage-layout-feed.tsx +++ b/src/components/main-layout/feed/main-layout-feed.tsx @@ -2,11 +2,11 @@ import classNames from 'classnames/bind'; import type { FC } from 'react'; -import styles from './homepage-layout-feed.module.css'; +import styles from './main-layout-feed.module.css'; const cx = classNames.bind(styles); -export const HomepageLayoutFeed: FC = (props) => { +export const MainLayoutFeed: FC = (props) => { const { children } = props; return ( diff --git a/src/components/main-layout/index.ts b/src/components/main-layout/index.ts new file mode 100644 index 000000000..7813c9d2b --- /dev/null +++ b/src/components/main-layout/index.ts @@ -0,0 +1 @@ +export * from './main-layout'; diff --git a/src/components/main-layout/main-layout.module.css b/src/components/main-layout/main-layout.module.css new file mode 100644 index 000000000..b16a18db3 --- /dev/null +++ b/src/components/main-layout/main-layout.module.css @@ -0,0 +1,12 @@ +@import url("./main-layout.vars.module.css"); + +.root { + display: grid; + grid-template: + "events feed" auto + "content feed" 1fr / 1fr auto; + + @media (max-width: $tablet-portrait) { + display: block; + } +} diff --git a/src/components/main-layout/main-layout.tsx b/src/components/main-layout/main-layout.tsx new file mode 100644 index 000000000..d83b3ebc4 --- /dev/null +++ b/src/components/main-layout/main-layout.tsx @@ -0,0 +1,29 @@ +import classNames from 'classnames/bind'; + +import { MainLayoutContent } from './content'; +import { MainLayoutEvents } from './events'; +import { MainLayoutFeed } from './feed'; + +import type { FC } from 'react'; + +import styles from './main-layout.module.css'; + +const cx = classNames.bind(styles); + +const Component: FC = (props) => { + const { children } = props; + + return ( +
    + {children} +
    + ); +}; + +Component.displayName = 'MainLayout'; + +export const MainLayout = Object.assign(Component, { + Feed: MainLayoutFeed, + Content: MainLayoutContent, + Events: MainLayoutEvents, +}); diff --git a/src/components/homepage-layout/homepage-layout.vars.module.css b/src/components/main-layout/main-layout.vars.module.css similarity index 100% rename from src/components/homepage-layout/homepage-layout.vars.module.css rename to src/components/main-layout/main-layout.vars.module.css diff --git a/src/components/media-review-card/media-review-card.tsx b/src/components/media-review-card/media-review-card.tsx index 871533c9a..dc16f627d 100644 --- a/src/components/media-review-card/media-review-card.tsx +++ b/src/components/media-review-card/media-review-card.tsx @@ -1,16 +1,16 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; -import { InfoLink } from 'components/ui/info-link'; +import { Button } from 'components/ui/button2'; +import { Icon } from 'components/ui/icon'; -import type { Url } from 'shared/types'; +import type { FC } from 'react'; import styles from './media-review-card.module.css'; interface MediaReviewCardProps { - logo?: Url, - text: string, - href?: Url, + logo?: Url + text: string + href?: Url } const cx = classNames.bind(styles); @@ -36,17 +36,23 @@ export const MediaReviewCard: FC = (props) => {

    {href && (
    - + )} + iconPosition='left' className={cx('action')} - /> + upperCase + > + {'Читать полностью'} +
    )} diff --git a/src/components/mission-section/mission-section.tsx b/src/components/mission-section/mission-section.tsx index e4142fa1f..46387be37 100644 --- a/src/components/mission-section/mission-section.tsx +++ b/src/components/mission-section/mission-section.tsx @@ -1,23 +1,24 @@ -import { FC } from 'react'; import cn from 'classnames'; import TextItem from '../mission-text-item'; +import type { FC } from 'react'; + import style from './mission-section.module.css'; interface ITextItemData { - id: number; - number: string; - title: string; - text: Array; + id: number + number: string + title: string + text: Array } export interface TextSectionData { - id: number; - number: string; - title: string; - image: string; - content: Array; + id: number + number: string + title: string + image: string + content: Array } interface TextSectionProps { diff --git a/src/components/mission-text-item/mission-text-item.tsx b/src/components/mission-text-item/mission-text-item.tsx index c43dce98e..53f52b1bf 100644 --- a/src/components/mission-text-item/mission-text-item.tsx +++ b/src/components/mission-text-item/mission-text-item.tsx @@ -1,6 +1,7 @@ -import { FC, ReactNode } from 'react'; import cn from 'classnames'; +import type { FC, ReactNode } from 'react'; + import style from './mission-text-item.module.css'; interface TextItemProps { diff --git a/src/components/navbar/actions/index.ts b/src/components/navbar/actions/index.ts deleted file mode 100644 index 43b4e756b..000000000 --- a/src/components/navbar/actions/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './navbar-actions'; diff --git a/src/components/navbar/actions/navbar-actions.module.css b/src/components/navbar/actions/navbar-actions.module.css deleted file mode 100644 index 3dc58a690..000000000 --- a/src/components/navbar/actions/navbar-actions.module.css +++ /dev/null @@ -1,10 +0,0 @@ -.actions { - display: flex; - height: 61px; - flex-grow: 1; - place-content: stretch; - - @media (max-width: $tablet-portrait) { - display: none; - } -} diff --git a/src/components/navbar/actions/navbar-actions.tsx b/src/components/navbar/actions/navbar-actions.tsx deleted file mode 100644 index de3d25d10..000000000 --- a/src/components/navbar/actions/navbar-actions.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { FC } from 'react'; -import classNames from 'classnames/bind'; - -import style from './navbar-actions.module.css'; - -const cx = classNames.bind(style); - -export const NavbarActions: FC = (props) => { - const { - children, - } = props; - - return ( -
    - {children} -
    - ); -}; diff --git a/src/components/navbar/index.ts b/src/components/navbar/index.ts index f5899d036..8f8d8294a 100644 --- a/src/components/navbar/index.ts +++ b/src/components/navbar/index.ts @@ -1 +1,10 @@ -export * from './navbar'; +import { Navbar as Component } from './navbar'; +import { NavbarActionsSlot } from './navbar-actions-slot'; +import { NavbarSlot } from './navbar-slot'; + +export const Navbar = Object.assign(Component, { + Slot: NavbarSlot, + ActionsSlot: NavbarActionsSlot, +}); + +export type { NavbarProps } from './navbar'; diff --git a/src/components/navbar/logotype/index.ts b/src/components/navbar/logotype/index.ts deleted file mode 100644 index fc3634e91..000000000 --- a/src/components/navbar/logotype/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './navbar-logotype'; diff --git a/src/components/navbar/logotype/navbar-logotype.module.css b/src/components/navbar/logotype/navbar-logotype.module.css deleted file mode 100644 index 186c4eb3e..000000000 --- a/src/components/navbar/logotype/navbar-logotype.module.css +++ /dev/null @@ -1,10 +0,0 @@ -.logotype { - display: flex; - align-self: center; - margin-right: 25px; - place-content: center; - - @media (max-width: $tablet-portrait) { - margin-right: 0; - } -} diff --git a/src/components/navbar/logotype/navbar-logotype.tsx b/src/components/navbar/logotype/navbar-logotype.tsx deleted file mode 100644 index b7de9223d..000000000 --- a/src/components/navbar/logotype/navbar-logotype.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { FC } from 'react'; -import classNames from 'classnames/bind'; - -import styles from './navbar-logotype.module.css'; - -const cx = classNames.bind(styles); - -export const NavbarLogotype: FC = (props) => { - const { children } = props; - - return ( -
    - {children} -
    - ); -}; diff --git a/src/components/navbar/navbar-actions-slot.tsx b/src/components/navbar/navbar-actions-slot.tsx new file mode 100644 index 000000000..5c19bf069 --- /dev/null +++ b/src/components/navbar/navbar-actions-slot.tsx @@ -0,0 +1,24 @@ +import classNames from 'classnames/bind'; + +import style from './navbar.module.css'; + +interface NavbarActionsSlotProps { + type?: 'regular' | 'main-navigation' + as?: React.ElementType +} + +const cx = classNames.bind(style); + +export const NavbarActionsSlot: React.FC = (props) => { + const { + type = 'regular', + as: Tag = 'div', + children, + } = props; + + return ( + + {children} + + ); +}; diff --git a/src/components/navbar/navbar-slot.tsx b/src/components/navbar/navbar-slot.tsx new file mode 100644 index 000000000..b93979ccf --- /dev/null +++ b/src/components/navbar/navbar-slot.tsx @@ -0,0 +1,28 @@ +import classNames from 'classnames/bind'; + +import style from './navbar.module.css'; + +const cx = classNames.bind(style); + +enum Area { + Actions = 'actions', + Logotype = 'logotype', + Addon = 'addon', +} + +interface NavbarSlotProps { + area: `${Area}` +} + +export const NavbarSlot: React.FC = (props) => { + const { + area, + children, + } = props; + + return ( +
    + {children} +
    + ); +}; diff --git a/src/components/navbar/navbar.module.css b/src/components/navbar/navbar.module.css index a6ac05e8c..68fd45900 100644 --- a/src/components/navbar/navbar.module.css +++ b/src/components/navbar/navbar.module.css @@ -1,21 +1,69 @@ -@value section, primary from 'section/navbar-section.module.css'; -@value logotype from 'logotype/navbar-logotype.module.css'; +@value tablet-portrait from "shared/styles/media.module.css"; .common { display: flex; align-items: flex-start; - border-bottom: 1px solid var(--coal); +} + +.logotype { + display: flex; + align-self: center; + margin-right: 25px; + place-content: center; + + @media tablet-portrait { + margin-right: 18px; + + &:last-child { + margin-right: 0; + } + } +} + +.actions { + display: flex; + height: 59px; + flex-grow: 1; + place-content: stretch; + + @media tablet-portrait { + display: none; + } +} + +.actions-slot { + position: relative; + display: flex; + align-items: center; + padding: 0 8px; - @media (max-width: $tablet-portrait) { - border: 0; + &:not(:last-child)::after { + position: absolute; + right: 0; + bottom: 0; + display: block; + width: 1px; + height: 80%; + background-color: var(--coal); + content: ""; } } -.normal { +.action-slot-regular { + composes: actions-slot; +} + +.action-slot-main-navigation { + composes: actions-slot; + flex-grow: 1; + padding-right: 30px; +} + +.regular { composes: common; padding-left: 30px; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { padding: 32px 24px 24px; } } @@ -25,34 +73,34 @@ padding-left: 25px; border: 0; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { padding: 24px; } - .section { + .actions-slot-regular { &:not(:last-child)::after { bottom: 10px; - height: 65%; + height: 40px; } } - .primary { + .action-slot-main-navigation { padding-right: 16px; } .logotype { - padding-top: 19px; + padding-top: 20px; margin-right: 50px; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { padding-top: 0; margin-right: 0; } } } -.brand { - @media (max-width: $tablet-portrait) { +.common.brand { + @media tablet-portrait { background-color: var(--light-green); } } diff --git a/src/components/navbar/navbar.tsx b/src/components/navbar/navbar.tsx index 9834735e6..a1ed20b9d 100644 --- a/src/components/navbar/navbar.tsx +++ b/src/components/navbar/navbar.tsx @@ -1,23 +1,17 @@ -import { ReactNode } from 'react'; import classNames from 'classnames/bind'; -import { NavbarSection } from './section'; -import { NavbarLogotype } from './logotype'; -import { NavbarActions } from './actions'; - import styles from './navbar.module.css'; export interface NavbarProps { - view?: 'normal' | 'expanded', - colors?: 'default' | 'brand', - children?: ReactNode, + view?: 'regular' | 'expanded' + colors?: 'default' | 'brand' } const cx = classNames.bind(styles); -export const Navbar = (props: NavbarProps) => { +export const Navbar = (props: React.PropsWithChildren) => { const { - view = 'normal', + view = 'regular', colors = 'default', children, } = props; @@ -32,7 +26,3 @@ export const Navbar = (props: NavbarProps) => { ); }; - -Navbar.Section = NavbarSection; -Navbar.Logotype = NavbarLogotype; -Navbar.Actions = NavbarActions; diff --git a/src/components/navbar/section/index.ts b/src/components/navbar/section/index.ts deleted file mode 100644 index b615a9e2e..000000000 --- a/src/components/navbar/section/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './navbar-section'; diff --git a/src/components/navbar/section/navbar-section.module.css b/src/components/navbar/section/navbar-section.module.css deleted file mode 100644 index c79f4b501..000000000 --- a/src/components/navbar/section/navbar-section.module.css +++ /dev/null @@ -1,22 +0,0 @@ -.section { - position: relative; - display: flex; - align-items: center; - padding: 0 9px; - - &:not(:last-child)::after { - position: absolute; - right: 0; - bottom: 0; - display: block; - width: 1px; - height: 80%; - background-color: var(--coal); - content: ''; - } -} - -.primary { - flex-grow: 1; - padding-right: 31px; -} diff --git a/src/components/navbar/section/navbar-section.tsx b/src/components/navbar/section/navbar-section.tsx deleted file mode 100644 index c79c34704..000000000 --- a/src/components/navbar/section/navbar-section.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { FC } from 'react'; -import classNames from 'classnames/bind'; - -import style from './navbar-section.module.css'; - -interface INavbarSectionProps { - primary?: boolean; -} - -const cx = classNames.bind(style); - -export const NavbarSection: FC = (props) => { - const { - primary, - children, - } = props; - - const Tag = primary ? 'nav' : 'div'; - - return ( - - {children} - - ); -}; diff --git a/src/components/news-card/news-card.module.css b/src/components/news-card/news-card.module.css index 8e9ce3625..794b87417 100644 --- a/src/components/news-card/news-card.module.css +++ b/src/components/news-card/news-card.module.css @@ -35,7 +35,7 @@ bottom: 0; left: 0; display: block; - content: ''; + content: ""; } } diff --git a/src/components/news-card/news-card.tsx b/src/components/news-card/news-card.tsx index 39e743e97..6beafe874 100644 --- a/src/components/news-card/news-card.tsx +++ b/src/components/news-card/news-card.tsx @@ -1,6 +1,8 @@ -import { FC } from 'react'; -import Link, { LinkProps } from 'next/link'; import classNames from 'classnames/bind'; +import Link from 'next/link'; + +import type { LinkProps } from 'next/link'; +import type { FC } from 'react'; import styles from './news-card.module.css'; diff --git a/src/components/news-layout/news-layout.tsx b/src/components/news-layout/news-layout.tsx index 85bbb12b9..775991793 100644 --- a/src/components/news-layout/news-layout.tsx +++ b/src/components/news-layout/news-layout.tsx @@ -1,6 +1,7 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './news-layout.module.css'; const cx = classNames.bind(styles); diff --git a/src/components/news-list/item/news-list-item.tsx b/src/components/news-list/item/news-list-item.tsx index 330b21781..267b74fea 100644 --- a/src/components/news-list/item/news-list-item.tsx +++ b/src/components/news-list/item/news-list-item.tsx @@ -1,5 +1,7 @@ -import { forwardRef, ReactNode } from 'react'; import classNames from 'classnames/bind'; +import { forwardRef } from 'react'; + +import type { ReactNode } from 'react'; import styles from './news-list-item.module.css'; diff --git a/src/components/news-list/news-list.tsx b/src/components/news-list/news-list.tsx index bdce01d79..321e2fb2e 100644 --- a/src/components/news-list/news-list.tsx +++ b/src/components/news-list/news-list.tsx @@ -1,4 +1,3 @@ -import { ReactNode } from 'react'; import classNames from 'classnames/bind'; import { NewsListItem } from './item'; @@ -6,16 +5,12 @@ import { NewsListItem } from './item'; import styles from './news-list.module.css'; interface NewsListProps { - children: ReactNode | ReactNode[] className?: string - hasMoreEntries?: boolean - pending?:boolean - onShouldLoadEntries?: () => void } const cx = classNames.bind(styles); -const Component = (props: NewsListProps) => { +const Component: React.FC = (props) => { const { children, className, diff --git a/src/components/note/index.ts b/src/components/note/index.ts new file mode 100644 index 000000000..1b3d51723 --- /dev/null +++ b/src/components/note/index.ts @@ -0,0 +1 @@ +export * from './note'; diff --git a/src/components/note/note.module.css b/src/components/note/note.module.css new file mode 100644 index 000000000..5c629078f --- /dev/null +++ b/src/components/note/note.module.css @@ -0,0 +1,11 @@ +.root { + display: flex; + flex-direction: column; + padding-left: 26px; +} + +.asterisk { + width: 24px; + height: 24px; + margin: 0 0 2px -26px; +} diff --git a/src/components/note/note.tsx b/src/components/note/note.tsx new file mode 100644 index 000000000..b0f4c3036 --- /dev/null +++ b/src/components/note/note.tsx @@ -0,0 +1,21 @@ +import classNames from 'classnames/bind'; + +import { Icon } from 'components/ui/icon'; + +import styles from './note.module.css'; + +const cx = classNames.bind(styles); + +export const Note: React.FC = (props) => { + const { children } = props; + + return ( +
    + + {children} +
    + ); +}; diff --git a/src/components/overlay-nav/actions/overlay-nav-actions.tsx b/src/components/overlay-nav/actions/overlay-nav-actions.tsx index 95613a9b9..d19c5a3a8 100644 --- a/src/components/overlay-nav/actions/overlay-nav-actions.tsx +++ b/src/components/overlay-nav/actions/overlay-nav-actions.tsx @@ -5,7 +5,7 @@ import styles from './overlay-nav-actions.module.css'; const cx = classNames.bind(styles); interface IOverlayNavActionsProps { - children: React.ReactNode; + children: React.ReactNode } export const OverlayNavActions = (props: IOverlayNavActionsProps): JSX.Element => { diff --git a/src/components/overlay-nav/copyright/overlay-nav-copyright.tsx b/src/components/overlay-nav/copyright/overlay-nav-copyright.tsx index 747e24bd2..477e1b310 100644 --- a/src/components/overlay-nav/copyright/overlay-nav-copyright.tsx +++ b/src/components/overlay-nav/copyright/overlay-nav-copyright.tsx @@ -1,4 +1,4 @@ -import { FC } from 'react'; +import type { FC } from 'react'; export const OverlayNavCopyright: FC = (props) => { const { children } = props; diff --git a/src/components/overlay-nav/logotype/overlay-nav-logotype.tsx b/src/components/overlay-nav/logotype/overlay-nav-logotype.tsx index 77ec3c632..0b6f62c0a 100644 --- a/src/components/overlay-nav/logotype/overlay-nav-logotype.tsx +++ b/src/components/overlay-nav/logotype/overlay-nav-logotype.tsx @@ -5,7 +5,7 @@ import styles from './overlay-nav-logotype.module.css'; const cx = classNames.bind(styles); interface IOverlayNavLogotypeProps { - children: React.ReactNode; + children: React.ReactNode } export const OverlayNavLogotype = (props: IOverlayNavLogotypeProps): JSX.Element => { diff --git a/src/components/overlay-nav/menu/overlay-nav-menu.tsx b/src/components/overlay-nav/menu/overlay-nav-menu.tsx index 9395f479e..44941e543 100644 --- a/src/components/overlay-nav/menu/overlay-nav-menu.tsx +++ b/src/components/overlay-nav/menu/overlay-nav-menu.tsx @@ -5,7 +5,7 @@ import styles from './overlay-nav-menu.module.css'; const cx = classNames.bind(styles); interface IOverlayNavMenuProps { - children: React.ReactNode; + children: React.ReactNode } export const OverlayNavMenu = (props: IOverlayNavMenuProps): JSX.Element => { diff --git a/src/components/overlay-nav/overlay-nav.tsx b/src/components/overlay-nav/overlay-nav.tsx index 4ccbad3a3..1db90f887 100644 --- a/src/components/overlay-nav/overlay-nav.tsx +++ b/src/components/overlay-nav/overlay-nav.tsx @@ -1,17 +1,17 @@ import classNames from 'classnames/bind'; +import { OverlayNavActions } from './actions'; +import { OverlayNavCopyright } from './copyright'; import { OverlayNavLogotype } from './logotype'; import { OverlayNavMenu } from './menu'; -import { OverlayNavActions } from './actions'; import { OverlayNavSocials } from './socials'; -import { OverlayNavCopyright } from './copyright'; import styles from './overlay-nav.module.css'; const cx = classNames.bind(styles); interface IOverlayNavProps { - children: React.ReactNode; + children: React.ReactNode } export const OverlayNav = (props: IOverlayNavProps): JSX.Element => { diff --git a/src/components/overlay-nav/socials/overlay-nav-socials.tsx b/src/components/overlay-nav/socials/overlay-nav-socials.tsx index c1c621845..011f5dc64 100644 --- a/src/components/overlay-nav/socials/overlay-nav-socials.tsx +++ b/src/components/overlay-nav/socials/overlay-nav-socials.tsx @@ -5,7 +5,7 @@ import styles from './overlay-nav-socials.module.css'; const cx = classNames.bind(styles); interface IOverlayNavSocialsProps { - children: React.ReactNode; + children: React.ReactNode } export const OverlayNavSocials = (props: IOverlayNavSocialsProps): JSX.Element => { diff --git a/src/components/page-title/page-title.tsx b/src/components/page-title/page-title.tsx index 9aeb9ad26..101d71d51 100644 --- a/src/components/page-title/page-title.tsx +++ b/src/components/page-title/page-title.tsx @@ -1,6 +1,7 @@ -import { FC, HTMLAttributes } from 'react'; import classNames from 'classnames/bind'; +import type { FC, HTMLAttributes } from 'react'; + import styles from './page-title.module.css'; const cx = classNames.bind(styles); diff --git a/src/components/page-transition/page-transition.module.css b/src/components/page-transition/page-transition.module.css index f7a702db4..163d39a46 100644 --- a/src/components/page-transition/page-transition.module.css +++ b/src/components/page-transition/page-transition.module.css @@ -9,16 +9,16 @@ .rightToLeft { @media (max-width: $tablet-portrait) { - animation: rightToLeft 500ms 1 linear; + animation: right-to-left 500ms 1 linear; + } +} - @keyframes rightToLeft { - 0% { - transform: translate(var(--page-content-min-width), 0); - } +@keyframes right-to-left { + 0% { + transform: translate(var(--page-content-min-width), 0); + } - 100% { - transform: translate(0, 0); - } - } + 100% { + transform: translate(0, 0); } } diff --git a/src/components/page-transition/page-transition.tsx b/src/components/page-transition/page-transition.tsx index b27169b5e..87005f414 100644 --- a/src/components/page-transition/page-transition.tsx +++ b/src/components/page-transition/page-transition.tsx @@ -5,8 +5,8 @@ import styles from './page-transition.module.css'; const cx = classNames.bind(styles); interface IPageTransitionProps { - children: React.ReactNode; - type: string; + children: React.ReactNode + type: string } export const PageTransition = (props: IPageTransitionProps): JSX.Element => { diff --git a/src/components/page/breadcrumbs/page-breadcrumbs.tsx b/src/components/page/breadcrumbs/page-breadcrumbs.tsx index bb3cddcc1..cebf99337 100644 --- a/src/components/page/breadcrumbs/page-breadcrumbs.tsx +++ b/src/components/page/breadcrumbs/page-breadcrumbs.tsx @@ -1,10 +1,11 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './page-breadcrumbs.module.css'; interface IBreadcrumbsProps { - className?: string, + className?: string } const cx = classNames.bind(styles); diff --git a/src/components/page/burger-button/page-burger-button.tsx b/src/components/page/burger-button/page-burger-button.tsx index e9f650d0f..1d7f99aaf 100644 --- a/src/components/page/burger-button/page-burger-button.tsx +++ b/src/components/page/burger-button/page-burger-button.tsx @@ -5,7 +5,7 @@ import styles from './page-burger-button.module.css'; const cx = classNames.bind(styles); interface IPageBurgerButtonProps { - children: React.ReactNode; + children: React.ReactNode } export const PageBurgerButton = (props: IPageBurgerButtonProps): JSX.Element => { diff --git a/src/components/page/footer/page-footer.tsx b/src/components/page/footer/page-footer.tsx index d2281d953..173982562 100644 --- a/src/components/page/footer/page-footer.tsx +++ b/src/components/page/footer/page-footer.tsx @@ -1,6 +1,7 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './page-footer.module.css'; const cx = classNames.bind(styles); diff --git a/src/components/page/head-banner/index.ts b/src/components/page/head-banner/index.ts deleted file mode 100644 index f9f263920..000000000 --- a/src/components/page/head-banner/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './page-head-banner'; diff --git a/src/components/page/head-banner/page-head-banner.module.css b/src/components/page/head-banner/page-head-banner.module.css deleted file mode 100644 index 93b7ddd59..000000000 --- a/src/components/page/head-banner/page-head-banner.module.css +++ /dev/null @@ -1,7 +0,0 @@ -.root { - height: var(--head-banner-height-tablet-portrait); - - @media (max-width: $tablet-portrait) { - height: 360px; - } -} diff --git a/src/components/page/head-banner/page-head-banner.tsx b/src/components/page/head-banner/page-head-banner.tsx deleted file mode 100644 index c75609703..000000000 --- a/src/components/page/head-banner/page-head-banner.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import classNames from 'classnames/bind'; - -import type { FC } from 'react'; - -import styles from './page-head-banner.module.css'; - -const cx = classNames.bind(styles); - -export const PageHeadBanner: FC = (props) => { - const { - children, - } = props; - - return ( -
    - {children} -
    - ); -}; diff --git a/src/components/page/index.ts b/src/components/page/index.ts index ef927159d..9c8336f1b 100644 --- a/src/components/page/index.ts +++ b/src/components/page/index.ts @@ -1,6 +1,2 @@ -export { default } from './page'; -export { PageNavbar } from './navbar'; -export { PageOverlayMenu } from './overlay-menu'; -export { PageBurgerButton } from './burger-button'; -export { PageFooter } from './footer'; export { PageBreadcrumbs } from './breadcrumbs'; +export { default } from './page'; diff --git a/src/components/page/navbar/page-navbar.module.css b/src/components/page/navbar/page-navbar.module.css index 7e6a2455c..bc2f4525e 100644 --- a/src/components/page/navbar/page-navbar.module.css +++ b/src/components/page/navbar/page-navbar.module.css @@ -1,8 +1,16 @@ +@value tablet-portrait from "shared/styles/media.module.css"; + .root { - display: flex; - flex-direction: column; + position: sticky; + z-index: 2; + top: 0; + border-bottom: 1px solid var(--coal); + background-color: var(--beige); - @media (max-width: $tablet-portrait) { - order: -1; + @media tablet-portrait { + position: static; + z-index: auto; + border: 0; + background-color: var(--white); } } diff --git a/src/components/page/navbar/page-navbar.tsx b/src/components/page/navbar/page-navbar.tsx index b7ab92cff..55c681f79 100644 --- a/src/components/page/navbar/page-navbar.tsx +++ b/src/components/page/navbar/page-navbar.tsx @@ -1,17 +1,25 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; import styles from './page-navbar.module.css'; +interface PageNavbarProps { + custom?: boolean +} + const cx = classNames.bind(styles); -export const PageNavbar: FC = (props) => { +export const PageNavbar: React.FC = (props) => { const { + custom, children, } = props; return ( -
    +
    {children}
    ); diff --git a/src/components/page/overlay-menu/page-overlay-menu.tsx b/src/components/page/overlay-menu/page-overlay-menu.tsx index f4bad4474..7a9b1b870 100644 --- a/src/components/page/overlay-menu/page-overlay-menu.tsx +++ b/src/components/page/overlay-menu/page-overlay-menu.tsx @@ -5,8 +5,8 @@ import styles from './page-overlay-menu.module.css'; const cx = classNames.bind(styles); interface IPageOverlayMenuProps { - isOpen: boolean; - children: React.ReactNode; + isOpen: boolean + children: React.ReactNode } export const PageOverlayMenu = (props: IPageOverlayMenuProps): JSX.Element => { diff --git a/src/components/page/page.tsx b/src/components/page/page.tsx index 72fd2576d..fbfc057d3 100644 --- a/src/components/page/page.tsx +++ b/src/components/page/page.tsx @@ -1,18 +1,15 @@ import classNames from 'classnames/bind'; import { PageBurgerButton } from './burger-button'; -import { PageNavbar } from './navbar'; import { PageFooter } from './footer'; +import { PageNavbar } from './navbar'; import { PageOverlayMenu } from './overlay-menu'; -import { PageHeadBanner } from './head-banner'; - -import type { FC } from 'react'; import styles from './page.module.css'; const cx = classNames.bind(styles); -const Component: FC = (props) => { +const Component: React.FC = (props) => { const { children } = props; return ( @@ -29,5 +26,4 @@ export default Object.assign(Component, { Navbar: PageNavbar, Footer: PageFooter, OverlayMenu: PageOverlayMenu, - HeadBanner: PageHeadBanner, }); diff --git a/src/components/pagination-sentinel/index.ts b/src/components/pagination-sentinel/index.ts new file mode 100644 index 000000000..e36838108 --- /dev/null +++ b/src/components/pagination-sentinel/index.ts @@ -0,0 +1 @@ +export * from './pagination-sentinel'; diff --git a/src/components/pagination-sentinel/pagination-sentinel.module.css b/src/components/pagination-sentinel/pagination-sentinel.module.css new file mode 100644 index 000000000..b87f60157 --- /dev/null +++ b/src/components/pagination-sentinel/pagination-sentinel.module.css @@ -0,0 +1,8 @@ +.sentinel { + display: block; +} + +.spinner { + width: 64px; + margin: 0 auto; +} diff --git a/src/components/pagination-sentinel/pagination-sentinel.tsx b/src/components/pagination-sentinel/pagination-sentinel.tsx new file mode 100644 index 000000000..5fe09a513 --- /dev/null +++ b/src/components/pagination-sentinel/pagination-sentinel.tsx @@ -0,0 +1,38 @@ +import classNames from 'classnames/bind'; +import { useEffect } from 'react'; + +import { Spinner } from 'components/spinner'; +import { useIntersection } from 'shared/hooks/use-intersection'; + +import styles from './pagination-sentinel.module.css'; + +const cx = classNames.bind(styles); + +interface PaginationSentinelProps { + pending?: boolean + loadMoreCallback: () => void +} + +export const PaginationSentinel: React.VFC = (props) => { + const { + pending = false, + loadMoreCallback, + } = props; + const [sentinelRef, sentinelIsOnScreen] = useIntersection(); + + useEffect(() => { + if (sentinelIsOnScreen) { + loadMoreCallback(); + } + }, [sentinelIsOnScreen, loadMoreCallback]); + + if (pending) { + return ( + + ); + } + + return ( + + ); +}; diff --git a/src/components/participation-form/index.ts b/src/components/participation-form/index.ts deleted file mode 100644 index 712ba3e8d..000000000 --- a/src/components/participation-form/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './participation-form'; diff --git a/src/components/participation-form/participation-form.module.css b/src/components/participation-form/participation-form.module.css deleted file mode 100644 index 803462357..000000000 --- a/src/components/participation-form/participation-form.module.css +++ /dev/null @@ -1,11 +0,0 @@ -.note { - @mixin text; - @mixin textCaption; - - margin-top: 16px; - margin-left: 30px; - - @media (max-width: $tablet-portrait) { - margin-left: 32px; - } -} diff --git a/src/components/participation-form/participation-form.tsx b/src/components/participation-form/participation-form.tsx deleted file mode 100644 index 029b793d7..000000000 --- a/src/components/participation-form/participation-form.tsx +++ /dev/null @@ -1,251 +0,0 @@ -import Link from 'next/link'; -import classNames from 'classnames/bind'; - -import Form from 'components/ui/form'; -import { FormField } from 'components/form-field'; -import TextInput from 'components/ui/text-input'; -import { FileInput } from 'components/ui/file-input'; -import { Button } from 'components/ui/button2'; -import { Icon } from 'components/ui/icon'; - -import type { FC } from 'react'; -import type { Nullable } from 'shared/types'; - -import styles from './participation-form.module.css'; - -interface IParticipationFormProps { - firstName: string - firstNameError?: string - onFirstNameChange: (value: string) => void - lastName: string - lastNameError?: string - onLastNameChange: (value: string) => void - birthYear: string - birthYearError?: string - onBirthYearChange: (value: string) => void - city: string - cityError?: string - onCityChange: (value: string) => void - phoneNumberInputRef: React.RefObject - phoneNumber: string - phoneNumberError?: string - email: string - emailError?: string - onEmailChange: (value: string) => void - title: string - titleError?: string - onTitleChange: (value: string) => void - year: string - yearError?: string - onYearChange: (value: string) => void - fileName?: string - fileError?: string - onFileChange: (file: Nullable) => void - genericError?: string - canSubmit: boolean - onSubmit: (e: React.FormEvent) => void - privacyPolicyUrl?: string -} - -const ACCEPTABLE_FILE_TYPES = '.doc, .docx, .txt, .odt, .pdf'; - -const cx = classNames.bind(styles); - -export const ParticipationForm: FC = (props) => { - const { - firstName, - firstNameError, - onFirstNameChange, - lastName, - lastNameError, - onLastNameChange, - birthYear, - birthYearError, - onBirthYearChange, - city, - cityError, - onCityChange, - phoneNumberInputRef, - phoneNumberError, - email, - emailError, - onEmailChange, - title, - titleError, - onTitleChange, - year, - yearError, - onYearChange, - fileName, - fileError, - onFileChange, - genericError, - canSubmit, - onSubmit, - privacyPolicyUrl = '#', - } = props; - - return ( -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    - Название файла должно содержать сначала фамилию автора, а затем название пьесы, например Chehov-Chaika.doc. - Название файла с пьесой не должно содержать кириллические символы и пробелы. В названии файла должны быть только латинские символы и знаки - и _. -

    -
    - - - - - Нажимая на кнопку «Отправить» вы даёте согласие - {' '} - -
    - на обработку персональных данных - - - - {genericError && ( - - {genericError} - - )} -
    - ); -}; diff --git a/src/components/partner-card/partner-card.module.css b/src/components/partner-card/partner-card.module.css index 539bdeeaa..57d8b684e 100644 --- a/src/components/partner-card/partner-card.module.css +++ b/src/components/partner-card/partner-card.module.css @@ -18,7 +18,7 @@ display: block; width: 100%; height: 100%; - content: ''; + content: ""; } } diff --git a/src/components/partner-card/partner-card.tsx b/src/components/partner-card/partner-card.tsx index 8804be19f..6b1cd79c7 100644 --- a/src/components/partner-card/partner-card.tsx +++ b/src/components/partner-card/partner-card.tsx @@ -1,7 +1,6 @@ -import Image from 'next/image'; import classNames from 'classnames/bind'; +import Image from 'next/image'; -import type { Url } from 'shared/types'; import type { VFC } from 'react'; import styles from './partner-card.module.css'; diff --git a/src/components/performance-details/performance-details.module.css b/src/components/performance-details/performance-details.module.css index d420a90e1..747d99545 100644 --- a/src/components/performance-details/performance-details.module.css +++ b/src/components/performance-details/performance-details.module.css @@ -19,5 +19,5 @@ width: 1px; height: 32px; background-color: var(--coal); - content: ''; + content: ""; } diff --git a/src/components/performance-details/performance-details.tsx b/src/components/performance-details/performance-details.tsx index c20a8d4ff..a924fd16f 100644 --- a/src/components/performance-details/performance-details.tsx +++ b/src/components/performance-details/performance-details.tsx @@ -29,7 +29,7 @@ export const PerformanceDetails = (props: PerformanceDetailsProps): JSX.Element {duration} )} - {ageRestriction && ( + {ageRestriction !== null && ageRestriction !== undefined && (
    {ageRestriction} diff --git a/src/components/performance-event-list/item/performance-event-list-item.tsx b/src/components/performance-event-list/item/performance-event-list-item.tsx index fcce0ff35..dd22d6349 100644 --- a/src/components/performance-event-list/item/performance-event-list-item.tsx +++ b/src/components/performance-event-list/item/performance-event-list-item.tsx @@ -4,19 +4,23 @@ import { Button } from 'components/ui/button2'; import { Icon } from 'components/ui/icon'; import type { FC } from 'react'; -import type { Url } from 'shared/types'; import styles from './performance-event-list-item.module.css'; interface PerformanceEventListProps { - date?: string - ticketsUrl: Url + date: string + actionUrl?: Url + actionText?: string } const cx = classNames.bind(styles); export const PerformanceEventListItem: FC = (props) => { - const { date, ticketsUrl } = props; + const { + date, + actionText, + actionUrl, + } = props; return (
  • @@ -25,26 +29,28 @@ export const PerformanceEventListItem: FC = (props) = {date} )} -
    - -
    + {actionText && actionUrl && ( +
    + +
    + )}
  • ); }; diff --git a/src/components/performance-headline/performance-headline.module.css b/src/components/performance-headline/performance-headline.module.css index 31cf3d384..547444322 100644 --- a/src/components/performance-headline/performance-headline.module.css +++ b/src/components/performance-headline/performance-headline.module.css @@ -1,20 +1,10 @@ -@import '../performance-layout/performance-layout.vars.module.css'; - -.root { - display: grid; - grid-column-gap: $layout-column-gap-tablet-portrait; - grid-template-columns: repeat(2, minmax(0, 1fr)); - - @media (max-width: $tablet-portrait) { - display: block; - } -} +@import url("../performance-layout/performance-layout.vars.module.css"); .title { @mixin headline; @mixin headline2; - margin: 62px 0 36px; + margin: 0 0 36px; word-wrap: break-word; @media (max-width: $tablet-portrait) { @@ -28,32 +18,10 @@ @mixin headline; @mixin headline7; - min-height: 284px; padding-left: 60px; - margin-bottom: 24px; @media (max-width: $tablet-portrait) { min-height: initial; - padding-left: 60px; - margin-bottom: 30px; - } -} - -.actions { - @media (max-width: $tablet-portrait) { - padding-left: 60px; - margin-bottom: 38px; - } -} - -.image { - position: relative; - height: 614px; - margin-right: -$page-padding-tablet-portrait; - - @media (max-width: $tablet-portrait) { - height: 450px; - margin-right: 0; } } diff --git a/src/components/performance-headline/performance-headline.tsx b/src/components/performance-headline/performance-headline.tsx index 132a05d80..08c954ed4 100644 --- a/src/components/performance-headline/performance-headline.tsx +++ b/src/components/performance-headline/performance-headline.tsx @@ -1,8 +1,6 @@ import classNames from 'classnames/bind'; -import Image from 'next/image'; -import type { FC, ReactNode } from 'react'; -import type { Url } from 'shared/types'; +import type { FC } from 'react'; import styles from './performance-headline.module.css'; @@ -11,7 +9,6 @@ interface PerformanceHeadlineProps { description?: string text?: string cover: Url - actions: ReactNode | ReactNode[] className?: string } @@ -21,18 +18,13 @@ export const PerformanceHeadline: FC = (props) => { const { title, description, - cover, text, - actions, className, } = props; return (

    @@ -43,25 +35,12 @@ export const PerformanceHeadline: FC = (props) => { {description}

    )} -
    - {actions} -
    -

    -
    -
    - -
    - {text && ( -

    - {text} -

    - )}
    + {text && ( +

    + {text} +

    + )}
    ); }; diff --git a/src/components/performance-layout/bottom-image/performance-layout-bottom-image.module.css b/src/components/performance-layout/bottom-image/performance-layout-bottom-image.module.css index 08927e79f..06cb8dc47 100644 --- a/src/components/performance-layout/bottom-image/performance-layout-bottom-image.module.css +++ b/src/components/performance-layout/bottom-image/performance-layout-bottom-image.module.css @@ -2,9 +2,9 @@ position: relative; height: 404px; margin-bottom: 60px; - grid-area: bottom-image; @media (max-width: $tablet-portrait) { height: 252px; + order: 11; } } diff --git a/src/components/performance-layout/bottom-image/performance-layout-bottom-image.tsx b/src/components/performance-layout/bottom-image/performance-layout-bottom-image.tsx index 2f26b0cc9..362472743 100644 --- a/src/components/performance-layout/bottom-image/performance-layout-bottom-image.tsx +++ b/src/components/performance-layout/bottom-image/performance-layout-bottom-image.tsx @@ -1,6 +1,7 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './performance-layout-bottom-image.module.css'; const cx = classNames.bind(styles); diff --git a/src/components/performance-layout/content/performance-layout-content.module.css b/src/components/performance-layout/content/performance-layout-content.module.css index 3bf85d2ed..78d8a9fd6 100644 --- a/src/components/performance-layout/content/performance-layout-content.module.css +++ b/src/components/performance-layout/content/performance-layout-content.module.css @@ -1,5 +1,14 @@ -@import '../performance-layout.vars.module.css'; +@import url("../performance-layout.vars.module.css"); .root { - grid-area: content; + display: inline-block; + width: $right-column-width-tablet-portrait; + margin-bottom: 144px; + + @media (max-width: $tablet-portrait) { + display: block; + width: auto; + order: 6; + margin-bottom: 100px; + } } diff --git a/src/components/performance-layout/cover/index.ts b/src/components/performance-layout/cover/index.ts new file mode 100644 index 000000000..982e67420 --- /dev/null +++ b/src/components/performance-layout/cover/index.ts @@ -0,0 +1 @@ +export * from './performance-layout-cover'; diff --git a/src/components/performance-layout/cover/performance-layout-cover.module.css b/src/components/performance-layout/cover/performance-layout-cover.module.css new file mode 100644 index 000000000..8d91a0a24 --- /dev/null +++ b/src/components/performance-layout/cover/performance-layout-cover.module.css @@ -0,0 +1,24 @@ +@import url("../performance-layout.vars.module.css"); + +.root { + display: inline-block; + width: $right-column-width-tablet-portrait; + margin-bottom: 48px; + + @media (max-width: $tablet-portrait) { + display: block; + width: auto; + order: 3; + } +} + +.inner { + position: relative; + height: 614px; + margin-right: -$page-padding-tablet-portrait; + + @media (max-width: $tablet-portrait) { + height: 450px; + margin: 0 -$page-padding-smartphone 56px -$page-padding-smartphone; + } +} diff --git a/src/components/press-release-layout/content/press-release-layout-content.tsx b/src/components/performance-layout/cover/performance-layout-cover.tsx similarity index 53% rename from src/components/press-release-layout/content/press-release-layout-content.tsx rename to src/components/performance-layout/cover/performance-layout-cover.tsx index 9bc02ea58..bd5c91a6f 100644 --- a/src/components/press-release-layout/content/press-release-layout-content.tsx +++ b/src/components/performance-layout/cover/performance-layout-cover.tsx @@ -2,16 +2,18 @@ import classNames from 'classnames/bind'; import type { FC } from 'react'; -import styles from './press-release-layout-content.module.css'; +import styles from './performance-layout-cover.module.css'; const cx = classNames.bind(styles); -export const PressReleaseLayoutContent: FC = (props) => { +export const PerformanceLayoutCover: FC = (props) => { const { children } = props; return (
    - {children} +
    + {children} +
    ); }; diff --git a/src/components/performance-layout/events/index.ts b/src/components/performance-layout/events/index.ts new file mode 100644 index 000000000..341cd453c --- /dev/null +++ b/src/components/performance-layout/events/index.ts @@ -0,0 +1 @@ +export * from './performance-layout-events'; diff --git a/src/components/performance-layout/events/performance-layout-events.module.css b/src/components/performance-layout/events/performance-layout-events.module.css new file mode 100644 index 000000000..cead2daec --- /dev/null +++ b/src/components/performance-layout/events/performance-layout-events.module.css @@ -0,0 +1,14 @@ +@import url("../performance-layout.vars.module.css"); + +.root { + width: $left-column-width-tablet-portrait; + margin: 0 $column-gap-tablet-portrait 100px 0; + float: left; + + @media (max-width: $tablet-portrait) { + width: auto; + order: 2; + margin: 0 0 38px 60px; + float: none; + } +} diff --git a/src/components/press-release-layout/cover/press-release-layout-cover.tsx b/src/components/performance-layout/events/performance-layout-events.tsx similarity index 65% rename from src/components/press-release-layout/cover/press-release-layout-cover.tsx rename to src/components/performance-layout/events/performance-layout-events.tsx index 0a04535f0..11e361386 100644 --- a/src/components/press-release-layout/cover/press-release-layout-cover.tsx +++ b/src/components/performance-layout/events/performance-layout-events.tsx @@ -2,11 +2,11 @@ import classNames from 'classnames/bind'; import type { FC } from 'react'; -import styles from './press-release-layout-cover.module.css'; +import styles from './performance-layout-events.module.css'; const cx = classNames.bind(styles); -export const PressReleaseLayoutCover: FC = (props) => { +export const PerformanceLayoutEvents: FC = (props) => { const { children } = props; return ( diff --git a/src/components/performance-layout/gallery/performance-layout-gallery.module.css b/src/components/performance-layout/gallery/performance-layout-gallery.module.css index baf12d0a5..eca3a4286 100644 --- a/src/components/performance-layout/gallery/performance-layout-gallery.module.css +++ b/src/components/performance-layout/gallery/performance-layout-gallery.module.css @@ -1,10 +1,11 @@ -@import '../performance-layout.vars.module.css'; +@import url("../performance-layout.vars.module.css"); .gallery { margin: 0 -$page-padding-tablet-portrait 146px; - grid-area: gallery; + clear: both; @media (max-width: $tablet-portrait) { + order: 7; margin: 0 -$page-padding-smartphone 105px; } } diff --git a/src/components/performance-layout/gallery/performance-layout-gallery.tsx b/src/components/performance-layout/gallery/performance-layout-gallery.tsx index cbef2a555..5e4794bf6 100644 --- a/src/components/performance-layout/gallery/performance-layout-gallery.tsx +++ b/src/components/performance-layout/gallery/performance-layout-gallery.tsx @@ -1,6 +1,7 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './performance-layout-gallery.module.css'; const cx = classNames.bind(styles); diff --git a/src/components/performance-layout/intro/index.ts b/src/components/performance-layout/intro/index.ts new file mode 100644 index 000000000..a087eb3d3 --- /dev/null +++ b/src/components/performance-layout/intro/index.ts @@ -0,0 +1 @@ +export * from './performance-layout-intro'; diff --git a/src/components/performance-layout/intro/performance-layout-intro.module.css b/src/components/performance-layout/intro/performance-layout-intro.module.css new file mode 100644 index 000000000..26f247367 --- /dev/null +++ b/src/components/performance-layout/intro/performance-layout-intro.module.css @@ -0,0 +1,20 @@ +@import url("../performance-layout.vars.module.css"); + +.root { + @mixin text; + + display: inline-block; + width: $right-column-width-tablet-portrait; + margin-bottom: 68px; + font-size: 28px; + line-height: 32px; + + @media (max-width: $tablet-portrait) { + display: block; + width: auto; + order: 4; + margin-bottom: 100px; + font-size: 20px; + line-height: 24px; + } +} diff --git a/src/components/press-release-layout/title/press-release-layout-title.tsx b/src/components/performance-layout/intro/performance-layout-intro.tsx similarity index 65% rename from src/components/press-release-layout/title/press-release-layout-title.tsx rename to src/components/performance-layout/intro/performance-layout-intro.tsx index 5b953d485..8b833c876 100644 --- a/src/components/press-release-layout/title/press-release-layout-title.tsx +++ b/src/components/performance-layout/intro/performance-layout-intro.tsx @@ -2,11 +2,11 @@ import classNames from 'classnames/bind'; import type { FC } from 'react'; -import styles from './press-release-layout-title.module.css'; +import styles from './performance-layout-intro.module.css'; const cx = classNames.bind(styles); -export const PressReleaseLayoutTitle: FC = (props) => { +export const PerformanceLayoutIntro: FC = (props) => { const { children } = props; return ( diff --git a/src/components/performance-layout/media-reviews/performance-layout-media-reviews.module.css b/src/components/performance-layout/media-reviews/performance-layout-media-reviews.module.css index e53ebf50d..cc66bf07d 100644 --- a/src/components/performance-layout/media-reviews/performance-layout-media-reviews.module.css +++ b/src/components/performance-layout/media-reviews/performance-layout-media-reviews.module.css @@ -1,11 +1,11 @@ -@import '../performance-layout.vars.module.css'; +@import url("../performance-layout.vars.module.css"); .root { min-width: 0; margin: 0 -$page-padding-tablet-portrait 112px; - grid-area: media-reviews; @media (max-width: $tablet-portrait) { + order: 8; margin: 0 -$page-padding-smartphone 76px; } } diff --git a/src/components/performance-layout/media-reviews/performance-layout-media-reviews.tsx b/src/components/performance-layout/media-reviews/performance-layout-media-reviews.tsx index 164d6c3bf..517ccdc2b 100644 --- a/src/components/performance-layout/media-reviews/performance-layout-media-reviews.tsx +++ b/src/components/performance-layout/media-reviews/performance-layout-media-reviews.tsx @@ -1,6 +1,7 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './performance-layout-media-reviews.module.css'; const cx = classNames.bind(styles); diff --git a/src/components/performance-layout/performance-layout.module.css b/src/components/performance-layout/performance-layout.module.css index 8853d6363..20bd4b688 100644 --- a/src/components/performance-layout/performance-layout.module.css +++ b/src/components/performance-layout/performance-layout.module.css @@ -1,29 +1,25 @@ -@import './performance-layout.vars.module.css'; +@import url("./performance-layout.vars.module.css"); .root { - display: grid; padding: 0 $page-padding-tablet-portrait; - grid-template: - "headline headline" - "summary content" - "gallery gallery" - "media-reviews media-reviews" - "reviews reviews" - "bottom-image bottom-image" - "share share"; @media (max-width: $tablet-portrait) { - display: block; + display: flex; + flex-direction: column; padding: 40px $page-padding-smartphone 0; } } .headline { - margin-bottom: 68px; - grid-area: headline; + width: $left-column-width-tablet-portrait; + margin: 62px $column-gap-tablet-portrait 100px 0; + float: left; @media (max-width: $tablet-portrait) { - margin-bottom: 100px; + width: auto; + order: 1; + margin: 0 0 30px; + float: none; } } @@ -41,6 +37,11 @@ margin-bottom: 80px; } -.play { - margin-bottom: 144px; +.card_in_performance { + max-width: 240px; + + @media (max-width: $tablet-portrait) { + max-width: 244px; + margin: 0 auto; + } } diff --git a/src/components/performance-layout/performance-layout.tsx b/src/components/performance-layout/performance-layout.tsx index abe862675..4d2c244f0 100644 --- a/src/components/performance-layout/performance-layout.tsx +++ b/src/components/performance-layout/performance-layout.tsx @@ -1,19 +1,22 @@ import classNames from 'classnames/bind'; +import { PerformanceLayoutBottomImage } from './bottom-image'; import { PerformanceLayoutContent } from './content'; -import { PerformanceLayoutSummary } from './summary'; +import { PerformanceLayoutCover } from './cover'; +import { PerformanceLayoutEvents } from './events'; import { PerformanceLayoutGallery } from './gallery'; +import { PerformanceLayoutIntro } from './intro'; import { PerformanceLayoutMediaReviews } from './media-reviews'; import { PerformanceLayoutReviews } from './reviews'; -import { PerformanceLayoutBottomImage } from './bottom-image'; import { PerformanceLayoutShare } from './share'; +import { PerformanceLayoutSummary } from './summary'; import type { ReactNode } from 'react'; import styles from './performance-layout.module.css'; interface IPerformanceLayoutProps { - children: ReactNode; + children: ReactNode } const cx = classNames.bind(styles); @@ -38,5 +41,8 @@ export const PerformanceLayout = Object.assign(Component, { Reviews: PerformanceLayoutReviews, BottomImage: PerformanceLayoutBottomImage, Share: PerformanceLayoutShare, + Events: PerformanceLayoutEvents, + Intro: PerformanceLayoutIntro, + Cover: PerformanceLayoutCover, }); diff --git a/src/components/performance-layout/performance-layout.vars.module.css b/src/components/performance-layout/performance-layout.vars.module.css index 0a3d262cf..36b2cbb5b 100644 --- a/src/components/performance-layout/performance-layout.vars.module.css +++ b/src/components/performance-layout/performance-layout.vars.module.css @@ -1,3 +1,7 @@ $page-padding-smartphone: 24px; $page-padding-tablet-portrait: 120px; -$layout-column-gap-tablet-portrait: 80px; +$column-gap-tablet-portrait: 80px; + +/* Устанавливаем ширину блоков левой колонки с float: left в 51%, чтобы они не размещались в строку */ +$left-column-width-tablet-portrait: calc(51% - $column-gap-tablet-portrait); +$right-column-width-tablet-portrait: 49%; diff --git a/src/components/performance-layout/reviews/performance-layout-reviews.module.css b/src/components/performance-layout/reviews/performance-layout-reviews.module.css index 0bcca87ec..0aa7cf594 100644 --- a/src/components/performance-layout/reviews/performance-layout-reviews.module.css +++ b/src/components/performance-layout/reviews/performance-layout-reviews.module.css @@ -1,9 +1,9 @@ .root { min-width: 0; margin-bottom: 64px; - grid-area: reviews; @media (max-width: $tablet-portrait) { + order: 9; margin-bottom: 0; } } diff --git a/src/components/performance-layout/reviews/performance-layout-reviews.tsx b/src/components/performance-layout/reviews/performance-layout-reviews.tsx index 4e9290a4b..c3ec8a9fd 100644 --- a/src/components/performance-layout/reviews/performance-layout-reviews.tsx +++ b/src/components/performance-layout/reviews/performance-layout-reviews.tsx @@ -1,9 +1,9 @@ import classNames from 'classnames/bind'; -import styles from './performance-layout-reviews.module.css'; - import type { FC } from 'react'; +import styles from './performance-layout-reviews.module.css'; + const cx = classNames.bind(styles); export const PerformanceLayoutReviews: FC = (props) => { diff --git a/src/components/performance-layout/share/performance-layout-share.module.css b/src/components/performance-layout/share/performance-layout-share.module.css index 3ae56160b..2dd62e1b8 100644 --- a/src/components/performance-layout/share/performance-layout-share.module.css +++ b/src/components/performance-layout/share/performance-layout-share.module.css @@ -1,9 +1,9 @@ .share { padding: 0 60px 0 362px; margin: 23px 0 139px; - grid-area: share; @media (max-width: $tablet-portrait) { + order: 11; padding: 0 24px 0 26px; margin: 25px 0 100px; } diff --git a/src/components/performance-layout/share/performance-layout-share.tsx b/src/components/performance-layout/share/performance-layout-share.tsx index 54b2a4420..a09e0cbc8 100644 --- a/src/components/performance-layout/share/performance-layout-share.tsx +++ b/src/components/performance-layout/share/performance-layout-share.tsx @@ -1,6 +1,7 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './performance-layout-share.module.css'; const cx = classNames.bind(styles); diff --git a/src/components/performance-layout/summary/performance-layout-summary.module.css b/src/components/performance-layout/summary/performance-layout-summary.module.css index f3a17062b..b12315e0f 100644 --- a/src/components/performance-layout/summary/performance-layout-summary.module.css +++ b/src/components/performance-layout/summary/performance-layout-summary.module.css @@ -1,11 +1,16 @@ -@import '../performance-layout.vars.module.css'; +@import url("../performance-layout.vars.module.css"); .root { - grid-area: summary; + width: $left-column-width-tablet-portrait; + margin: 0 $column-gap-tablet-portrait 144px 0; + float: left; @media (max-width: $tablet-portrait) { + width: auto; + order: 5; padding: 58px $page-padding-smartphone 72px; margin: 0 -$page-padding-smartphone 24px; background-color: var(--white); + float: none; } } diff --git a/src/components/person-card-list/person-card-list.module.css b/src/components/person-card-list/person-card-list.module.css index 6ebd77679..0f58752be 100644 --- a/src/components/person-card-list/person-card-list.module.css +++ b/src/components/person-card-list/person-card-list.module.css @@ -9,7 +9,7 @@ position: relative; display: grid; - max-width: calc((var(--card-width) * var(--columns-count)) + (var(--column-gap) * (var(--columns-count) - 1)) + (var(--padding) * 2)); + max-width: calc((var(--card-width) * var(--columns-count)) + (var(--column-gap) * (var(--columns-count) - 1)) + (var(--padding) * 2)); /* stylelint-disable-line max-line-length */ box-sizing: border-box; justify-content: center; padding: 0 var(--padding); diff --git a/src/components/person-card-list/person-card-list.stories.tsx b/src/components/person-card-list/person-card-list.stories.tsx deleted file mode 100644 index daa5fdd42..000000000 --- a/src/components/person-card-list/person-card-list.stories.tsx +++ /dev/null @@ -1,37 +0,0 @@ -/* eslint-disable react/prop-types */ -import { ComponentMeta, Story } from '@storybook/react'; - -import { PersonCard, IPersonCardProps } from 'components/ui/person-card'; -import { Participant } from 'components/ui/person-card/person-card.stories'; -import { PersonCardList } from 'components/person-card-list'; - -export default { - title: 'ui/PersonCardList', - component: PersonCardList, - subcomponents: { PersonCard }, - decorators: [ - (Story) => ( -
    - -
    - ), - ], -} as ComponentMeta; - -const ListTemplate: Story = ({ items, ...args }) => ( - - {(items as IPersonCardProps[]).map((item, idx) => ( - - ))} - -); - -export const Default = ListTemplate.bind({}); -Default.parameters = { - layout: 'fullscreen' -}; -Default.args = { - items: Array.from(Array(7)).map(() => Participant.args), - gapLarge: true, -}; - diff --git a/src/components/person-card-list/person-card-list.tsx b/src/components/person-card-list/person-card-list.tsx index e9a5d2728..8a5d579bd 100644 --- a/src/components/person-card-list/person-card-list.tsx +++ b/src/components/person-card-list/person-card-list.tsx @@ -1,13 +1,14 @@ -import { ReactNode } from 'react'; import classNames from 'classnames/bind'; +import type { ReactNode } from 'react'; + import styles from './person-card-list.module.css'; const cx = classNames.bind(styles); interface IPersonCardListProps extends React.HTMLAttributes { - expanded?: boolean; - children: ReactNode; + expanded?: boolean + children: ReactNode } export const PersonCardList = (props: IPersonCardListProps): JSX.Element => { diff --git a/src/components/person-card/index.ts b/src/components/person-card/index.ts new file mode 100644 index 000000000..00fa1b016 --- /dev/null +++ b/src/components/person-card/index.ts @@ -0,0 +1 @@ +export * from './person-card'; diff --git a/src/components/person-card/person-card.module.css b/src/components/person-card/person-card.module.css new file mode 100644 index 000000000..bec4c01c6 --- /dev/null +++ b/src/components/person-card/person-card.module.css @@ -0,0 +1,50 @@ +.tile { + position: relative; + margin: 0 0 16px; + background-color: var(--gray); +} + +.action { + position: absolute; + bottom: 12px; + left: 12px; + display: flex; + width: 44px; + height: 44px; + align-items: center; + justify-content: center; + border: 0; + border-radius: 22px; + background: var(--beige); + font-size: 0; +} + +.name { + @mixin headline; + + margin: 0 0 16px; +} + +.role { + margin-left: 32px; +} + +.s { + .tile { + height: 228px; + } + + .name { + @mixin headline7; + } +} + +.m { + .tile { + height: 265px; + } + + .name { + @mixin headline6; + } +} diff --git a/src/components/person-card/person-card.tsx b/src/components/person-card/person-card.tsx new file mode 100644 index 000000000..f2c55ed13 --- /dev/null +++ b/src/components/person-card/person-card.tsx @@ -0,0 +1,65 @@ +import classNames from 'classnames/bind'; +import Image from 'next/image'; + +import { Icon } from 'components/ui/icon'; + +import type { Person } from 'core/person'; + +import styles from './person-card.module.css'; + +interface PersonCardProps extends Person { + size?: 's' | 'm' + titleTag?: React.ElementType + onClick?: () => void +} + +const cx = classNames.bind(styles); + +export const PersonCard: React.VFC = (props) => { + const { + size = 'm', + titleTag: TitleTag = 'h3', + fullName, + photoUrl, + role, + onClick, + } = props; + + return ( +
    +
    + {photoUrl && ( + + )} + {onClick && ( + + )} +
    + + {fullName} + + {role && ( +

    + {role} +

    + )} +
    + ); +}; diff --git a/src/components/persons-list/persons-list.tsx b/src/components/persons-list/persons-list.tsx index 9399bc0f8..6cf09cd1e 100644 --- a/src/components/persons-list/persons-list.tsx +++ b/src/components/persons-list/persons-list.tsx @@ -1,34 +1,34 @@ -import { FC } from 'react'; +import cn from 'classnames'; import { PersonCard } from '../ui/person-card/person-card'; -import 'keen-slider/keen-slider.min.css'; -import { Sponsor } from 'api-typings'; + +import type { Sponsor } from '__generated__/api-typings'; import style from './persons-list.module.css'; -import cn from 'classnames'; interface PersonsListProps { persons: Array } const getClass = (number:number) => { - if(number < 4) { + if (number < 4) { return 'linear'; } - if(number === 5) { + if (number === 5) { return 'five'; } - if(number % 3 === 0 && number < 16) { + if (number % 3 === 0 && number < 16) { return 'three'; } + return 'four'; }; -const PersonsList: FC = ({ persons }) => { +const PersonsList: React.FC = ({ persons }) => { return ( -
      +
        {persons.map((person) => (
      • { - photos: PhotoGalleryItem[], -} - -export const PhotoGallery: FC = (props) => { - const { - className, - photos, - } = props; - const [isLightboxOpen, setIsLightboxOpen] = useState(false); - const [currentPhotoIndex, setCurrentPhotoIndex] = useState(0); - - const toggleLightbox = () => setIsLightboxOpen(!isLightboxOpen); - - const handleItemClick = (index: number) => () => { - setCurrentPhotoIndex(index); - toggleLightbox(); - }; - - return ( -
        -
          - {photos.map(({ url, description = '' }, index) => ( -
        • - {description} -
        • - ))} -
        - - {photos.map(({ url, description = '' }) => ( - {description} - ))} - -
        - ); -}; diff --git a/src/components/play-card/index.ts b/src/components/play-card/index.ts new file mode 100644 index 000000000..b9a58918f --- /dev/null +++ b/src/components/play-card/index.ts @@ -0,0 +1 @@ +export * from './play-card'; diff --git a/src/components/play-card/play-card.module.css b/src/components/play-card/play-card.module.css new file mode 100644 index 000000000..4f94b92c4 --- /dev/null +++ b/src/components/play-card/play-card.module.css @@ -0,0 +1,81 @@ +@value tablet-portrait from "shared/styles/media.module.css"; + +.tile { + display: flex; + min-height: 300px; + flex-direction: column; + margin: 0 0 16px; + background-color: var(--light-green); + + @media tablet-portrait { + min-height: 342px; + margin: 0 0 24px; + } +} + +.title { + @mixin headline; + @mixin headline7; + @mixin text-truncate-multiline 6; + + margin: 24px 30px auto 24px; + + @media tablet-portrait { + margin: 16px 46px auto 16px; + } +} + +.actions { + visibility: hidden; + + .tile:hover & { + visibility: visible; + } + + @media tablet-portrait { + visibility: visible; + } +} + +.action { + display: block; + border-top: 1px solid var(--coal); +} + +.author { + display: inline-block; + max-width: 100%; + padding: 0; + margin-inline-start: 0; + overflow-x: hidden; + + :first-child { + font-family: "PP Neue Machina", Arial, sans-serif; + font-weight: 400; + letter-spacing: -.01em; + line-height: 24px; + text-overflow: ellipsis; + } +} + +.city { + @mixin text; + @mixin textSmall; + + margin: 4px 0 0; + + @media tablet-portrait { + margin-top: 8px; + } +} + +.year { + @mixin text; + @mixin textSmall; + + margin: 0; +} + +.semantic-only-note { + @mixin visually-hidden; +} diff --git a/src/components/play-card/play-card.tsx b/src/components/play-card/play-card.tsx new file mode 100644 index 000000000..0f8a54379 --- /dev/null +++ b/src/components/play-card/play-card.tsx @@ -0,0 +1,123 @@ +import cn from 'classnames/bind'; + +import { Button } from 'components/ui/button2'; +import { Icon } from 'components/ui/icon'; + +import type { Play } from 'core/play'; + +import styles from './play-card.module.css'; + +const cx = cn.bind(styles); + +export interface PlayCardProps extends Omit { + className?: string + titleTag?: React.ElementType +} + +export const PlayCard: React.FC = (props) => { + const { + className, + title, + titleTag: TitleTag = 'h3', + authors, + city, + year, + readingUrl, + downloadUrl, + } = props; + + return ( +
        +
        + + {title} + +
        + {readingUrl && ( + + + + )} + {downloadUrl && ( + + + + )} +
        +
        +
        +
        + {authors.length === 1 ? 'Автор' : 'Авторы'} +
        + {authors.map((author) => ( +
        + +
        + ) + )} + {city && ( + <> +
        + Город +
        +
        + {city} +
        + + )} + {year && ( + <> +
        + Год +
        +
        + {year} +
        + + )} +
        +
        + ); +}; diff --git a/src/components/play-filter-dialog/index.ts b/src/components/play-filter-dialog/index.ts new file mode 100644 index 000000000..302da7931 --- /dev/null +++ b/src/components/play-filter-dialog/index.ts @@ -0,0 +1 @@ +export * from './plays-filter-dialog'; diff --git a/src/components/play-filter-dialog/plays-filter-dialog.tsx b/src/components/play-filter-dialog/plays-filter-dialog.tsx new file mode 100644 index 000000000..54d3cdb51 --- /dev/null +++ b/src/components/play-filter-dialog/plays-filter-dialog.tsx @@ -0,0 +1,30 @@ +import { DialogWindow } from 'components/dialog-window'; +import { Modal } from 'components/ui/modal'; + +interface PlayFilterDialogProps { + open?: boolean + onClose: () => void +} + +export const PlayFilterDialog: React.FC = (props) => { + const { + children, + open = false, + onClose, + } = props; + + return ( + + + {children} + + + ); +}; diff --git a/src/components/play-list/index.ts b/src/components/play-list/index.ts index f4bee6a12..2fa5e6674 100644 --- a/src/components/play-list/index.ts +++ b/src/components/play-list/index.ts @@ -1 +1,6 @@ -export * from './play-list'; +import { PlayList as Component } from './play-list'; +import { PlayListItem } from './play-list-item'; + +export const PlayList = Object.assign(Component, { + Item: PlayListItem, +}); diff --git a/src/components/play-list/item/index.ts b/src/components/play-list/item/index.ts deleted file mode 100644 index 7f257284b..000000000 --- a/src/components/play-list/item/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './play-list-item'; diff --git a/src/components/play-list/item/play-list-item.module.css b/src/components/play-list/item/play-list-item.module.css deleted file mode 100644 index 627043849..000000000 --- a/src/components/play-list/item/play-list-item.module.css +++ /dev/null @@ -1,8 +0,0 @@ -.root { - display: block; - - @media (max-width: $tablet-portrait) { - position: relative; - min-width: 240px; - } -} diff --git a/src/components/play-list/item/play-list-item.tsx b/src/components/play-list/play-list-item.tsx similarity index 75% rename from src/components/play-list/item/play-list-item.tsx rename to src/components/play-list/play-list-item.tsx index 1ab44100a..a06792454 100644 --- a/src/components/play-list/item/play-list-item.tsx +++ b/src/components/play-list/play-list-item.tsx @@ -2,7 +2,7 @@ import classNames from 'classnames/bind'; import type { FC } from 'react'; -import style from './play-list-item.module.css'; +import style from './play-list.module.css'; const cx = classNames.bind(style); @@ -12,7 +12,7 @@ export const PlayListItem: FC = (props) => { } = props; return ( -
      • +
      • {children}
      • ); diff --git a/src/components/play-list/play-list.module.css b/src/components/play-list/play-list.module.css index af2e11b69..3d5c5eee0 100644 --- a/src/components/play-list/play-list.module.css +++ b/src/components/play-list/play-list.module.css @@ -1,15 +1,37 @@ -.root { - @mixin hide-scrollbars; +@value tablet-portrait from "shared/styles/media.module.css"; +$item-width: 240px; + +.common { display: grid; padding: 0; margin: 0; - gap: 30px; - grid-template-columns: repeat(4, 1fr); - overflow-x: scroll; + gap: 24px; + grid-template-columns: repeat(auto-fill, $item-width); + place-content: center; +} + +.scrollable { + composes: common; + + @media tablet-portrait { + @mixin hide-scrollbars; - @media (max-width: $tablet-portrait) { grid-auto-flow: column; grid-template-columns: auto; + overflow-x: scroll; } } + +.regular { + composes: common; +} + +.item { + display: block; + width: $item-width; +} + +.common.processing { + opacity: .2; +} diff --git a/src/components/play-list/play-list.tsx b/src/components/play-list/play-list.tsx index 6ecc6eb2c..0df456302 100644 --- a/src/components/play-list/play-list.tsx +++ b/src/components/play-list/play-list.tsx @@ -1,31 +1,24 @@ import classNames from 'classnames/bind'; -import { PlayListItem } from './item'; - -import type { ReactNode } from 'react'; - import style from './play-list.module.css'; const cx = classNames.bind(style); interface PlayListProps { - children: ReactNode, + variant?: 'regular' | 'scrollable' + processing?: boolean } -const Component = (props: PlayListProps) => { +export const PlayList = (props: React.PropsWithChildren) => { const { + variant = 'regular', + processing, children, } = props; return ( -
          +
            {children}
          ); }; - -Component.displayName = 'PlayList'; - -export const PlayList = Object.assign(Component, { - Item: PlayListItem, -}); diff --git a/src/components/play-proposal-layout/column/play-proposal-layout-column.tsx b/src/components/play-proposal-layout/column/play-proposal-layout-column.tsx index 6a941e200..bc13deaa6 100644 --- a/src/components/play-proposal-layout/column/play-proposal-layout-column.tsx +++ b/src/components/play-proposal-layout/column/play-proposal-layout-column.tsx @@ -5,7 +5,7 @@ import styles from './play-proposal-layout-column.module.css'; const cx = classNames.bind(styles); interface IPlayProposalLayoutColumnProps { - children: React.ReactNode; + children: React.ReactNode } const PlayProposalLayoutColumn = (props: IPlayProposalLayoutColumnProps): JSX.Element => { diff --git a/src/components/play-proposal-layout/form/play-proposal-layout-form.tsx b/src/components/play-proposal-layout/form/play-proposal-layout-form.tsx index 9f3a4e099..771e4190a 100644 --- a/src/components/play-proposal-layout/form/play-proposal-layout-form.tsx +++ b/src/components/play-proposal-layout/form/play-proposal-layout-form.tsx @@ -5,7 +5,7 @@ import styles from './play-proposal-layout-form.module.css'; const cx = classNames.bind(styles); interface IPlayProposalLayoutFormProps { - children: React.ReactNode; + children: React.ReactNode } const PlayProposalLayoutForm = (props: IPlayProposalLayoutFormProps): JSX.Element => { diff --git a/src/components/play-proposal-layout/image/index.ts b/src/components/play-proposal-layout/image/index.ts deleted file mode 100644 index ef741a220..000000000 --- a/src/components/play-proposal-layout/image/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './play-proposal-layout-image'; diff --git a/src/components/play-proposal-layout/image/play-proposal-layout-image.module.css b/src/components/play-proposal-layout/image/play-proposal-layout-image.module.css deleted file mode 100644 index 8f19bd1d3..000000000 --- a/src/components/play-proposal-layout/image/play-proposal-layout-image.module.css +++ /dev/null @@ -1,13 +0,0 @@ -.image { - position: sticky; - top: 0; - width: 660px; - height: 100vh; - - @media (max-width: $tablet-portrait) { - position: relative; - width: calc(100% + 24px); - height: 152px; - margin-top: 10px; - } -} diff --git a/src/components/play-proposal-layout/image/play-proposal-layout-image.tsx b/src/components/play-proposal-layout/image/play-proposal-layout-image.tsx deleted file mode 100644 index ec288ef8b..000000000 --- a/src/components/play-proposal-layout/image/play-proposal-layout-image.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import classNames from 'classnames/bind'; - -import styles from './play-proposal-layout-image.module.css'; - -const cx = classNames.bind(styles); - -interface IPlayProposalLayoutImageProps { - children: React.ReactNode; -} - -const PlayProposalLayoutImage = (props: IPlayProposalLayoutImageProps): JSX.Element => { - const { children } = props; - - return ( -
          - {children} -
          - ); -}; - -export default PlayProposalLayoutImage; diff --git a/src/components/play-proposal-layout/index.ts b/src/components/play-proposal-layout/index.ts index 2944f00cd..8280b2023 100644 --- a/src/components/play-proposal-layout/index.ts +++ b/src/components/play-proposal-layout/index.ts @@ -1 +1,10 @@ -export { default } from './play-proposal-layout'; +import PlayProposalLayoutColumn from './column/play-proposal-layout-column'; +import PlayProposalForm from './form/play-proposal-layout-form'; +import { PlayProposalLayout as BaseComponent } from './play-proposal-layout'; + +const PlayProposalLayout = Object.assign(BaseComponent, { + Column: PlayProposalLayoutColumn, + Form: PlayProposalForm, +}); + +export default PlayProposalLayout; diff --git a/src/components/play-proposal-layout/play-proposal-layout.assets/artwork-mobile.jpg b/src/components/play-proposal-layout/play-proposal-layout.assets/artwork-mobile.jpg new file mode 100644 index 000000000..ad79c4237 Binary files /dev/null and b/src/components/play-proposal-layout/play-proposal-layout.assets/artwork-mobile.jpg differ diff --git a/public/images/form/play-script.jpg b/src/components/play-proposal-layout/play-proposal-layout.assets/artwork-tablet-portrait.jpg similarity index 100% rename from public/images/form/play-script.jpg rename to src/components/play-proposal-layout/play-proposal-layout.assets/artwork-tablet-portrait.jpg diff --git a/src/components/play-proposal-layout/play-proposal-layout.module.css b/src/components/play-proposal-layout/play-proposal-layout.module.css index 71666d37f..1679275d6 100644 --- a/src/components/play-proposal-layout/play-proposal-layout.module.css +++ b/src/components/play-proposal-layout/play-proposal-layout.module.css @@ -1,9 +1,30 @@ +@value tablet-portrait from "shared/styles/media.module.css"; + .layout { display: grid; grid-template-columns: repeat(2, 1fr); - @media (max-width: $tablet-portrait) { + @media tablet-portrait { padding: 0 24px; grid-template-columns: 100%; } + + &::before { + position: sticky; + top: var(--height-navbar-tablet-portrait); + display: block; + width: 660px; + height: calc(100vh - var(--height-navbar-tablet-portrait)); + background-image: url("./play-proposal-layout.assets/artwork-tablet-portrait.jpg"); + background-size: cover; + content: ""; + + @media tablet-portrait { + position: static; + width: calc(100% + 24px); + height: 152px; + margin-top: 10px; + background-image: url("./play-proposal-layout.assets/artwork-mobile.jpg"); + } + } } diff --git a/src/components/play-proposal-layout/play-proposal-layout.tsx b/src/components/play-proposal-layout/play-proposal-layout.tsx index b29db35d4..4bf8ee3f3 100644 --- a/src/components/play-proposal-layout/play-proposal-layout.tsx +++ b/src/components/play-proposal-layout/play-proposal-layout.tsx @@ -1,18 +1,10 @@ import classNames from 'classnames/bind'; -import PlayProposalLayoutImage from './image/play-proposal-layout-image'; -import PlayProposalLayoutColumn from './column/play-proposal-layout-column'; -import PlayProposalForm from './form/play-proposal-layout-form'; - import styles from './play-proposal-layout.module.css'; const cx = classNames.bind(styles); -interface IPlayProposalLayoutProps { - children: React.ReactNode; -} - -const PlayProposalLayout = (props: IPlayProposalLayoutProps): JSX.Element => { +export const PlayProposalLayout: React.FC = (props) => { const { children } = props; return ( @@ -21,9 +13,3 @@ const PlayProposalLayout = (props: IPlayProposalLayoutProps): JSX.Element => { ); }; - -PlayProposalLayout.Image = PlayProposalLayoutImage; -PlayProposalLayout.Column = PlayProposalLayoutColumn; -PlayProposalLayout.Form = PlayProposalForm; - -export default PlayProposalLayout; diff --git a/src/components/play-proposal-success-layout/play-proposal-success-layout.stories.tsx b/src/components/play-proposal-success-layout/play-proposal-success-layout.stories.tsx deleted file mode 100644 index 531861644..000000000 --- a/src/components/play-proposal-success-layout/play-proposal-success-layout.stories.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { ComponentStory, ComponentMeta } from '@storybook/react'; - -import { PlayProposalSuccessLayout } from './play-proposal-success-layout'; - -export default { - title: 'Components/PlayProposalSuccess', - component: PlayProposalSuccessLayout, -} as ComponentMeta; - -const Template: ComponentStory = () => ; - -export const Default = Template.bind({}); diff --git a/src/components/play-proposal-success-layout/play-proposal-success-layout.tsx b/src/components/play-proposal-success-layout/play-proposal-success-layout.tsx index 25508342f..d7bfca20a 100644 --- a/src/components/play-proposal-success-layout/play-proposal-success-layout.tsx +++ b/src/components/play-proposal-success-layout/play-proposal-success-layout.tsx @@ -1,6 +1,7 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './play-proposal-success-layout.module.css'; const cx = classNames.bind(styles); @@ -9,7 +10,7 @@ export const PlayProposalSuccessLayout: FC = () => { return (

          - Спасибо, мы получили вашу пьесу, скоро начнется отбор. Следите за + Спасибо, мы получили вашу пьесу. Следите за новостями в наших соцсетях!

          ) => { - const { - children, - className, - } = props; - - return ( -
          - {children} -
          - ); -}; diff --git a/src/components/press-release-layout/content/index.ts b/src/components/press-release-layout/content/index.ts deleted file mode 100644 index d4b218dfc..000000000 --- a/src/components/press-release-layout/content/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './press-release-layout-content'; diff --git a/src/components/press-release-layout/content/press-release-layout-content.module.css b/src/components/press-release-layout/content/press-release-layout-content.module.css deleted file mode 100644 index 14f4129b7..000000000 --- a/src/components/press-release-layout/content/press-release-layout-content.module.css +++ /dev/null @@ -1,5 +0,0 @@ -.root { - max-width: 840px; - margin: 64px auto 0; - grid-area: content; -} diff --git a/src/components/press-release-layout/cover/index.ts b/src/components/press-release-layout/cover/index.ts deleted file mode 100644 index e3ef77a5b..000000000 --- a/src/components/press-release-layout/cover/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './press-release-layout-cover'; diff --git a/src/components/press-release-layout/cover/press-release-layout-cover.module.css b/src/components/press-release-layout/cover/press-release-layout-cover.module.css deleted file mode 100644 index 8a0fc14df..000000000 --- a/src/components/press-release-layout/cover/press-release-layout-cover.module.css +++ /dev/null @@ -1,14 +0,0 @@ -@import "../press-release-layout.vars.module"; - -.root { - position: relative; - min-width: calc(720px - $page-margin-smartphone); - height: 268px; - margin-right: calc(-1 * $page-margin-tablet-portrait); - grid-area: cover; - - @media (max-width: $tablet-portrait) { - min-width: initial; - margin: 0 -$page-margin-smartphone; - } -} diff --git a/src/components/press-release-layout/index.ts b/src/components/press-release-layout/index.ts index 9eb5a6716..72f9c4c4a 100644 --- a/src/components/press-release-layout/index.ts +++ b/src/components/press-release-layout/index.ts @@ -1 +1,6 @@ -export * from './press-release-layout'; +import { PressReleaseLayout as Component } from './press-release-layout'; +import { PressReleaseLayoutSlot } from './press-release-layout-slot'; + +export const PressReleaseLayout = Object.assign(Component, { + Slot: PressReleaseLayoutSlot, +}); diff --git a/src/components/press-release-layout/press-release-layout-slot.tsx b/src/components/press-release-layout/press-release-layout-slot.tsx new file mode 100644 index 000000000..b3f69a9b0 --- /dev/null +++ b/src/components/press-release-layout/press-release-layout-slot.tsx @@ -0,0 +1,31 @@ +import classNames from 'classnames/bind'; + +import styles from './press-release-layout.module.css'; + +const cx = classNames.bind(styles); + +enum Area { + Actions = 'actions', + Content = 'content', + Image = 'image', + Title = 'title', +} + +interface PressReleaseLayoutSlotProps { + area: `${Area}` + className?: string +} + +export const PressReleaseLayoutSlot: React.FC = (props) => { + const { + area, + className, + children, + } = props; + + return ( +
          + {children} +
          + ); +}; diff --git a/src/components/press-release-layout/press-release-layout.module.css b/src/components/press-release-layout/press-release-layout.module.css index f376db27a..5442577aa 100644 --- a/src/components/press-release-layout/press-release-layout.module.css +++ b/src/components/press-release-layout/press-release-layout.module.css @@ -1,4 +1,7 @@ -@import "./press-release-layout.vars.module"; +@value tablet-portrait from "shared/styles/media.module.css"; + +$page-margin-tablet-portrait: 120px; +$page-margin-smartphone: 24px; .root { display: grid; @@ -6,25 +9,22 @@ background-color: var(--white); grid-auto-columns: auto; grid-template-areas: - "title title cover" + "title title image" "filter actions ." "content content content"; + grid-template-columns: auto auto 1fr; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { display: block; padding: 44px $page-margin-smartphone 150px; } } -.title { - grid-area: title; -} - .filter { margin: 32px 30px 0 0; grid-area: filter; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { margin-right: 0; margin-bottom: 28px; } @@ -33,13 +33,43 @@ .year { max-width: 148px; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { max-width: initial; } } .additional-note { - @media (max-width: $tablet-portrait) { + @media tablet-portrait { @mixin visually-hidden; } } + +.title { + align-self: flex-end; + padding: 32px 0; + grid-area: title; +} + +.image { + position: relative; + min-width: calc(720px - $page-margin-smartphone); + height: 268px; + margin-right: calc(-1 * $page-margin-tablet-portrait); + grid-area: image; + + @media tablet-portrait { + min-width: initial; + margin: 0 -$page-margin-smartphone; + } +} + +.content { + max-width: 840px; + margin: 64px auto 0; + grid-area: content; +} + +.actions { + align-self: flex-end; + grid-area: actions; +} diff --git a/src/components/press-release-layout/press-release-layout.tsx b/src/components/press-release-layout/press-release-layout.tsx index 7b1ca7b44..68c0bdd70 100644 --- a/src/components/press-release-layout/press-release-layout.tsx +++ b/src/components/press-release-layout/press-release-layout.tsx @@ -1,17 +1,12 @@ import classNames from 'classnames/bind'; -import { PressReleaseLayoutTitle } from './title'; -import { PressReleaseLayoutContent } from './content'; -import { PressReleaseLayoutCover } from './cover'; -import { PressReleaseLayoutActions } from './actions'; - import type { FC } from 'react'; import styles from './press-release-layout.module.css'; const cx = classNames.bind(styles); -const Component: FC = (props) => { +export const PressReleaseLayout: FC = (props) => { const { children } = props; return ( @@ -20,13 +15,3 @@ const Component: FC = (props) => {
    ); }; - -Component.displayName = 'PressReleaseLayout'; - -export const PressReleaseLayout = Object.assign(Component, { - Title: PressReleaseLayoutTitle, - Cover: PressReleaseLayoutCover, - Content: PressReleaseLayoutContent, - Actions: PressReleaseLayoutActions, -}); - diff --git a/src/components/press-release-layout/press-release-layout.vars.module.css b/src/components/press-release-layout/press-release-layout.vars.module.css deleted file mode 100644 index e83028485..000000000 --- a/src/components/press-release-layout/press-release-layout.vars.module.css +++ /dev/null @@ -1,2 +0,0 @@ -$page-margin-tablet-portrait: 120px; -$page-margin-smartphone: 24px; diff --git a/src/components/press-release-layout/title/index.ts b/src/components/press-release-layout/title/index.ts deleted file mode 100644 index 10c28db56..000000000 --- a/src/components/press-release-layout/title/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './press-release-layout-title'; diff --git a/src/components/press-release-layout/title/press-release-layout-title.module.css b/src/components/press-release-layout/title/press-release-layout-title.module.css deleted file mode 100644 index 740b7ac14..000000000 --- a/src/components/press-release-layout/title/press-release-layout-title.module.css +++ /dev/null @@ -1,5 +0,0 @@ -.root { - align-self: flex-end; - margin-bottom: 32px; - grid-area: title; -} diff --git a/src/components/project-card-list/item/project-card-list-item.module.css b/src/components/project-card-list/item/project-card-list-item.module.css index 40dc9bba5..dc05367d9 100644 --- a/src/components/project-card-list/item/project-card-list-item.module.css +++ b/src/components/project-card-list/item/project-card-list-item.module.css @@ -9,7 +9,7 @@ } @media (max-width: $tablet-portrait) { - width: unset; + width: 100%; &:nth-child(3n) { margin-right: unset; diff --git a/src/components/project-card-list/item/project-card-list-item.tsx b/src/components/project-card-list/item/project-card-list-item.tsx index c15410466..1657bbc2c 100644 --- a/src/components/project-card-list/item/project-card-list-item.tsx +++ b/src/components/project-card-list/item/project-card-list-item.tsx @@ -1,6 +1,7 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import style from './project-card-list-item.module.css'; const cx = classNames.bind(style); diff --git a/src/components/project-card-list/project-card-list.tsx b/src/components/project-card-list/project-card-list.tsx index 635a92423..12c4495a6 100644 --- a/src/components/project-card-list/project-card-list.tsx +++ b/src/components/project-card-list/project-card-list.tsx @@ -1,8 +1,9 @@ -import { HTMLAttributes } from 'react'; import classNames from 'classnames/bind'; import { ProjectCardListItem } from './item'; +import type { HTMLAttributes } from 'react'; + import styles from './project-card-list.module.css'; const cx = classNames.bind(styles); @@ -14,7 +15,7 @@ export const ProjectCardList = (props: HTMLAttributes): JSX.El ...restProps } = props; - return( + return (
      { diff --git a/src/components/project-layout/storey/project-layout-storey.tsx b/src/components/project-layout/storey/project-layout-storey.tsx index 6e7c4859c..d96388a2c 100644 --- a/src/components/project-layout/storey/project-layout-storey.tsx +++ b/src/components/project-layout/storey/project-layout-storey.tsx @@ -1,10 +1,11 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './project-layout-storey.module.css'; interface IProjectLayoutStoreyProps { - type?: 'description' | 'videos' | 'photos' | 'plays' | 'performances' | 'persons' | 'text', + type?: 'description' | 'videos' | 'photos' | 'plays' | 'performances' | 'persons' | 'text' } const cx = classNames.bind(styles); diff --git a/src/components/projects-layout/headline/projects-layout-headline.tsx b/src/components/projects-layout/headline/projects-layout-headline.tsx index a71740195..c5cd54cfa 100644 --- a/src/components/projects-layout/headline/projects-layout-headline.tsx +++ b/src/components/projects-layout/headline/projects-layout-headline.tsx @@ -1,6 +1,7 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './projects-layout-headline.module.css'; const cx = classNames.bind(styles); diff --git a/src/components/projects-layout/list/projects-layout-list.tsx b/src/components/projects-layout/list/projects-layout-list.tsx index d52a05813..b11f64625 100644 --- a/src/components/projects-layout/list/projects-layout-list.tsx +++ b/src/components/projects-layout/list/projects-layout-list.tsx @@ -1,6 +1,7 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './projects-layout-list.module.css'; const cx = classNames.bind(styles); diff --git a/src/components/projects-layout/projects-layout.tsx b/src/components/projects-layout/projects-layout.tsx index cd5776ad1..a4b811766 100644 --- a/src/components/projects-layout/projects-layout.tsx +++ b/src/components/projects-layout/projects-layout.tsx @@ -1,13 +1,14 @@ -import { ReactNode } from 'react'; import classNames from 'classnames/bind'; import { ProjectsLayoutHeadline } from './headline'; import { ProjectsLayoutList } from './list'; +import type { ReactNode } from 'react'; + import styles from './projects-layout.module.css'; interface IProjectsLayoutProps { - children: ReactNode; + children: ReactNode } const cx = classNames.bind(styles); diff --git a/src/components/review-card/review-card.stories.tsx b/src/components/review-card/review-card.stories.tsx index 39c9852c8..a05ddd763 100644 --- a/src/components/review-card/review-card.stories.tsx +++ b/src/components/review-card/review-card.stories.tsx @@ -1,7 +1,7 @@ -import { ComponentStory, ComponentMeta } from '@storybook/react'; - import { ReviewCard } from './review-card'; +import type { ComponentMeta,ComponentStory } from '@storybook/react'; + export default { title: 'Components/ReviewCard', component: ReviewCard, diff --git a/src/components/review-card/review-card.tsx b/src/components/review-card/review-card.tsx index ceeb97484..36b8eab03 100644 --- a/src/components/review-card/review-card.tsx +++ b/src/components/review-card/review-card.tsx @@ -1,11 +1,12 @@ -import { FC } from 'react'; import classNames from 'classnames/bind'; +import type { FC } from 'react'; + import styles from './review-card.module.css'; interface IReviewCardProps { - text: string, - author: string, + text: string + author: string } const cx = classNames.bind(styles); diff --git a/src/components/review-carousel/review-carousel.module.css b/src/components/review-carousel/review-carousel.module.css index e17eecd8a..43bf47181 100644 --- a/src/components/review-carousel/review-carousel.module.css +++ b/src/components/review-carousel/review-carousel.module.css @@ -60,7 +60,7 @@ .arrows { display: flex; - margin-left: 21px; + margin-left: 20px; @media (max-width: $tablet-portrait) { margin-left: auto; @@ -68,11 +68,7 @@ } .arrow { - position: relative; - width: 48px; - height: 48px; -} - -.arrowRight { - margin-left: 21px; + &:not(:last-child) { + margin-right: 20px; + } } diff --git a/src/components/review-carousel/review-carousel.stories.tsx b/src/components/review-carousel/review-carousel.stories.tsx index b16c9ba00..30068e5b3 100644 --- a/src/components/review-carousel/review-carousel.stories.tsx +++ b/src/components/review-carousel/review-carousel.stories.tsx @@ -1,9 +1,10 @@ -import { ComponentStory, ComponentMeta } from '@storybook/react'; import { ReviewCarousel } from './review-carousel'; -import { ReviewCard } from 'components/review-card'; +import { ReviewCard } from '../review-card'; -const reviewCardArgs = [ +import type { ComponentMeta,ComponentStory } from '@storybook/react'; + +const demoReviews = [ { text: 'Что-то похожее на эффект от мультфильмов типа «Сауз Парк» или про коня Боджэка возникает — я думаю, и пьеса написана с этой интонацией американских взрослых мультсериалов. И как хорошо все это с куклой-носочком. Так все чисто сделано!', author: 'Наталья Зайцева', @@ -16,6 +17,10 @@ const reviewCardArgs = [ text: 'Мне данный формат дал возможность самой выбирать, как двигается персонаж, что на нем надето, какую машину он водит, и что за плакат висит в подвале церкви. Это было приятно, ведь я как будто сама поучаствовала в спектакле', author: 'Дарья Морозова', }, + { + text: 'Мне данный формат дал возможность самой выбирать, как двигается персонаж, что на нем надето, какую машину он водит, и что за плакат висит в подвале церкви. Это было приятно, ведь я как будто сама поучаствовала в спектакле', + author: 'Дарья Морозова', + }, ]; export default { @@ -26,8 +31,8 @@ export default { const Template: ComponentStory = (args) => ( - {reviewCardArgs.map((cardArgs, index) => ( - + {demoReviews.map((demoReview, index) => ( + ))} ); diff --git a/src/components/review-carousel/review-carousel.tsx b/src/components/review-carousel/review-carousel.tsx index 5c331eef2..bad50f843 100644 --- a/src/components/review-carousel/review-carousel.tsx +++ b/src/components/review-carousel/review-carousel.tsx @@ -1,22 +1,21 @@ -import { FC, Children, useState } from 'react'; -import { useKeenSlider } from 'keen-slider/react'; import classNames from 'classnames/bind'; +import { useKeenSlider } from 'keen-slider/react'; +import React, { useState } from 'react'; -import { SliderButton } from 'components/ui/slider-button'; +import { ArrowButton } from 'components/arrow-button'; import { SliderDots } from 'components/ui/slider-dots'; - -import type KeenSlider from 'keen-slider/react'; +import breakpoints from 'shared/breakpoints'; import styles from './review-carousel.module.css'; interface IReviewCarousel { - title: string, - mode: 'single' | 'multiple', + title: string + mode: 'single' | 'multiple' } const cx = classNames.bind(styles); -export const ReviewCarousel: FC = (props) => { +export const ReviewCarousel: React.FC = (props) => { const { title, mode, @@ -28,47 +27,31 @@ export const ReviewCarousel: FC = (props) => { single: 2, }[mode]; + const [loaded, setLoaded] = useState(false); const [currentSlideIndex, setCurrentSlideIndex] = useState(0); - const [carouselRef, carousel] = useKeenSlider({ + const [sliderRef, instanceRef] = useKeenSlider({ initial: 0, - slidesPerView, - spacing: 30, - centered: mode === 'single', - slideChanged(carousel) { - setCurrentSlideIndex(carousel.details().relativeSlide); + slides: { + perView: slidesPerView, + spacing: 30, + origin: mode === 'single' ? 'center' : 'auto' + }, + created() { + setLoaded(true); + }, + slideChanged(s) { + setCurrentSlideIndex(s.track.details.rel); }, breakpoints: { - '(max-width: 728px)': { - slidesPerView: 1, + [`(max-width: ${breakpoints['tablet-portrait']})`]: { + slides: { perView: 1 }, } } }); - const handleDotClick = (dotIndex: number) => { - const { slidesPerView } = carousel.details(); - const slideIndex = mode === 'single' - ? dotIndex - : (slidesPerView * (dotIndex + 1)) - slidesPerView + 1; - carousel.moveToSlideRelative(slideIndex); - }; - - const handleNextClick = () => { - const { slidesPerView, absoluteSlide } = carousel.details(); - mode === 'single' - ? carousel.next() - : carousel.moveToSlide(absoluteSlide + slidesPerView); - }; - - const handlePrevClick = () => { - const { slidesPerView, absoluteSlide } = carousel.details(); - mode === 'single' - ? carousel.prev() - : carousel.moveToSlide(absoluteSlide - slidesPerView); - }; - - const lastSlideReached = carousel && (mode === 'single' - ? currentSlideIndex === carousel.details().size - 1 - : currentSlideIndex === carousel.details().size - carousel.details().slidesPerView); + const lastSlideReached = !!instanceRef.current && (mode === 'single' + ? currentSlideIndex === instanceRef.current.slides.length - 1 + : currentSlideIndex === instanceRef.current.slides.length - slidesPerView); return (
      @@ -76,27 +59,29 @@ export const ReviewCarousel: FC = (props) => {

      {title}

      - {carousel && ( + {loaded && instanceRef.current && ( <>
      - -
      @@ -104,10 +89,10 @@ export const ReviewCarousel: FC = (props) => { )}
      - {Children.map(children, (slide, index) => ( + {React.Children.map(children, (slide, index) => (
      {slide}
      @@ -116,15 +101,3 @@ export const ReviewCarousel: FC = (props) => {
      ); }; - -function getSlidesGroups(carouselInstance: KeenSlider) { - const { size, slidesPerView } = carouselInstance.details(); - - return Array.from(Array(size).keys()).filter((x, index) => index % slidesPerView === 0); -} - -function getSlideGroupIndex(carouselInstance: KeenSlider, slideIndex: number) { - const { slidesPerView } = carouselInstance.details(); - - return Math.ceil(slideIndex / slidesPerView); -} diff --git a/src/components/schedule-headline/index.ts b/src/components/schedule-headline/index.ts new file mode 100644 index 000000000..8f2db9533 --- /dev/null +++ b/src/components/schedule-headline/index.ts @@ -0,0 +1 @@ +export * from './schedule-headline'; diff --git a/src/components/schedule-headline/schedule-headline.module.css b/src/components/schedule-headline/schedule-headline.module.css new file mode 100644 index 000000000..7ecc62693 --- /dev/null +++ b/src/components/schedule-headline/schedule-headline.module.css @@ -0,0 +1,82 @@ +@value tablet-portrait from "shared/styles/media.module.css"; + +.root { + display: grid; + grid-template: + ". title" + "note announce" + "note registration" / 1fr 1fr; + row-gap: 8px; + + @media tablet-portrait { + padding: 0 24px 30px; + grid-template: + "title" + "announce" + "registration" + "note"; + row-gap: 24px; + } +} + +.title { + @mixin headline; + @mixin headline1; + + grid-area: title; + + @media tablet-portrait { + @mixin headline4; + } +} + +.paragraph { + @mixin text; + @mixin textSmall; + + margin: 0; + + + .paragraph { + margin-top: 8px; + + @media tablet-portrait { + margin-top: 0; + } + } +} + +.schedule-note { + display: flex; + flex-direction: column; + grid-area: note; + + @media tablet-portrait { + padding-left: 0; + } +} + +.schedule-note-text { + composes: paragraph; + max-width: 320px; + margin-left: 24px; + + @media tablet-portrait { + padding-left: 20px; + } +} + +.registration-announce { + composes: paragraph; + padding: 0 0 0 64px; + grid-area: registration; +} + +.schedule-announce { + composes: paragraph; + padding: 24px 0 0 64px; + grid-area: announce; + + @media tablet-portrait { + padding-left: 120px; + } +} diff --git a/src/components/schedule-headline/schedule-headline.tsx b/src/components/schedule-headline/schedule-headline.tsx new file mode 100644 index 000000000..17060097e --- /dev/null +++ b/src/components/schedule-headline/schedule-headline.tsx @@ -0,0 +1,46 @@ +import classNames from 'classnames/bind'; + +import { Icon } from 'components/ui/icon'; + +import type { ScheduleMeta } from 'core/schedule'; + +import styles from './schedule-headline.module.css'; + +interface ScheduleHeadlineProps extends Omit { + title: string +} + +const cx = classNames.bind(styles); + +export const ScheduleHeadline: React.VFC = (props) => { + const { + title, + scheduleAnnounce, + scheduleNote, + registrationAnnounce, + } = props; + + return ( +
      +

      + {title} +

      +

      + {scheduleAnnounce} +

      + {registrationAnnounce && ( +

      + {registrationAnnounce} +

      + )} + {scheduleNote && ( +
      + +

      + {scheduleNote} +

      +
      + )} +
      + ); +}; diff --git a/src/components/schedule-layout/index.ts b/src/components/schedule-layout/index.ts new file mode 100644 index 000000000..c6df3047d --- /dev/null +++ b/src/components/schedule-layout/index.ts @@ -0,0 +1,6 @@ +import { ScheduleLayout as Component } from './schedule-layout'; +import { ScheduleLayoutSlot } from './schedule-layout-slot'; + +export const ScheduleLayout = Object.assign(Component, { + Slot: ScheduleLayoutSlot, +}); diff --git a/src/components/schedule-layout/schedule-layout-slot.tsx b/src/components/schedule-layout/schedule-layout-slot.tsx new file mode 100644 index 000000000..b23d6968f --- /dev/null +++ b/src/components/schedule-layout/schedule-layout-slot.tsx @@ -0,0 +1,28 @@ +import classNames from 'classnames/bind'; + +import styles from './schedule-layout.module.css'; + +const cx = classNames.bind(styles); + +enum Area { + Headline = 'headline' +} + +interface ScheduleLayoutSlotProps { + area: `${Area}` + className?: string +} + +export const ScheduleLayoutSlot: React.FC = (props) => { + const { + area, + className, + children, + } = props; + + return ( +
      + {children} +
      + ); +}; diff --git a/src/components/schedule-layout/schedule-layout.module.css b/src/components/schedule-layout/schedule-layout.module.css new file mode 100644 index 000000000..96b728e68 --- /dev/null +++ b/src/components/schedule-layout/schedule-layout.module.css @@ -0,0 +1,19 @@ +@value tablet-portrait from "shared/styles/media.module.css"; + +.root { + display: grid; + padding: 60px 32px; + + @media tablet-portrait { + padding: 0; + } +} + +.headline { + margin: 0 144px 112px 92px; + + @media tablet-portrait { + border-bottom: 1px solid var(--coal); + margin: 0 0 56px; + } +} diff --git a/src/components/schedule-layout/schedule-layout.tsx b/src/components/schedule-layout/schedule-layout.tsx new file mode 100644 index 000000000..cd240b54f --- /dev/null +++ b/src/components/schedule-layout/schedule-layout.tsx @@ -0,0 +1,17 @@ +import classNames from 'classnames/bind'; + +import type { FC } from 'react'; + +import styles from './schedule-layout.module.css'; + +const cx = classNames.bind(styles); + +export const ScheduleLayout: FC = (props) => { + const { children } = props; + + return ( +
      + {children} +
      + ); +}; diff --git a/src/components/search-layout/index.ts b/src/components/search-layout/index.ts new file mode 100644 index 000000000..7ac497075 --- /dev/null +++ b/src/components/search-layout/index.ts @@ -0,0 +1,6 @@ +import { SearchLayout as Component } from './search-layout'; +import { SearchLayoutSlot } from './search-layout-slot'; + +export const SearchLayout = Object.assign(Component, { + Slot: SearchLayoutSlot, +}); diff --git a/src/components/search-layout/search-layout-slot.tsx b/src/components/search-layout/search-layout-slot.tsx new file mode 100644 index 000000000..5d1daa2c5 --- /dev/null +++ b/src/components/search-layout/search-layout-slot.tsx @@ -0,0 +1,33 @@ +import classNames from 'classnames/bind'; + +import styles from './search-layout.module.css'; + +const cx = classNames.bind(styles); + +enum Area { + Breadcrumb = 'breadcrumb', + Message = 'message', + Search = 'search', + Content = 'content', + NotFoundNote = 'not-found-note', +} + +interface SearchLayoutProps { + area: `${Area}` +} + +export const SearchLayoutSlot: React.FC = (props) => { + const { + area, + children, + } = props; + + const Tag: React.ElementType = (area === Area.Message || area === Area.NotFoundNote) + ? 'p' : 'div'; + + return ( + + {children} + + ); +}; diff --git a/src/components/search-layout/search-layout.module.css b/src/components/search-layout/search-layout.module.css new file mode 100644 index 000000000..35ff78ae5 --- /dev/null +++ b/src/components/search-layout/search-layout.module.css @@ -0,0 +1,54 @@ +@value tablet-portrait from "shared/styles/media.module.css"; + +.root { + padding: 64px 120px; + + @media tablet-portrait { + padding: 24px; + } +} + +.breadcrumb { + margin: 0 0 32px; + + @media tablet-portrait { + display: none; + } +} + +.message { + @mixin headline; + @mixin headline3; + + max-width: 740px; + margin: 0 0 24px; + + @media tablet-portrait { + @mixin headline4; + } +} + +.search { + max-width: 500px; + margin: 0 0 64px; +} + +.content { + display: grid; + grid-gap: 96px; + grid-template-columns: 780px 1fr; + + @media tablet-portrait { + display: flex; + flex-direction: column-reverse; + padding: 0 64px; + + > * &:not(:last-child) { + margin-bottom: 100px; + } + } +} + +.not-found-note { + max-width: 500px; +} diff --git a/src/components/search-layout/search-layout.tsx b/src/components/search-layout/search-layout.tsx new file mode 100644 index 000000000..22105c041 --- /dev/null +++ b/src/components/search-layout/search-layout.tsx @@ -0,0 +1,15 @@ +import classNames from 'classnames/bind'; + +import styles from './search-layout.module.css'; + +const cx = classNames.bind(styles); + +export const SearchLayout: React.FC = (props) => { + const { children } = props; + + return ( +
      + {children} +
      + ); +}; diff --git a/src/components/search-result-authors/index.ts b/src/components/search-result-authors/index.ts deleted file mode 100644 index 591362300..000000000 --- a/src/components/search-result-authors/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './search-result-authors'; diff --git a/src/components/search-result-authors/search-result-authors.module.css b/src/components/search-result-authors/search-result-authors.module.css deleted file mode 100644 index 41deccbaf..000000000 --- a/src/components/search-result-authors/search-result-authors.module.css +++ /dev/null @@ -1,45 +0,0 @@ -.authors { - padding: 0; - margin: 0; - margin-bottom: 60px; - - &:last-child { - margin-bottom: 0; - } -} - -.alphabetLetter { - @mixin headline; - @mixin headline4; -} - -.authorsList { - padding: 0; - margin: 0; - margin-top: 14px; - list-style: none; -} - -.authorsItem { - padding: 0; - margin: 0; - margin-bottom: 12px; - - &:last-child { - margin-bottom: 0; - } -} - -.authorsLink { - @mixin text; - @mixin textLarge; - - padding: 1px 8px 3px; - color: var(--coal); - text-decoration: none; - - &:hover { - background-color: var(--coal); - color: var(--white); - } -} diff --git a/src/components/search-result-authors/search-result-authors.tsx b/src/components/search-result-authors/search-result-authors.tsx deleted file mode 100644 index 17caa516b..000000000 --- a/src/components/search-result-authors/search-result-authors.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { FC } from 'react'; - -import { InfoLink } from '../ui/info-link'; - -import style from './search-result-authors.module.css'; - -interface ISearchResultAuthorsProps { - authors: { - title: string, - data: Author[], - } -} - -interface Author { - slug: string, - name: string, -} - -const SearchResultAuthors: FC = ({ authors }) => { - return ( -
    • - - {authors.title} - -
        - {authors.data.map((author) => ( -
      • - - {authors.data} - -
      • - ))} -
      -
    • - ); -}; - -export default SearchResultAuthors; - diff --git a/src/components/section/section.module.css b/src/components/section/section.module.css index fa55e9354..ab9cb3eed 100644 --- a/src/components/section/section.module.css +++ b/src/components/section/section.module.css @@ -1,3 +1,5 @@ +@value tablet-portrait from "shared/styles/media.module.css"; + .common { box-sizing: border-box; } @@ -9,7 +11,7 @@ max-width: 716px; margin: 0 auto 48px; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { @mixin headline6; max-width: 366px; @@ -23,7 +25,7 @@ max-width: 450px; margin: 0 auto 48px 300px; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { max-width: 366px; margin: 0 auto 22px 24px; } @@ -37,7 +39,7 @@ max-width: 450px; margin: 0 auto 58px 300px; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { max-width: 366px; margin: 0 auto 24px 24px; } @@ -48,7 +50,7 @@ composes: common; padding: 100px 60px 30px; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { padding: 56px 24px; } @@ -59,7 +61,7 @@ max-width: 334px; margin-bottom: 48px; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { max-width: 255px; } } @@ -71,7 +73,7 @@ .title { @mixin visually-hidden; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { @mixin undo-visually-hidden; max-width: 366px; @@ -84,7 +86,7 @@ composes: common; padding: 60px 56px; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { padding: 36px 24px; } } @@ -93,15 +95,15 @@ composes: common; padding: 60px 32px; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { padding: 36px 24px; } } .places { composes: common; - padding: 65px 60px 105px 60px; - background-color: white; + padding: 65px 60px 105px; + background-color: var(--white); .title { @mixin headline; @@ -109,7 +111,7 @@ margin-bottom: 74px; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { @mixin headline4; margin-bottom: 40px; @@ -118,10 +120,10 @@ } .homepage-shortlist { - padding: 90px 60px 102px 60px; + padding: 90px 60px 102px; - @media (max-width: $tablet-portrait) { - padding: 40px 30px 40px 30px; + @media tablet-portrait { + padding: 40px 30px; } .title { @@ -131,7 +133,7 @@ max-width: 682px; margin-bottom: 50px; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { @mixin headline4; margin-bottom: 24px; @@ -143,7 +145,7 @@ padding: 90px 70px 114px 840px; background-color: var(--beige); - @media (max-width: $tablet-portrait) { + @media tablet-portrait { padding: 80px 24px; } } @@ -151,7 +153,7 @@ .blog-entries { padding: 0 90px; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { padding: 0 24px; } } @@ -159,7 +161,34 @@ .news { padding: 0 90px; - @media (max-width: $tablet-portrait) { + @media tablet-portrait { padding: 0 24px; } } + +.author-plays { + padding: 130px 30px; + background-color: var(--beige); + + @media tablet-portrait { + @mixin hide-scrollbars; + + overflow: scroll; + padding: 10px 0 80px 25px; + } +} + +.volunteers { + padding: 124px 0 148px; + background-color: var(--light-green); + + .title { + margin: 0 210px 0 720px; + } + + .note { + max-width: 428px; + padding: 0 210px; + margin-top: 92px; + } +} diff --git a/src/components/section/section.stories.tsx b/src/components/section/section.stories.tsx deleted file mode 100644 index bc1040d9a..000000000 --- a/src/components/section/section.stories.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { ComponentStory, ComponentMeta } from '@storybook/react'; - -import { Section } from 'components/section'; -import { BasicPlayCardList } from 'components/ui/basic-play-card-list'; -import { Default as DefaultBasicPlayCardList } from 'components/ui/basic-play-card-list/basic-play-card-list.stories'; -import { Default as DefaultPersonCardList } from 'components/person-card-list/person-card-list.stories'; - -export default { - title: 'Components/Section', - component: Section, - subcomponents: { BasicPlayCardList }, - decorators: [ - (Story) => ( -
      - -
      - ), - ], -} as ComponentMeta; - -const Template: ComponentStory = ({ ...args }) => { - return ( -
      - ); -}; - -export const BasicPlayCard = Template.bind({}); -BasicPlayCard.parameters = { - layout: 'fullscreen' -}; -BasicPlayCard.args = { - children: , - type: 'plays', - title: 'Заголовок секции с контентом' -}; - -export const PersonCard = Template.bind({}); -PersonCard.parameters = { - layout: 'fullscreen' -}; -PersonCard.args = { - children: , - type: 'persons', - title: 'Заголовок секции с контентом' -}; diff --git a/src/components/section/section.tsx b/src/components/section/section.tsx index b9c98b092..8d27876df 100644 --- a/src/components/section/section.tsx +++ b/src/components/section/section.tsx @@ -1,10 +1,10 @@ -import { ReactNode, HTMLAttributes } from 'react'; import classNames from 'classnames/bind'; import styles from './section.module.css'; -interface SectionProps extends HTMLAttributes { - type?: 'plays' +export interface SectionProps { + type?: + | 'plays' | 'persons' | 'partners' | 'play' @@ -15,19 +15,22 @@ interface SectionProps extends HTMLAttributes { | 'author-call-to-email' | 'blog-entries' | 'news' + | 'author-plays' + | 'volunteers' title?: string - titleTag?: 'p' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' - children: ReactNode + titleTag?: React.ElementType + note?: React.ReactNode className?: string } const cx = classNames.bind(styles); -export const Section = (props: SectionProps) => { +export const Section: React.FC = (props) => { const { type, title, titleTag: TitleTag = 'h2', + note, children, className, ...restProps @@ -47,6 +50,11 @@ export const Section = (props: SectionProps) => { )} {children} + {note && ( +
      + {note} +
      + )}
      ); }; diff --git a/src/components/select/select.module.css b/src/components/select/select.module.css deleted file mode 100644 index 50c64782a..000000000 --- a/src/components/select/select.module.css +++ /dev/null @@ -1,114 +0,0 @@ -.common { - @mixin text; - - position: relative; - font-size: 20px; - line-height: 28px; - user-select: none; -} - -.closed { - composes: common; -} - -.handle { - @mixin limitText; - - position: relative; - display: block; - width: 100%; - padding: 8px 42px 8px 16px; - border: 1px solid var(--coal); - border-top: 0; - background: 0; - font: inherit; - text-align: left; - - &:hover { - background-color: var(--coal); - color: var(--white); - } - - &::after { - position: absolute; - top: 50%; - right: 8px; - display: block; - width: 20px; - height: 20px; - background-color: var(--coal); - background-color: currentColor; - content: ''; - mask: url('../../shared/icons/arrow-down.svg') 100% 100%; - mask-size: cover; - transform: translateY(-50%); - } -} - -.dropdown { - top: 100%; - display: none; - width: 100%; - max-height: 260px; - box-sizing: border-box; - padding: 0; - border: 1px solid var(--coal); - border-top: 0; - margin: 0; - background-color: var(--beige); - overflow-y: auto; - - &::-webkit-scrollbar { - width: 4px; - } - - &::-webkit-scrollbar-thumb { - background: var(--coal); - } - - &::-webkit-scrollbar-track { - background: 0; - } -} - -.opened { - composes: common; - - .dropdown { - position: absolute; - z-index: 1; - display: block; - } - - .handle { - background-color: var(--coal); - color: var(--white); - } -} - -.option-common { - display: block; - padding: 12px 30px; -} - -.option-regular { - composes: option-common; -} - -.option-selected { - composes: option-common; - position: relative; - - &::before { - position: absolute; - top: 50%; - left: 10px; - display: block; - width: 10px; - height: 10px; - background-color: var(--coal); - border-radius: 5px; - content: ''; - transform: translateY(-50%); - } -} diff --git a/src/components/select/select.tsx b/src/components/select/select.tsx deleted file mode 100644 index f392da9ac..000000000 --- a/src/components/select/select.tsx +++ /dev/null @@ -1,105 +0,0 @@ -import { useState, useRef, useEffect } from 'react'; -import classNames from 'classnames/bind'; - -import styles from './select.module.css'; - -export type SelectOption = { - text: string - value: ValueType -} - -export type SelectOptionCheckHandler = (option: SelectOption) => void - -interface SelectProps { - clearable?: boolean, - placeholder: string, - options: SelectOption[] - selectedOption?: SelectOption - onChange: SelectOptionCheckHandler -} - -const cx = classNames.bind(styles); - -const emptyOption = { - text: '-', - value: null, -}; - -export const Select = (props: SelectProps) => { - const [opened, setOpened] = useState(false); - const containerRef = useRef(null); - const { - clearable = false, - placeholder, - options, - selectedOption, - onChange, - } = props; - - const handleOptionCheck = (option: SelectOption) => () => { - if (onChange) { - onChange(option); - } - closeDropdown(); - }; - - const toggleDropdown = () => { - setOpened((opened) => !opened); - }; - - const closeDropdown = () => { - setOpened(false); - }; - - const handleClickOutside = (event: MouseEvent | KeyboardEvent) => { - if (containerRef.current && containerRef.current.contains(event.target as Node)) { - return; - } - closeDropdown(); - }; - - useEffect(() => { - (['click', 'keyup'] as const).forEach((event) => { - window.addEventListener(event, handleClickOutside, true); - }); - - return () => { - (['click', 'keyup'] as const).forEach((event) => { - window.removeEventListener(event, handleClickOutside, true); - }); - }; - }, []); - - return ( -
      - -
        - {clearable && selectedOption && ( -
      • - {emptyOption.text} -
      • - )} - {options.map((option, index) => ( -
      • - {option.text} -
      • - ))} -
      -
      - ); -}; diff --git a/src/components/seo/seo.tsx b/src/components/seo/seo.tsx index fadce341d..151b58859 100644 --- a/src/components/seo/seo.tsx +++ b/src/components/seo/seo.tsx @@ -1,9 +1,6 @@ import Head from 'next/head'; -import settings from 'settings'; - -import type { FC } from 'react'; -import type { Url } from 'shared/types'; +import settings from 'core/settings/constants'; interface SEOProps { title: string @@ -11,7 +8,7 @@ interface SEOProps { image?: Url } -export const SEO: FC = (props) => { +export const SEO: React.FC = (props) => { const { defaultMeta } = settings; const { title, @@ -29,6 +26,7 @@ export const SEO: FC = (props) => { {`${title} - ${settings.defaultMeta.title}`} + diff --git a/src/components/share-links/share-links.module.css b/src/components/share-links/share-links.module.css index 2c9b0155b..5ec9301ba 100644 --- a/src/components/share-links/share-links.module.css +++ b/src/components/share-links/share-links.module.css @@ -15,6 +15,11 @@ top: -22px; } -.link { +.link.link { + padding: 0; margin: 0 8px 0 0; + + :first-child { + margin-right: 0; + } } diff --git a/src/components/share-links/share-links.tsx b/src/components/share-links/share-links.tsx index 7106c8c4c..801f2e96b 100644 --- a/src/components/share-links/share-links.tsx +++ b/src/components/share-links/share-links.tsx @@ -3,8 +3,8 @@ import { useRouter } from 'next/router'; import { Button } from 'components/ui/button2'; import { Icon } from 'components/ui/icon'; -import { addBaseUrlToPath } from 'shared/helpers/url'; import { getShareUrls } from 'shared/constants/share-urls'; +import { addBaseUrlToPath } from 'shared/helpers/url'; import type { FC } from 'react'; @@ -36,7 +36,7 @@ export const ShareLinks: FC = (props) => { diff --git a/src/components/spinner/spinner.module.css b/src/components/spinner/spinner.module.css index 6267e08d5..1b74a2b64 100644 --- a/src/components/spinner/spinner.module.css +++ b/src/components/spinner/spinner.module.css @@ -1,4 +1,4 @@ -$particle-animation: particle 3s infinite ease-in-out; +$particle-animation: particle 3s infinite ease-in-out, delay var(--delay) forwards ease; $particle-amplitude: 1.5; .inner { @@ -11,12 +11,12 @@ $particle-amplitude: 1.5; .inner::after { display: block; animation: $particle-animation; - content: ''; + content: ""; } .particle { animation: $particle-animation; - animation-direction: reverse; + animation-direction: reverse, normal; } .inner::before, @@ -46,3 +46,17 @@ $particle-amplitude: 1.5; transform: none; } } + +@keyframes delay { + 0% { + opacity: 0; + } + + 99% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} diff --git a/src/components/sponsors-section/sponsors-section.module.css b/src/components/sponsors-section/sponsors-section.module.css index 53dd78b14..5b7681899 100644 --- a/src/components/sponsors-section/sponsors-section.module.css +++ b/src/components/sponsors-section/sponsors-section.module.css @@ -53,11 +53,9 @@ } .mailLink { - display: inline-block; - border-bottom: 1px solid; - color: inherit; - line-height: .9; - text-decoration: none; + padding: 0; + text-decoration: underline; + text-decoration-thickness: 1px; } .mainText { diff --git a/src/components/sponsors-section/sponsors-section.tsx b/src/components/sponsors-section/sponsors-section.tsx index 56a1164cd..0706c1534 100644 --- a/src/components/sponsors-section/sponsors-section.tsx +++ b/src/components/sponsors-section/sponsors-section.tsx @@ -1,15 +1,15 @@ +import { Button } from 'components/ui/button2'; import { Icon } from 'components/ui/icon'; -import { InfoLink } from 'components/ui/info-link/info-link'; import type { FC } from 'react'; import style from './sponsors-section.module.css'; interface SponsorsSectionProps { - title: string, - callToEmail: string, - callToEmailAddress?: string, - description: string, + title: string + callToEmail: string + callToEmailAddress?: string + description: string } const SponsorsSection: FC = (props) => { @@ -29,13 +29,15 @@ const SponsorsSection: FC = (props) => {

      {callToEmail} - + className={style.mailLink} + animation='invert' + > + {callToEmailAddress} +

      )} diff --git a/src/components/team-page/art-directorate/section/art-directorate-section.tsx b/src/components/team-page/art-directorate/section/art-directorate-section.tsx index 2eb44ce80..68246d20b 100644 --- a/src/components/team-page/art-directorate/section/art-directorate-section.tsx +++ b/src/components/team-page/art-directorate/section/art-directorate-section.tsx @@ -1,7 +1,7 @@ -import React, { FC } from 'react'; +import PersonsList from 'components/persons-list'; -import { FestivalTeams } from 'api-typings'; -import PersonsList from '../../../persons-list'; +import type { FestivalTeams } from '__generated__/api-typings'; +import type { FC } from 'react'; import styles from './art-directorate-section.module.css'; diff --git a/src/components/team-page/festival-team/festival-team-section.tsx b/src/components/team-page/festival-team/festival-team-section.tsx index e84261d8f..137268362 100644 --- a/src/components/team-page/festival-team/festival-team-section.tsx +++ b/src/components/team-page/festival-team/festival-team-section.tsx @@ -1,7 +1,8 @@ -import React, { FC, useMemo } from 'react'; +import { useMemo } from 'react'; import PersonsList from 'components/persons-list'; -import { FestivalTeams } from 'api-typings'; + +import type { FestivalTeams } from '__generated__/api-typings'; import styles from './festival-team-section.module.css'; @@ -9,7 +10,7 @@ interface FestivalTeamSectionProps { cards: Array } -const FestivalTeamSection: FC = (props) => { +const FestivalTeamSection: React.FC = (props) => { const { cards } = props; const selectedCards = useMemo(()=> { diff --git a/src/components/teaser-card/teaser-card.tsx b/src/components/teaser-card/teaser-card.tsx index 0b257d612..00de7e762 100644 --- a/src/components/teaser-card/teaser-card.tsx +++ b/src/components/teaser-card/teaser-card.tsx @@ -6,7 +6,6 @@ import { Button } from 'components/ui/button2'; import { Icon } from 'components/ui/icon'; import type { FC } from 'react'; -import type { Url } from 'shared/types'; import styles from './teaser-card.module.css'; diff --git a/src/components/teaser-list/teaser-list.tsx b/src/components/teaser-list/teaser-list.tsx index 8b0aaa7d4..98a2ac062 100644 --- a/src/components/teaser-list/teaser-list.tsx +++ b/src/components/teaser-list/teaser-list.tsx @@ -2,8 +2,8 @@ import classNames from 'classnames/bind'; import { TeaserCard } from 'components/teaser-card/teaser-card'; +import type { Banner } from '__generated__/api-typings'; import type { FC } from 'react'; -import type { Banner } from 'api-typings'; import styles from './teaser-list.module.css'; diff --git a/src/components/ui/basic-play-card-list/basic-play-card-list.module.css b/src/components/ui/basic-play-card-list/basic-play-card-list.module.css deleted file mode 100644 index c943a1681..000000000 --- a/src/components/ui/basic-play-card-list/basic-play-card-list.module.css +++ /dev/null @@ -1,34 +0,0 @@ -.list { - @mixin hide-scrollbars; - - --padding: 24px; - - position: relative; - display: grid; - box-sizing: border-box; - justify-content: center; - padding: 0 var(--padding); - gap: 36px 30px; - grid-template-columns: repeat(auto-fit, 240px); - scroll-behavior: smooth; - - @media (max-width: $tablet-portrait) { - position: relative; - overflow: auto; - justify-content: start; - grid-auto-columns: 244px; - grid-auto-flow: column; - row-gap: 0; - scroll-padding-left: var(--padding); - scroll-snap-type: x mandatory; - - & > * { - scroll-snap-align: start; - - &:last-child { - padding-right: var(--padding); - margin-right: calc(var(--padding) * -1); - } - } - } -} diff --git a/src/components/ui/basic-play-card-list/basic-play-card-list.stories.tsx b/src/components/ui/basic-play-card-list/basic-play-card-list.stories.tsx deleted file mode 100644 index ecd54e3b5..000000000 --- a/src/components/ui/basic-play-card-list/basic-play-card-list.stories.tsx +++ /dev/null @@ -1,33 +0,0 @@ -/* eslint-disable react/prop-types */ -import { ComponentMeta, Story } from '@storybook/react'; - -import { BasicPlayCard, IBasicPlayCardProps } from 'components/ui/basic-play-card'; -import { BasicPlayCardList } from 'components/ui/basic-play-card-list'; -import { CardDefault } from '../basic-play-card/basic-play-card.stories'; - -export default { - title: 'ui/BasicPlayCardList', - component: BasicPlayCardList, - subcomponents: { BasicPlayCard }, - decorators: [ - (Story) => ( -
      - -
      - ), - ], -} as ComponentMeta; - -const ListTemplate: Story = ({ items }) => ( - - {(items as IBasicPlayCardProps[]).map((item, idx) => ( - - ))} - -); - -export const Default = ListTemplate.bind({}); -Default.parameters = { - layout: 'fullscreen' -}; -Default.args = { items: Array.from(Array(7)).map(() => CardDefault.args) }; diff --git a/src/components/ui/basic-play-card-list/basic-play-card-list.tsx b/src/components/ui/basic-play-card-list/basic-play-card-list.tsx deleted file mode 100644 index 3bb204b06..000000000 --- a/src/components/ui/basic-play-card-list/basic-play-card-list.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { ReactNode } from 'react'; -import classNames from 'classnames/bind'; - -import styles from './basic-play-card-list.module.css'; - -const cx = classNames.bind(styles); - -interface IBasicPlayCardListProps extends React.HTMLAttributes { - children: ReactNode; -} - -export const BasicPlayCardList = (props: IBasicPlayCardListProps): JSX.Element => { - const { children } = props; - - return ( -
      - {children} -
      - ); -}; diff --git a/src/components/ui/basic-play-card-list/index.ts b/src/components/ui/basic-play-card-list/index.ts deleted file mode 100644 index 6243c0e60..000000000 --- a/src/components/ui/basic-play-card-list/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './basic-play-card-list'; diff --git a/src/components/ui/basic-play-card/basic-play-card.module.css b/src/components/ui/basic-play-card/basic-play-card.module.css deleted file mode 100644 index bed9b15fa..000000000 --- a/src/components/ui/basic-play-card/basic-play-card.module.css +++ /dev/null @@ -1,103 +0,0 @@ -.card { - display: flex; - flex-direction: column; -} - -.container { - display: flex; - min-height: 300px; - flex-direction: column; - justify-content: space-between; - background-color: var(--light-green); - - @media (max-width: $tablet-portrait) { - min-height: 340px; - } -} - -.buttonCustom { - height: 56px; - opacity: 0; - transition: visibility .5s ease-in-out, opacity .5s ease-in-out; - visibility: hidden; - - @media (max-width: $tablet-portrait) { - opacity: 1; - visibility: visible; - } -} - -.container:hover .buttonCustom { - opacity: 1; - visibility: visible; -} - -.title { - @mixin headline; - @mixin headline7; - @mixin truncated-text 6; - - margin: 24px 31px auto 24px; - - @media (max-width: $tablet-portrait) { - margin: 16px 46px auto 16px; - } -} - -.info { - display: flex; - flex-direction: column; - align-items: flex-start; - margin: 16px 0 auto; - - @media (max-width: $tablet-portrait) { - margin-top: 24px; - } -} - -.author { - display: inline; - max-width: 190px; - padding: 2px 4px; - margin: -2px -4px; - -webkit-box-decoration-break: clone; - box-decoration-break: clone; -} - -.authorMultiple { - max-width: 238px; -} - -.authorName { - @mixin headline; - @mixin headline7; -} - -.authorName:hover { - background-color: var(--coal); - color: var(--white); - cursor: pointer; -} - -.city { - @mixin text; - @mixin textSmall; - - margin: 0; - margin-top: 4px; - - @media (max-width: $tablet-portrait) { - margin-top: 8px; - } -} - -.year { - @mixin text; - @mixin textSmall; - - margin: 0; -} - -.hiddenText { - @mixin visually-hidden; -} diff --git a/src/components/ui/basic-play-card/basic-play-card.stories.tsx b/src/components/ui/basic-play-card/basic-play-card.stories.tsx deleted file mode 100644 index dfbd7bb75..000000000 --- a/src/components/ui/basic-play-card/basic-play-card.stories.tsx +++ /dev/null @@ -1,79 +0,0 @@ -import React from 'react'; -import { ComponentStory, ComponentMeta } from '@storybook/react'; - -import { BasicPlayCard } from './basic-play-card'; - -export default { - title: 'UI/BasicPlayCard', - component: BasicPlayCard, -} as ComponentMeta; - -const Template: ComponentStory = (args) => ; - -export const CardDefault = Template.bind({}); -CardDefault.args = { - play: { - title: 'Конкретные разговоры пожилых супругов ни о чём', - city: 'Санкт-Петербург', - year: 2020, - readingUrl: 'https://lubimovka.ru/', - downloadUrl: 'https://lubimovka.ru/', - authors: [{ - slug: 'Ekaterina_Avgustenyak', - name: 'Екатерина Августеняк', - }], - }, -}; - -export const PlayCardWithMultipleAuthors = Template.bind({}); -PlayCardWithMultipleAuthors.args = { - play: { - title: 'Конкретные разговоры пожилых супругов ни о чём', - city: 'Санкт-Петербург', - year: 2020, - readingUrl: 'https://lubimovka.ru/', - downloadUrl: 'https://lubimovka.ru/', - authors: [ - { - slug: 'Ekaterina_Avgustenyak', - name: 'Екатерина Августеняк', - }, - { - slug: 'Anton_Chehov', - name: 'Антон Чехов', - }, - { - slug: 'Vasiliy_Kostryakov', - name: 'Василий Косотрясов', - }, - ], - }, -}; - -export const PlayCardWithVisibleButtons = Template.bind({}); -PlayCardWithVisibleButtons.args = { - play: { - title: 'Конкретные разговоры пожилых супругов ни о чём', - city: 'Санкт-Петербург', - year: 2020, - readingUrl: 'https://lubimovka.ru/', - downloadUrl: 'https://lubimovka.ru/', - authors: [{ - slug: 'Ekaterina_Avgustenyak', - name: 'Екатерина Августеняк', - }], - }, -}; - -export const PlayCardWithHiddenCityAndYear = Template.bind({}); -PlayCardWithHiddenCityAndYear.args = { - play: { - title: 'Конкретные разговоры пожилых супругов ни о чём', - readingUrl: 'https://lubimovka.ru/', - downloadUrl: 'https://lubimovka.ru/', - authors: [{ - slug: 'Ekaterina_Avgustenyak', - name: 'Екатерина Августеняк', - }], - }, -}; diff --git a/src/components/ui/basic-play-card/basic-play-card.tsx b/src/components/ui/basic-play-card/basic-play-card.tsx deleted file mode 100644 index 85aa155de..000000000 --- a/src/components/ui/basic-play-card/basic-play-card.tsx +++ /dev/null @@ -1,131 +0,0 @@ -import React, { FC } from 'react'; -import cn from 'classnames/bind'; - -import { Button } from '../button'; -import { InfoLink } from '../info-link'; - -import styles from './basic-play-card.module.css'; - -const cx = cn.bind(styles); - -export interface IBasicPlayCardProps { - type?: 'performance'; - play: { - title: string; - city?: string; - year?: number; - // Для полей readingUrl и downloadUrl null лишний, нужно попросить бекендеров убрать nullable у этих полей - readingUrl?: string | null; - downloadUrl?: string | null; - authors: Author[]; - }; -} - -type Author = { - slug: string, - name: string, -} - -export const BasicPlayCard: FC = ({ play }) => { - const { - title, - city, - year, - readingUrl, - downloadUrl, - authors - } = play; - - const authorsHiddenLabel = ( - - {authors.length > 1 - ? ( -
      - Авторы: -
      - ) - : ( -
      - Автор: -
      - ) - } -
      - ); - - return ( -
      -
      -
      - {title} -
      -
      - {readingUrl && ( -
      -
      -
      - {authorsHiddenLabel} - {authors.map((author) => ( -
      1 && 'authorMultiple')} key={author.slug}> - 1 && 'authorMultiple')} - href={`/${author.slug}`} - label={author.name} - size="l" - /> -
      - ) - )} - {city && ( - <> -
      - Город: -
      -
      - {city} -
      - - )} - {year && ( - <> -
      - Год: -
      -
      - {year} -
      - - )} -
      -
      - ); -}; diff --git a/src/components/ui/basic-play-card/index.ts b/src/components/ui/basic-play-card/index.ts deleted file mode 100644 index 3b6a260ed..000000000 --- a/src/components/ui/basic-play-card/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './basic-play-card'; diff --git a/src/components/ui/blog-card/blog-card.module.css b/src/components/ui/blog-card/blog-card.module.css deleted file mode 100644 index d3ae87db3..000000000 --- a/src/components/ui/blog-card/blog-card.module.css +++ /dev/null @@ -1,76 +0,0 @@ -.cardLinkWrapper { - color: inherit; - text-decoration: none; -} - -.regular:nth-child(1) { - grid-column: auto; -} - -.card { - position: relative; - display: flex; - width: 100%; - box-sizing: border-box; - flex-direction: column; - background: transparent; -} - -.imgContainer { - position: relative; - overflow: hidden; - width: 100%; - max-height: 343px; -} - -.img { - transition: transform 400ms cubic-bezier(.6, 0, .5, 1); -} - -.cardLinkWrapper:hover .img { - transform: scale(120%); -} - -.content { - display: flex; - flex-direction: column; - overflow-wrap: break-word; - word-break: break-word; -} - -.author { - @mixin text; - @mixin textSmall; - - align-self: flex-start; - padding: 16px 0 16px; - - @media (max-width: 576px) { - padding-left: 30px; - } - - @media (max-width: $tablet-portrait) { - @mixin textBlogAuthor; - } -} - -.heading { - align-self: flex-start; - padding: 0; - padding-bottom: 16px; - margin: 0; - - @mixin headline; - @mixin headline5; - - @media (max-width: $tablet-portrait) { - @mixin headline6; - } -} - -.description { - padding: 0 2px 0 31px; - - @mixin text; - @mixin textSmall; -} diff --git a/src/components/ui/blog-card/blog-card.stories.tsx b/src/components/ui/blog-card/blog-card.stories.tsx deleted file mode 100644 index 2a7df0d22..000000000 --- a/src/components/ui/blog-card/blog-card.stories.tsx +++ /dev/null @@ -1,162 +0,0 @@ -import React from 'react'; -import { ComponentStory, ComponentMeta } from '@storybook/react'; - -import { BlogCard } from './blog-card'; - -export default { - component: BlogCard, - title: 'UI/Blog Card', -} as ComponentMeta; - -const Template: ComponentStory = (args) => ; - -export const only_first_BlogCard = Template.bind({}); -only_first_BlogCard.args = { - image: '/images/blog/blog-image.jpg', - author: 'Лара Бессмертная', - heading: '«Человек является источником жеста, смысла, правды»', - description: 'МК «Документальность в современном театре и современном искусстве»', - id: 1, - // link: 'https://lubimovka.ru/blog/888-int-emeleva', -}; -only_first_BlogCard.decorators = [ - (Story) => ( -
      - -
      - ) -]; - -export const rectangular_vertical_aspectRatio_BlogCard = Template.bind({}); -rectangular_vertical_aspectRatio_BlogCard.args = { - image: '/images/blog/blog-image.jpg', - author: 'Лара Бессмертная', - heading: '«Человек является источником жеста, смысла, правды»', - description: 'МК «Документальность в современном театре и современном искусстве»', - id: 2, -}; -rectangular_vertical_aspectRatio_BlogCard.decorators = [ - (Story) => ( -
      - - -
      - ) -]; - -export const rectangular_horizontal_aspectRatio_BlogCard = Template.bind({}); -rectangular_horizontal_aspectRatio_BlogCard.args = { - image: '/images/blog/blog-image.jpg', - author: 'Лара Бессмертная', - heading: '«Человек является источником жеста, смысла, правды»', - description: 'МК «Документальность в современном театре и современном искусстве»', - id: 3, -}; -rectangular_horizontal_aspectRatio_BlogCard.decorators = [ - (Story) => ( -
      - - -
      - ) -]; - -export const square_aspectRatio_BlogCard = Template.bind({}); -square_aspectRatio_BlogCard.args = { - image: '/images/blog/blog-image.jpg', - author: 'Лара Бессмертная', - heading: '«Человек является источником жеста, смысла, правды»', - description: 'МК «Документальность в современном театре и современном искусстве»', - id: 4, -}; -square_aspectRatio_BlogCard.decorators = [ - (Story) => ( -
      - - -
      - ) -]; - -export const grid_BlogCard = Template.bind({}); -grid_BlogCard.args = { - image: '/images/blog/blog-image.jpg', - author: 'Лара Бессмертная', - heading: '«Человек является источником жеста, смысла, правды»', - description: 'МК «Документальность в современном театре и современном искусстве»', - id: 5, -}; -grid_BlogCard.decorators = [ - (Story) => ( -
      - - - - - - - - -
      - ) -]; diff --git a/src/components/ui/blog-card/blog-card.tsx b/src/components/ui/blog-card/blog-card.tsx deleted file mode 100644 index e8ac9cbb5..000000000 --- a/src/components/ui/blog-card/blog-card.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import React, { FC } from 'react'; -import Link from 'next/link'; -import Image from 'next/image'; -import cn from 'classnames'; - -import styles from './blog-card.module.css'; - -export interface BlogCardProps { - image: string; - author: string; - heading: string; - description: string; - id: number; - firstCardSizeMode?: 'regular' | 'big'; -} - -export const BlogCard: FC = (props) => { - const { image, author, heading, description, id, firstCardSizeMode = 'regular' } = props; - - const link = `/blog/${encodeURIComponent(id)}`; - - const [imgWidth, setImgWidth] = React.useState(); - const [imgHeight, setImgHeight] = React.useState(); - - const handleImageLoad = (e: { naturalWidth: number, naturalHeight: number }) => { - setImgWidth(e.naturalWidth); - setImgHeight(e.naturalHeight); - }; - - return ( - - -
      -
      - {`изображение -
      -
      -

      - {author} -

      -
      - {heading} -
      -

      - {description} -

      -
      -
      -
      - - ); -}; diff --git a/src/components/ui/blog-card/index.ts b/src/components/ui/blog-card/index.ts deleted file mode 100644 index c1dda3357..000000000 --- a/src/components/ui/blog-card/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './blog-card'; diff --git a/src/components/ui/burger-button/burger-button.stories.tsx b/src/components/ui/burger-button/burger-button.stories.tsx deleted file mode 100644 index fa5b6884a..000000000 --- a/src/components/ui/burger-button/burger-button.stories.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { ComponentStory, ComponentMeta } from '@storybook/react'; - -import { BurgerButton } from './burger-button'; - -const customViewports = { - iphone6: { - name: 'iPhone 6/7/8', - styles: { - height: '667px', - width: '375px', - }, - type: 'mobile', - }, - iphone6p: { - name: 'iPhone 6/7/8 Plus', - styles: { - height: '736px', - width: '414px', - }, - type: 'mobile', - }, - ipad: { - name: 'iPad', - styles: { - height: '1024px', - width: '768px', - }, - type: 'tablet', - }, -}; - -export default { - title: 'UI/BurgerButton', - argTypes: { onClick: { action: 'clicked' } }, - component: BurgerButton, - parameters: { - viewport: { - viewports: customViewports, - defaultViewport: 'iphone6p' - }, - }, - -} as ComponentMeta; - -const Template: ComponentStory = (args) => ; - -export const Default = Template.bind({}); -Default.args = { - isOpen: false, -}; diff --git a/src/components/ui/burger-button/burger-button.tsx b/src/components/ui/burger-button/burger-button.tsx index c5b67921e..52fb08095 100644 --- a/src/components/ui/burger-button/burger-button.tsx +++ b/src/components/ui/burger-button/burger-button.tsx @@ -3,8 +3,8 @@ import classNames from 'classnames/bind'; import styles from './burger-button.module.css'; interface IBurgerButtonProps { - isOpen: boolean; - onClick: () => void; + isOpen: boolean + onClick: () => void } const cx = classNames.bind(styles); diff --git a/src/components/ui/button-group/button-group-item.tsx b/src/components/ui/button-group/button-group-item.tsx new file mode 100644 index 000000000..17fe9dde3 --- /dev/null +++ b/src/components/ui/button-group/button-group-item.tsx @@ -0,0 +1,15 @@ +import classNames from 'classnames/bind'; + +import styles from './button-group.module.css'; + +const cx = classNames.bind(styles); + +export const ButtonGroupItem: React.FC = (props) => { + const { children } = props; + + return ( + + {children} + + ); +}; diff --git a/src/components/ui/button-group/button-group.module.css b/src/components/ui/button-group/button-group.module.css new file mode 100644 index 000000000..1b6033be8 --- /dev/null +++ b/src/components/ui/button-group/button-group.module.css @@ -0,0 +1,29 @@ +@value tablet-portrait from "shared/styles/media.module.css"; + +$item-gap: 8px; + +.root { + display: flex; + flex-wrap: wrap; + margin: 0 -$item-gap -$item-gap 0; + + @media tablet-portrait { + flex-wrap: nowrap; + margin: 0; + } +} + +.item { + display: block; + margin: 0 $item-gap $item-gap 0; + + @media tablet-portrait { + margin: 0; + } + + &:not(:last-child) { + @media tablet-portrait { + margin: 0 $item-gap 0 0; + } + } +} diff --git a/src/components/ui/button-group/button-group.tsx b/src/components/ui/button-group/button-group.tsx new file mode 100644 index 000000000..65efd4ff0 --- /dev/null +++ b/src/components/ui/button-group/button-group.tsx @@ -0,0 +1,15 @@ +import classNames from 'classnames/bind'; + +import styles from './button-group.module.css'; + +const cx = classNames.bind(styles); + +export const ButtonGroup: React.FC = (props) => { + const { children } = props; + + return ( +
      + {children} +
      + ); +}; diff --git a/src/components/ui/button-group/index.ts b/src/components/ui/button-group/index.ts new file mode 100644 index 000000000..6f8c5ff8c --- /dev/null +++ b/src/components/ui/button-group/index.ts @@ -0,0 +1,6 @@ +import { ButtonGroup as Component } from './button-group'; +import { ButtonGroupItem } from './button-group-item'; + +export const ButtonGroup = Object.assign(Component, { + Item: ButtonGroupItem, +}); diff --git a/src/components/ui/button/button.module.css b/src/components/ui/button/button.module.css index 111d21cb0..cb9b8226a 100644 --- a/src/components/ui/button/button.module.css +++ b/src/components/ui/button/button.module.css @@ -22,7 +22,7 @@ width: 0; height: 100%; background-color: var(--coal); - content: ''; + content: ""; transition: width .2s ease-in, transform .1s linear; } @@ -57,7 +57,7 @@ align-items: center; justify-content: space-between; - padding: 16px 16px 18px 16px; + padding: 16px 16px 18px; } .secondary { @@ -115,7 +115,7 @@ } .bottomRight { - padding: 7px 10px 9px 10px; + padding: 7px 10px 9px; border-right: 1px solid var(--coal); border-bottom: 1px solid var(--coal); } @@ -133,7 +133,7 @@ } .none { - padding: 4px 4px 7px 4px; + padding: 4px 4px 7px; border: 0; } diff --git a/src/components/ui/button/button.stories.tsx b/src/components/ui/button/button.stories.tsx deleted file mode 100644 index 1e393fc94..000000000 --- a/src/components/ui/button/button.stories.tsx +++ /dev/null @@ -1,155 +0,0 @@ -import React from 'react'; -import { ComponentStory, ComponentMeta } from '@storybook/react'; - -import { Button } from './button'; - -export default { - title: 'UI/Button', - component: Button, -} as ComponentMeta; - -const Template: ComponentStory = (args) => {accept && (

      Только файлы формата diff --git a/src/components/ui/form/disclaimer/form-disclaimer.tsx b/src/components/ui/form/disclaimer/form-disclaimer.tsx index c4eeeb9a7..df2174512 100644 --- a/src/components/ui/form/disclaimer/form-disclaimer.tsx +++ b/src/components/ui/form/disclaimer/form-disclaimer.tsx @@ -1,16 +1,19 @@ import classNames from 'classnames/bind'; -import type { FC } from 'react'; - import styles from './form-disclaimer.module.css'; +interface FormDisclaimerProps { + children: React.ReactNode + className?: string +} + const cx = classNames.bind(styles); -export const FormDisclaimer: FC = (props) => { - const { children } = props; +export const FormDisclaimer = (props: FormDisclaimerProps) => { + const { children, className } = props; return ( -

      +

      {children}

      ); diff --git a/src/components/ui/form/field/form-field.tsx b/src/components/ui/form/field/form-field.tsx index 52b5d8ec4..e119a612e 100644 --- a/src/components/ui/form/field/form-field.tsx +++ b/src/components/ui/form/field/form-field.tsx @@ -1,6 +1,6 @@ import classNames from 'classnames/bind'; -import { FC } from 'react'; +import type { FC } from 'react'; import styles from './form-field.module.css'; diff --git a/src/components/ui/form/fieldset/form-fieldset.tsx b/src/components/ui/form/fieldset/form-fieldset.tsx index 903c2393c..10079f824 100644 --- a/src/components/ui/form/fieldset/form-fieldset.tsx +++ b/src/components/ui/form/fieldset/form-fieldset.tsx @@ -5,7 +5,7 @@ import type { FC } from 'react'; import styles from './form-fieldset.module.css'; interface FormFieldsetProps extends React.FieldsetHTMLAttributes { - legend: string; + legend: string } const cx = classNames.bind(styles); diff --git a/src/components/ui/form/form.stories.tsx b/src/components/ui/form/form.stories.tsx deleted file mode 100644 index 34e8fc597..000000000 --- a/src/components/ui/form/form.stories.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import { ComponentStory, ComponentMeta } from '@storybook/react'; -import Link from 'next/link'; - -import Form from './form'; -import TextInput from 'components/ui/text-input'; -import TextArea from 'components/ui/text-area'; -import { Button } from 'components/ui/button'; -import { FileInput } from 'components/ui/file-input'; - -export default { - title: 'UI/Form', - component: Form, - subcomponents: { TextInput, TextArea, Button, FileInput }, - decorators: [ - (Story) => ( -
      - -
      - ), - ], -} as ComponentMeta; - -const Template: ComponentStory = (args) => { - return
      ; -}; - -export const ContactForm = Template.bind({}); -ContactForm.args = { - children: ( - <> - - - - - - - -