From 89001aba252a384d5593e8a31f5f2553ea27d58f Mon Sep 17 00:00:00 2001 From: StepSecurity Bot Date: Thu, 25 Jan 2024 03:39:09 -0800 Subject: [PATCH] [StepSecurity] Apply security best practices (#63) Signed-off-by: StepSecurity Bot Co-authored-by: Ivan Gabaldon --- .github/workflows/container.yml | 8 ++ .github/workflows/prettify.yml | 38 -------- .github/workflows/security-dependencies.yml | 22 +++++ .github/workflows/security.yml | 43 ++++++++- .github/workflows/test.yml | 13 ++- .husky/pre-commit | 1 + package.json | 2 + pnpm-lock.yaml | 102 +++++++++++--------- 8 files changed, 139 insertions(+), 90 deletions(-) delete mode 100644 .github/workflows/prettify.yml create mode 100644 .github/workflows/security-dependencies.yml create mode 100644 .husky/pre-commit diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml index 5ddb409..69533e2 100644 --- a/.github/workflows/container.yml +++ b/.github/workflows/container.yml @@ -9,6 +9,9 @@ concurrency: group: '${{ github.workflow }}-${{ github.ref }}' cancel-in-progress: true +permissions: + contents: read + jobs: build: name: 'Build container image' @@ -23,6 +26,11 @@ jobs: IMAGE_TAG: 'experimental ${{ github.sha }}' steps: + - name: 'Harden Runner' + uses: step-security/harden-runner@v2 + with: + egress-policy: audit + - name: 'Checkout' uses: actions/checkout@v4 diff --git a/.github/workflows/prettify.yml b/.github/workflows/prettify.yml deleted file mode 100644 index a0d354f..0000000 --- a/.github/workflows/prettify.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: 'CI/Prettify' -on: - workflow_dispatch: - pull_request: - branches: ['stable'] - types: ['opened', 'synchronize'] - -concurrency: - group: '${{ github.workflow }}-${{ github.ref }}' - cancel-in-progress: true - -jobs: - prettify: - name: 'Prettify code' - runs-on: ubuntu-latest - permissions: - contents: write - - steps: - - name: 'Checkout' - uses: actions/checkout@v4 - with: - fetch-depth: 0 - ref: ${{ github.event.pull_request.head.ref }} - - - name: 'Setup package manager' - uses: pnpm/action-setup@v2 - with: - standalone: true - - - name: 'Setup dependencies' - run: pnpm install -D --frozen-lockfile --ignore-scripts - - - name: 'Run Prettier' - uses: creyD/prettier_action@v4.3 - with: - prettier_options: . --write - same_commit: true diff --git a/.github/workflows/security-dependencies.yml b/.github/workflows/security-dependencies.yml new file mode 100644 index 0000000..5462267 --- /dev/null +++ b/.github/workflows/security-dependencies.yml @@ -0,0 +1,22 @@ +# TODO: Experimental feature +name: 'CI/Security-Dependencies' +on: [pull_request] + +permissions: + contents: read + +jobs: + dependency-review: + name: 'Dependency analysis' + runs-on: ubuntu-latest + steps: + - name: 'Harden Runner' + uses: step-security/harden-runner@v2 + with: + egress-policy: audit + + - name: 'Checkout' + uses: actions/checkout@v4 + + - name: 'Dependency Review' + uses: actions/dependency-review-action@v4 diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index 03968bc..b161072 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -1,17 +1,51 @@ -# TODO: Experimental feature name: 'CI/Security' on: schedule: - - cron: '44 1 * * 0' + - cron: '33 3 * * 1' push: branches: ['dev'] paths-ignore: - '*.md' - '.*ignore' + pull_request: + branches: ['dev'] + paths-ignore: + - '*.md' + - '.*ignore' permissions: read-all jobs: + codeql: + name: 'CodeQL analysis' + runs-on: ubuntu-latest + permissions: + security-events: write + + strategy: + fail-fast: false + matrix: + language: ['javascript', 'typescript'] + + steps: + - name: 'Harden Runner' + uses: step-security/harden-runner@v2 + with: + egress-policy: audit + + - name: 'Checkout' + uses: actions/checkout@v4 + + - name: 'Setup CodeQL' + uses: github/codeql-action/init@v3 + with: + languages: '${{ matrix.language }}' + + - name: 'Run analysis' + uses: github/codeql-action/analyze@v3 + with: + category: '/language:${{matrix.language}}' + scoreboard: name: 'Scorecard analysis' runs-on: ubuntu-latest @@ -20,6 +54,11 @@ jobs: id-token: write steps: + - name: 'Harden Runner' + uses: step-security/harden-runner@v2 + with: + egress-policy: audit + - name: 'Checkout' uses: actions/checkout@v4 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3f91559..e390011 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,14 +10,19 @@ concurrency: group: '${{ github.workflow }}-${{ github.ref }}' cancel-in-progress: true +permissions: + contents: read + jobs: test: - name: "Test suite" + name: 'Test suite' runs-on: ubuntu-latest - permissions: - contents: read - steps: + - name: 'Harden Runner' + uses: step-security/harden-runner@v2 + with: + egress-policy: audit + - name: 'Checkout' uses: actions/checkout@v4 with: diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..dc9214c --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +pnpm run fix \ No newline at end of file diff --git a/package.json b/package.json index ad08215..f12f0e5 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "fix": "pnpm run prettier && pnpm run lint", "lint": "pnpm run lint:tsc", "lint:tsc": "pnpm exec tsc --noEmit", + "prepare": "husky", "prettier": "pnpm exec prettier . --write", "prod": "pnpm run build && pnpm run start", "start": "pnpm exec next start" @@ -35,6 +36,7 @@ "zustand": "^4.5.0" }, "devDependencies": { + "husky": "^9.0.2", "prettier": "^3.2.4", "prettier-plugin-jsdoc": "^1.3.0", "prettier-plugin-packagejson": "^2.4.9" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 52d7e09..145bb43 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ dependencies: version: 2.2.0(@chakra-ui/react@2.8.2)(@emotion/react@11.11.3)(next@14.1.0)(react@18.2.0) '@chakra-ui/react': specifier: ^2.8.2 - version: 2.8.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.48)(framer-motion@10.18.0)(react-dom@18.2.0)(react@18.2.0) + version: 2.8.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.48)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0) '@chakra-ui/system': specifier: ^2.6.2 version: 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) @@ -22,7 +22,7 @@ dependencies: version: 4.6.0(monaco-editor@0.45.0)(react-dom@18.2.0)(react@18.2.0) '@types/node': specifier: latest - version: 20.11.5 + version: 20.11.6 '@types/react': specifier: ^18.2.48 version: 18.2.48 @@ -61,6 +61,9 @@ dependencies: version: 4.5.0(@types/react@18.2.48)(react@18.2.0) devDependencies: + husky: + specifier: ^9.0.2 + version: 9.0.2 prettier: specifier: ^3.2.4 version: 3.2.4 @@ -304,7 +307,7 @@ packages: to-fast-properties: 2.0.0 dev: false - /@chakra-ui/accordion@2.3.1(@chakra-ui/system@2.6.2)(framer-motion@10.18.0)(react@18.2.0): + /@chakra-ui/accordion@2.3.1(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react@18.2.0): resolution: {integrity: sha512-FSXRm8iClFyU+gVaXisOSEw0/4Q+qZbFRiuhIAkVU6Boj0FxAMrlo9a8AV5TuF77rgaHytCdHk0Ng+cyUijrag==} peerDependencies: '@chakra-ui/system': '>=2.0.0' @@ -318,8 +321,8 @@ packages: '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) '@chakra-ui/shared-utils': 2.0.5 '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) - '@chakra-ui/transition': 2.1.0(framer-motion@10.18.0)(react@18.2.0) - framer-motion: 10.18.0(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/transition': 2.1.0(framer-motion@11.0.3)(react@18.2.0) + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 dev: false @@ -525,7 +528,7 @@ packages: dependencies: '@chakra-ui/dom-utils': 2.1.0 react: 18.2.0 - react-focus-lock: 2.9.6(@types/react@18.2.48)(react@18.2.0) + react-focus-lock: 2.9.7(@types/react@18.2.48)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false @@ -647,7 +650,7 @@ packages: react: 18.2.0 dev: false - /@chakra-ui/menu@2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.18.0)(react@18.2.0): + /@chakra-ui/menu@2.2.1(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react@18.2.0): resolution: {integrity: sha512-lJS7XEObzJxsOwWQh7yfG4H8FzFPRP5hVPN/CL+JzytEINCSBvsCDHrYPQGp7jzpCi8vnTqQQGQe0f8dwnXd2g==} peerDependencies: '@chakra-ui/system': '>=2.0.0' @@ -669,12 +672,12 @@ packages: '@chakra-ui/react-use-update-effect': 2.1.0(react@18.2.0) '@chakra-ui/shared-utils': 2.0.5 '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) - '@chakra-ui/transition': 2.1.0(framer-motion@10.18.0)(react@18.2.0) - framer-motion: 10.18.0(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/transition': 2.1.0(framer-motion@11.0.3)(react@18.2.0) + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 dev: false - /@chakra-ui/modal@2.3.1(@chakra-ui/system@2.6.2)(@types/react@18.2.48)(framer-motion@10.18.0)(react-dom@18.2.0)(react@18.2.0): + /@chakra-ui/modal@2.3.1(@chakra-ui/system@2.6.2)(@types/react@18.2.48)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-TQv1ZaiJMZN+rR9DK0snx/OPwmtaGH1HbZtlYt4W4s6CzyK541fxLRTjIXfEzIGpvNW+b6VFuFjbcR78p4DEoQ==} peerDependencies: '@chakra-ui/system': '>=2.0.0' @@ -690,9 +693,9 @@ packages: '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) '@chakra-ui/shared-utils': 2.0.5 '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) - '@chakra-ui/transition': 2.1.0(framer-motion@10.18.0)(react@18.2.0) + '@chakra-ui/transition': 2.1.0(framer-motion@11.0.3)(react@18.2.0) aria-hidden: 1.2.3 - framer-motion: 10.18.0(react-dom@18.2.0)(react@18.2.0) + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-remove-scroll: 2.5.7(@types/react@18.2.48)(react@18.2.0) @@ -708,7 +711,7 @@ packages: next: '>=13' react: '>=18' dependencies: - '@chakra-ui/react': 2.8.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.48)(framer-motion@10.18.0)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/react': 2.8.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.48)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0) '@emotion/cache': 11.11.0 '@emotion/react': 11.11.3(@types/react@18.2.48)(react@18.2.0) next: 14.1.0(@babel/core@7.23.7)(react-dom@18.2.0)(react@18.2.0) @@ -761,7 +764,7 @@ packages: react: 18.2.0 dev: false - /@chakra-ui/popover@2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.18.0)(react@18.2.0): + /@chakra-ui/popover@2.2.1(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react@18.2.0): resolution: {integrity: sha512-K+2ai2dD0ljvJnlrzesCDT9mNzLifE3noGKZ3QwLqd/K34Ym1W/0aL1ERSynrcG78NKoXS54SdEzkhCZ4Gn/Zg==} peerDependencies: '@chakra-ui/system': '>=2.0.0' @@ -780,7 +783,7 @@ packages: '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) '@chakra-ui/shared-utils': 2.0.5 '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) - framer-motion: 10.18.0(react-dom@18.2.0)(react@18.2.0) + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 dev: false @@ -1048,7 +1051,7 @@ packages: react: 18.2.0 dev: false - /@chakra-ui/react@2.8.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.48)(framer-motion@10.18.0)(react-dom@18.2.0)(react@18.2.0): + /@chakra-ui/react@2.8.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.48)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Hn0moyxxyCDKuR9ywYpqgX8dvjqwu9ArwpIb9wHNYjnODETjLwazgNIliCVBRcJvysGRiV51U2/JtJVrpeCjUQ==} peerDependencies: '@emotion/react': ^11.0.0 @@ -1057,7 +1060,7 @@ packages: react: '>=18' react-dom: '>=18' dependencies: - '@chakra-ui/accordion': 2.3.1(@chakra-ui/system@2.6.2)(framer-motion@10.18.0)(react@18.2.0) + '@chakra-ui/accordion': 2.3.1(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react@18.2.0) '@chakra-ui/alert': 2.2.2(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/avatar': 2.3.0(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/breadcrumb': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) @@ -1078,11 +1081,11 @@ packages: '@chakra-ui/layout': 2.3.1(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/live-region': 2.1.0(react@18.2.0) '@chakra-ui/media-query': 3.3.0(@chakra-ui/system@2.6.2)(react@18.2.0) - '@chakra-ui/menu': 2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.18.0)(react@18.2.0) - '@chakra-ui/modal': 2.3.1(@chakra-ui/system@2.6.2)(@types/react@18.2.48)(framer-motion@10.18.0)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/menu': 2.2.1(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react@18.2.0) + '@chakra-ui/modal': 2.3.1(@chakra-ui/system@2.6.2)(@types/react@18.2.48)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0) '@chakra-ui/number-input': 2.1.2(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/pin-input': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) - '@chakra-ui/popover': 2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.18.0)(react@18.2.0) + '@chakra-ui/popover': 2.2.1(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react@18.2.0) '@chakra-ui/popper': 3.1.0(react@18.2.0) '@chakra-ui/portal': 2.1.0(react-dom@18.2.0)(react@18.2.0) '@chakra-ui/progress': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) @@ -1097,7 +1100,7 @@ packages: '@chakra-ui/stat': 2.1.1(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/stepper': 2.3.1(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/styled-system': 2.9.2 - '@chakra-ui/switch': 2.1.2(@chakra-ui/system@2.6.2)(framer-motion@10.18.0)(react@18.2.0) + '@chakra-ui/switch': 2.1.2(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react@18.2.0) '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) '@chakra-ui/table': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/tabs': 3.0.0(@chakra-ui/system@2.6.2)(react@18.2.0) @@ -1105,14 +1108,14 @@ packages: '@chakra-ui/textarea': 2.1.2(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/theme': 3.3.1(@chakra-ui/styled-system@2.9.2) '@chakra-ui/theme-utils': 2.0.21 - '@chakra-ui/toast': 7.0.2(@chakra-ui/system@2.6.2)(framer-motion@10.18.0)(react-dom@18.2.0)(react@18.2.0) - '@chakra-ui/tooltip': 2.3.1(@chakra-ui/system@2.6.2)(framer-motion@10.18.0)(react-dom@18.2.0)(react@18.2.0) - '@chakra-ui/transition': 2.1.0(framer-motion@10.18.0)(react@18.2.0) + '@chakra-ui/toast': 7.0.2(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/tooltip': 2.3.1(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/transition': 2.1.0(framer-motion@11.0.3)(react@18.2.0) '@chakra-ui/utils': 2.0.15 '@chakra-ui/visually-hidden': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) '@emotion/react': 11.11.3(@types/react@18.2.48)(react@18.2.0) '@emotion/styled': 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.48)(react@18.2.0) - framer-motion: 10.18.0(react-dom@18.2.0)(react@18.2.0) + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: @@ -1223,7 +1226,7 @@ packages: lodash.mergewith: 4.6.2 dev: false - /@chakra-ui/switch@2.1.2(@chakra-ui/system@2.6.2)(framer-motion@10.18.0)(react@18.2.0): + /@chakra-ui/switch@2.1.2(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react@18.2.0): resolution: {integrity: sha512-pgmi/CC+E1v31FcnQhsSGjJnOE2OcND4cKPyTE+0F+bmGm48Q/b5UmKD9Y+CmZsrt/7V3h8KNczowupfuBfIHA==} peerDependencies: '@chakra-ui/system': '>=2.0.0' @@ -1233,7 +1236,7 @@ packages: '@chakra-ui/checkbox': 2.3.2(@chakra-ui/system@2.6.2)(react@18.2.0) '@chakra-ui/shared-utils': 2.0.5 '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) - framer-motion: 10.18.0(react-dom@18.2.0)(react@18.2.0) + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 dev: false @@ -1342,7 +1345,7 @@ packages: '@chakra-ui/theme-tools': 2.1.2(@chakra-ui/styled-system@2.9.2) dev: false - /@chakra-ui/toast@7.0.2(@chakra-ui/system@2.6.2)(framer-motion@10.18.0)(react-dom@18.2.0)(react@18.2.0): + /@chakra-ui/toast@7.0.2(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-yvRP8jFKRs/YnkuE41BVTq9nB2v/KDRmje9u6dgDmE5+1bFt3bwjdf9gVbif4u5Ve7F7BGk5E093ARRVtvLvXA==} peerDependencies: '@chakra-ui/system': 2.6.2 @@ -1360,12 +1363,12 @@ packages: '@chakra-ui/styled-system': 2.9.2 '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) '@chakra-ui/theme': 3.3.1(@chakra-ui/styled-system@2.9.2) - framer-motion: 10.18.0(react-dom@18.2.0)(react@18.2.0) + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@chakra-ui/tooltip@2.3.1(@chakra-ui/system@2.6.2)(framer-motion@10.18.0)(react-dom@18.2.0)(react@18.2.0): + /@chakra-ui/tooltip@2.3.1(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Rh39GBn/bL4kZpuEMPPRwYNnccRCL+w9OqamWHIB3Qboxs6h8cOyXfIdGxjo72lvhu1QI/a4KFqkM3St+WfC0A==} peerDependencies: '@chakra-ui/system': '>=2.0.0' @@ -1382,19 +1385,19 @@ packages: '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) '@chakra-ui/shared-utils': 2.0.5 '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) - framer-motion: 10.18.0(react-dom@18.2.0)(react@18.2.0) + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@chakra-ui/transition@2.1.0(framer-motion@10.18.0)(react@18.2.0): + /@chakra-ui/transition@2.1.0(framer-motion@11.0.3)(react@18.2.0): resolution: {integrity: sha512-orkT6T/Dt+/+kVwJNy7zwJ+U2xAZ3EU7M3XCs45RBvUnZDr/u9vdmaM/3D/rOpmQJWgQBwKPJleUXrYWUagEDQ==} peerDependencies: framer-motion: '>=4.0.0' react: '>=18' dependencies: '@chakra-ui/shared-utils': 2.0.5 - framer-motion: 10.18.0(react-dom@18.2.0)(react@18.2.0) + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 dev: false @@ -1942,8 +1945,8 @@ packages: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: true - /@types/node@20.11.5: - resolution: {integrity: sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==} + /@types/node@20.11.6: + resolution: {integrity: sha512-+EOokTnksGVgip2PbYbr3xnR7kZigh4LbybAfBAw5BpnQ+FqBYUsvCEjYd70IXKlbohQ64mzEYmMtlWUY8q//Q==} dependencies: undici-types: 5.26.5 dev: false @@ -2049,8 +2052,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001579 - electron-to-chromium: 1.4.640 + caniuse-lite: 1.0.30001580 + electron-to-chromium: 1.4.645 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.2) dev: false @@ -2067,8 +2070,8 @@ packages: engines: {node: '>=6'} dev: false - /caniuse-lite@1.0.30001579: - resolution: {integrity: sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==} + /caniuse-lite@1.0.30001580: + resolution: {integrity: sha512-mtj5ur2FFPZcCEpXFy8ADXbDACuNFXg6mxVDqp7tqooX6l3zwm+d8EPoeOSIFRDvHs8qu7/SLFOGniULkcH2iA==} dev: false /chalk@2.4.2: @@ -2241,8 +2244,8 @@ packages: path-type: 4.0.0 dev: true - /electron-to-chromium@1.4.640: - resolution: {integrity: sha512-z/6oZ/Muqk4BaE7P69bXhUhpJbUM9ZJeka43ZwxsDshKtePns4mhBlh8bU5+yrnOnz3fhG82XLzGUXazOmsWnA==} + /electron-to-chromium@1.4.645: + resolution: {integrity: sha512-EeS1oQDCmnYsRDRy2zTeC336a/4LZ6WKqvSaM1jLocEk5ZuyszkQtCpsqvuvaIXGOUjwtvF6LTcS8WueibXvSw==} dev: false /error-ex@1.3.2: @@ -2300,8 +2303,8 @@ packages: tslib: 2.6.2 dev: false - /framer-motion@10.18.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-oGlDh1Q1XqYPksuTD/usb0I70hq95OUzmL9+6Zd+Hs4XV0oaISBa/UUMSjYiq6m8EUF32132mOJ8xVZS+I0S6w==} + /framer-motion@11.0.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-6x2poQpIWBdbZwLd73w6cKZ1I9IEPIU94C6/Swp1Zt3LJ+sB5bPe1E2wC6EH5hSISXNkMJ4afH7AdwS7MrtkWw==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 @@ -2404,6 +2407,12 @@ packages: react-is: 16.13.1 dev: false + /husky@9.0.2: + resolution: {integrity: sha512-0yR5R3OPjl8bYApi6T4QMOAwhtLhBjdYIVg5S6zSzIO8DIvQMh/b7Q8jW3WLbHLHtzpwiyMLBNB4R0Eb6x5+AA==} + engines: {node: '>=18'} + hasBin: true + dev: true + /ignore@5.3.0: resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} engines: {node: '>= 4'} @@ -2486,6 +2495,7 @@ packages: /jspaste@10.1.1: resolution: {integrity: sha512-ZVsx4eEzyMGnYORz9SD8ca5qjJjCHX5Dp2PI5CufIk/Drr5m80JUyg01O8Z9Q1U3MmF8YOJlkbSHG1lwSzsopQ==} engines: {node: '>=18.0.0'} + deprecated: 'This package is deprecated, read more here: https://github.com/jspaste/jspaste#this-package-is-deprecated' dev: false /kleur@4.1.5: @@ -2781,7 +2791,7 @@ packages: '@next/env': 14.1.0 '@swc/helpers': 0.5.2 busboy: 1.6.0 - caniuse-lite: 1.0.30001579 + caniuse-lite: 1.0.30001580 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.2.0 @@ -2926,8 +2936,8 @@ packages: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} dev: false - /react-focus-lock@2.9.6(@types/react@18.2.48)(react@18.2.0): - resolution: {integrity: sha512-B7gYnCjHNrNYwY2juS71dHbf0+UpXXojt02svxybj8N5bxceAkzPChKEncHuratjUHkIFNCn06k2qj1DRlzTug==} + /react-focus-lock@2.9.7(@types/react@18.2.48)(react@18.2.0): + resolution: {integrity: sha512-EfhX040SELLqnQ9JftqsmQCG49iByg8F5X5m19Er+n371OaETZ35dlNPZrLOOTlnnwD4c2Zv0KDgabDTc7dPHw==} peerDependencies: '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0