diff --git a/.github/ISSUE_TEMPLATE/1.bug_report.yaml b/.github/ISSUE_TEMPLATE/1.bug_report.yaml index ed10dbad86d..9d73aee3760 100644 --- a/.github/ISSUE_TEMPLATE/1.bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/1.bug_report.yaml @@ -1,6 +1,5 @@ name: Bug report description: Create a report to help us improve Amplify JS -labels: pending-triage body: - type: markdown diff --git a/.github/ISSUE_TEMPLATE/2.feature_request.yaml b/.github/ISSUE_TEMPLATE/2.feature_request.yaml index 13eb5e1522d..c50290cbd22 100644 --- a/.github/ISSUE_TEMPLATE/2.feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/2.feature_request.yaml @@ -1,6 +1,5 @@ name: Feature request description: Suggest an idea for Amplify JS -labels: pending-triage body: - type: markdown diff --git a/.github/ISSUE_TEMPLATE/3.usage-question.md b/.github/ISSUE_TEMPLATE/3.usage-question.md deleted file mode 100644 index 82d079fe7be..00000000000 --- a/.github/ISSUE_TEMPLATE/3.usage-question.md +++ /dev/null @@ -1,23 +0,0 @@ - - ---- - -name: Usage Question -about: Ask a question about AWS Amplify usage -title: '' -labels: question,pending-triage -assignees: '' - ---- - -** Which Category is your question related to? ** -E.g. Auth, Predictions, Storage, etc. -** What AWS Services are you utilizing? ** -E.g. Cognito, AWS AppSync, etc. -** Provide additional details e.g. code snippets ** -E.g. Sample code, versions of Amplify you are using diff --git a/.github/ISSUE_TEMPLATE/4.rfc.md b/.github/ISSUE_TEMPLATE/4.rfc.md deleted file mode 100644 index 464d9aee63f..00000000000 --- a/.github/ISSUE_TEMPLATE/4.rfc.md +++ /dev/null @@ -1,46 +0,0 @@ ---- - -name: Request For Comments (RFC) -about: Gather community feedback regarding a proposed change to the library -title: 'RFC: PROPOSAL HEADLINE' -labels: feature-request -assignees: '' ----_This issue is a Request For Comments (RFC). It is intended to elicit community feedback regarding a proposed change to the library. Please feel free to post comments or questions here._ - -## Summary - -In one or two sentences, why should this change exist? - -## Motivation - -Why is this RFC needed? What will happen if accepted? And what would happen if it _isn't_ accepted? - -## Basic Example - -If the RFC involves a new or changed API, include a basic code example. (Omit if not applicable) - -## Detailed Design - -Provide enough detail on _how_ this should be implemented such that someone other than yourself could build it. -Include examples of how the implementation is used - -## Drawbacks - -- Is this a breaking change? Days/Weeks/Months to implement? Will it require extensive documentation & examples? - -## Adoption Strategy - -- What supporting efforts will be needed (e.g. documentation, tests, tutorials, public outreach, etc.)? - -## Related Issues - -Add GitHub issue numbers/URLs that informed or would be impacted by this proposal. - -- #1234 -- https://github.com/aws-amplify/amplify-js/issues/1234 - -## References - -List articles, resources, prior art, and inspiration for this proposal. - -- http://stackoverflow.com/ diff --git a/.github/dependency-review/dependecy-review-config.yml b/.github/dependency-review/dependecy-review-config.yml index 173aefd36ef..6f66da66007 100644 --- a/.github/dependency-review/dependecy-review-config.yml +++ b/.github/dependency-review/dependecy-review-config.yml @@ -1,14 +1,16 @@ allow-licenses: - - 'Apache-2.0' - '0BSD' - - 'BSL-1.0' + - 'Apache-2.0' + - 'BlueOak-1.0.0' - 'BSD-1-Clause' - 'BSD-2-Clause-FreeBSD' - 'BSD-2-Clause' - 'BSD-3-Clause-Attribution' - 'BSD-3-Clause' + - 'BSL-1.0' - 'CC-BY-3.0' - 'CC-BY-4.0' + - 'CC0-1.0' - 'curl' - 'ISC' - 'JSON' @@ -20,4 +22,3 @@ allow-licenses: - 'Unlicense' - 'WTFPL' - 'Zlib' - - 'CC0-1.0' \ No newline at end of file diff --git a/.github/integ-config/detox-integ-all.yml b/.github/integ-config/detox-integ-all.yml index b58aefdda5c..3debdf83482 100644 --- a/.github/integ-config/detox-integ-all.yml +++ b/.github/integ-config/detox-integ-all.yml @@ -16,3 +16,7 @@ - test_name: 'integ_rn_ios_api_v6_rn_72_detox_cli' working_directory: amplify-js-samples-staging/samples/react-native/api/v6/ApiGRAPHQL timeout_minutes: 120 +- test_name: 'integ_rn_ios_oidc_signout' + working_directory: amplify-js-samples-staging/samples/react-native/auth/HosteduiApp + timeout_minutes: 120 + host_signout_page: true diff --git a/.github/integ-config/integ-all.yml b/.github/integ-config/integ-all.yml index f99b0dac6aa..211ebc76db1 100644 --- a/.github/integ-config/integ-all.yml +++ b/.github/integ-config/integ-all.yml @@ -514,6 +514,13 @@ tests: sample_name: [sign-in-with-oauth] spec: sign-in-with-oauth browser: [chrome] + - test_name: integ_vue_sign_out_of_oidc_provider + desc: 'Sign-out of OIDC provider' + framework: vue + category: auth + sample_name: [sign-in-with-oauth] + spec: sign-out-oidc-provider + browser: [chrome] # AUTH GEN2 - test_name: integ_react_javascript_authentication_gen2 @@ -595,6 +602,13 @@ tests: sample_name: [sign-in-with-oauth] spec: sign-in-with-oauth browser: [chrome] + - test_name: subdomain_authentication + desc: 'Sign-in with the OAuth flow and subdomains' + framework: next + category: auth + sample_name: [subdomains] + spec: subdomains + browser: [chrome] # DISABLED Angular/Vue tests: # TODO: delete tests or add custom ui logic to support them. diff --git a/.github/workflows/callable-e2e-test-detox.yml b/.github/workflows/callable-e2e-test-detox.yml index e9efa09f336..ffea13efb6a 100644 --- a/.github/workflows/callable-e2e-test-detox.yml +++ b/.github/workflows/callable-e2e-test-detox.yml @@ -13,11 +13,15 @@ on: timeout_minutes: required: true type: number + host_signout_page: + required: false + type: boolean + default: false jobs: e2e-test: name: E2E-Detox ${{ inputs.test_name }} - runs-on: macos-latest + runs-on: macos-latest-large timeout-minutes: ${{ inputs.timeout_minutes }} steps: @@ -70,6 +74,11 @@ jobs: JEST_JUNIT_OUTPUT_NAME: detox-test-results.xml working-directory: ${{ inputs.working_directory }} shell: bash + - name: Start the http-server and host the oidc signout page locally (background). + if: ${{ inputs.host_signout_page }} + run: yarn host:signout + working-directory: ${{ inputs.working_directory }} + shell: bash - name: Detox run run: | $GITHUB_WORKSPACE/amplify-js/scripts/retry-yarn-script.sh -s 'detox test -c ios.sim.debug -u' -n 3 diff --git a/.github/workflows/callable-e2e-tests.yml b/.github/workflows/callable-e2e-tests.yml index c27c51ce57f..4ae74a69c88 100644 --- a/.github/workflows/callable-e2e-tests.yml +++ b/.github/workflows/callable-e2e-tests.yml @@ -74,3 +74,4 @@ jobs: test_name: ${{ matrix.integ-config.test_name }} working_directory: ${{ matrix.integ-config.working_directory }} timeout_minutes: ${{ matrix.integ-config.timeout_minutes || 45 }} + host_signout_page: ${{ matrix.integ-config.host_signout_page || false }} diff --git a/.github/workflows/issue-closed.yml b/.github/workflows/issue-closed.yml new file mode 100644 index 00000000000..fed460e0181 --- /dev/null +++ b/.github/workflows/issue-closed.yml @@ -0,0 +1,22 @@ +name: Issue Closed + +on: + issues: + types: [closed] + +permissions: + issues: write + +jobs: + cleanup-labels: + runs-on: ubuntu-latest + if: ${{ (contains(github.event.issue.labels.*.name, 'pending-community-response') || contains(github.event.issue.labels.*.name, 'pending-maintainer-response') || contains(github.event.issue.labels.*.name, 'pending-triage')) }} + steps: + - name: Remove unnecessary labels after closing + shell: bash + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ISSUE_NUMBER: ${{ github.event.issue.number }} + REPOSITORY_NAME: ${{ github.event.repository.full_name }} + run: | + gh issue edit $ISSUE_NUMBER --repo $REPOSITORY_NAME --remove-label "pending-community-response" --remove-label "pending-maintainer-response" --remove-label "pending-triage" diff --git a/.github/workflows/issue-comment.yml b/.github/workflows/issue-comment.yml new file mode 100644 index 00000000000..cfde2f7d331 --- /dev/null +++ b/.github/workflows/issue-comment.yml @@ -0,0 +1,31 @@ +name: Issue Comment + +on: + issue_comment: + types: [created] + +jobs: + adjust-labels: + runs-on: ubuntu-latest + permissions: + issues: write + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ISSUE_NUMBER: ${{ github.event.issue.number }} + REPOSITORY_NAME: ${{ github.event.repository.full_name }} + steps: + - name: Remove pending-community-response when new comment received + if: ${{ !contains(fromJSON('["MEMBER", "OWNER"]'), github.event.comment.author_association) && !github.event.issue.pull_request }} + shell: bash + run: | + gh issue edit $ISSUE_NUMBER --repo $REPOSITORY_NAME --remove-label "pending-community-response" + - name: Add pending-maintainer-response when new community comment received + if: ${{ !contains(fromJSON('["MEMBER", "OWNER"]'), github.event.comment.author_association) }} + shell: bash + run: | + gh issue edit $ISSUE_NUMBER --repo $REPOSITORY_NAME --add-label "pending-maintainer-response" + - name: Remove pending-maintainer-response when new owner/member comment received + if: ${{ contains(fromJSON('["MEMBER", "OWNER"]'), github.event.comment.author_association) }} + shell: bash + run: | + gh issue edit $ISSUE_NUMBER --repo $REPOSITORY_NAME --remove-label "pending-maintainer-response" diff --git a/.github/workflows/issue-labeled.yml b/.github/workflows/issue-labeled.yml new file mode 100644 index 00000000000..022fc996a3a --- /dev/null +++ b/.github/workflows/issue-labeled.yml @@ -0,0 +1,21 @@ +name: Issue Labeled + +on: + issues: + types: [labeled] + +jobs: + remove-pending-triage-label: + runs-on: ubuntu-latest + if: ${{ contains(fromJSON('["question", "bug", "feature-request"]'), github.event.label.name) }} + permissions: + issues: write + steps: + - name: Remove the pending-triage label + shell: bash + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ISSUE_NUMBER: ${{ github.event.issue.number }} + REPOSITORY_NAME: ${{ github.event.repository.full_name }} + run: | + gh issue edit $ISSUE_NUMBER --repo $REPOSITORY_NAME --remove-label "pending-triage" diff --git a/.github/workflows/issue-opened.yml b/.github/workflows/issue-opened.yml new file mode 100644 index 00000000000..6ac0a9ce124 --- /dev/null +++ b/.github/workflows/issue-opened.yml @@ -0,0 +1,25 @@ +name: Issue Opened + +on: + issues: + types: [opened] + +jobs: + add-issue-opened-labels: + runs-on: ubuntu-latest + permissions: + issues: write + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ISSUE_NUMBER: ${{ github.event.issue.number }} + REPOSITORY_NAME: ${{ github.event.repository.full_name }} + steps: + - name: Add the pending-triage label + shell: bash + run: | + gh issue edit $ISSUE_NUMBER --repo $REPOSITORY_NAME --add-label "pending-triage" + - name: Add the pending-maintainer-response label + if: ${{ !contains(fromJSON('["MEMBER", "OWNER"]'), github.event.issue.author_association) }} + shell: bash + run: | + gh issue edit $ISSUE_NUMBER --repo $REPOSITORY_NAME --add-label "pending-maintainer-response" diff --git a/.github/workflows/issue-pending-response.yml b/.github/workflows/issue-pending-response.yml deleted file mode 100644 index 8dd8ac9584d..00000000000 --- a/.github/workflows/issue-pending-response.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: issue-pending-response -on: - issue_comment: - types: [created] -permissions: - issues: write -jobs: - issue_commented: - if: ${{ !github.event.issue.pull_request && contains(github.event.issue.labels.*.name, 'pending-response') }} - runs-on: ubuntu-latest - steps: - - uses: siegerts/pending-author-response@409a63bf27370ba9a0e98e8d5fbda7a12398d456 # v1 https://github.com/siegerts/pending-author-response/commit/409a63bf27370ba9a0e98e8d5fbda7a12398d456 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - pending-response-label: pending-response diff --git a/docs/api/assets/navigation.js b/docs/api/assets/navigation.js index 01e7c4a9ec9..93a2ff84046 100644 --- a/docs/api/assets/navigation.js +++ b/docs/api/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA9S9W3PkuJWu/Vcmum/d2+522zOemJj4dKzStFRSZ6qqZ2JvhwJKQplwMYk0SKoqvWP/9y/AQyZA4rjWkjv7yl1y4n0fgCCI48L//r/fNPxr882/f8O+1N+x7a4UL/tvfvfNjjWbb/79m60s2pLXv2df6qfh//xfm2ZbfvO7bz6Lqvjm33/43TerjSgLxatv/v1/H8UKtmu4+m4lFQ+rDb980r9Mkv6PBX/hilcr/i+P+x2v/zND/+mQ9qlL+5TkeNZLXZSsro9mK/3PPDNTyHb+/od/+3+/Oxq2zYbAbVQJWvVa922za5v6rGLlvhGr+kHJHVeN4AaCqBquXtgKlGe/weQR/OnPfrq22bwZmKWdznTJGvZWTLZ2OtM7Lt8KyZJOJ/ogG/EiVqwRsnqzuuUxSadcNlKxNT9vV59581aUHpNsyjfmSyRrm81NwatGNPsHKcsLWb2INRrIqRrj+FhzpX99VhVvgxQ0SKWjx4n7X8h1JRpJXype4QQa2gJxioYp5GfBl1wJVop/8Ptd12rgMVyqM47f9Z/zb/79m6YuvhP1d/xrw1XFym9MwrZu5PZByVdRcIUms9RCJXMrnhVT+7OHG6JCmQmmuLfNhtj+qJjgT+ud7ju0vrT2tmiI4r7rM5K8kYZUrG2cGjZaIbun67L6w1/+9fs//TCxWzasKpgqzppGiee24T/xPdLcJZmC8okr8SLYc8kJYdyiMZyhBR1bCPQzceolQiR+yqFMOR/yGGKf6O6FLRvWtDUd3EQ4itW178uV3HEMw1ElZngpV+2WV41OiXA0ZWKW7zkruMKU8aAQM/ogqw9tWepXCGFmqDgNk3oB98PAdNIJyIaxdGL5736MrUtHkZjdgrNCViWm3Rsl4AU9fCTPVite17f8lZcInLlYBKzgO8VXrOGFg+lB8RfxdcFrWb6iKoFTD0imxKr5WAlZoXgOKrE6Yvz0PS93yGKYaMXMu5/+xPeYpuegETP7xEpRsEaq67ZaNbgCnmm5zf86n2xYcmXVtejUqpXOtvnRPa16Iavuv7I6mrbNIBEe6HU/We74isBJyyS4PcrPvCKw63RCfou2ut9x1c15/SK6XrBdppEqY7t61OKVZhj39s1LRqWx0iVVmrM+eV7Z2jaDRHx2ILkUbf3+X9EGjTf9D2djvSyzqUzyCz5M94Eq6ZA2OJ7la7baQ4aSZsqQw0px1vCzX5YXine9eFbWRo/+ppj3ml6GVjDgnqxqo/35xxnZT3z/iZXt+KSuldxaj25Wk5PpEpWjhONQo+6aGURxuYUC/qrt2her9Zk1XQn2AZ2Zu/kOsHEZKtJWjT97k4XJgzhwVXJM39fNl71+CjfVrk34ogas/bKhl/HqVY/hFFt9FtU6efYqgOESDAE8sDX/JPgXSgaPZhBDVDspquZQil0+cBROyRQI/T6IVfpkYgKELRmCWPK6FrKifB5uyRBE1zAp+SLMgTzA2dAJTmaOEv3Xq1X8rG1kxzt5MR3f+JR30qMbnWoc0/tqBBAnWBtmFGaDgiRwSMXcu9Li6jAlCvaeCaV0jxHVAfjMA1+FkFus1XdM3qykKjIcjAQx7dUs69HewcFmnjbQHylEbU/2xdSHBAFJXuUp9r8PCL6Ubb3p2v46XdVIFJAWxkNP1zZThfp63fNOl+1/HxD8LCpei9Su29Pw8zftwh1MYF055zsU+0wFPP2vmPW5+qkX6KqH3muU9P4GbKd68YYRUqcPAGl1O7P6HdQ91fCv84r43YtQfCPr2MTH1OJpTPdPqZpHt1+hjobMg5WVqrIcAd601hxtEqrPjqtaVt1GkdRnaSR520pjGsHqy8NRIXMMFDGfCr9BpTEB3qa+mA4pVWUYfiU/vuH3SU8q2jvN8PrWLzZM637/lx//+Icf0zqqOcYuGZ+lsy3LMbMFfDah7muOm1PHZ+qs8DlutoDPxt1lzPGZKPiMpm9WjsUhrS3+V3sucCci6jvxJo3tTgCb1neK7TY/314pJY2yd54QcHqY6WdnA5IWy29lv80a4j6mhTnfP9dcvdpDq3TvY2qY+4LXzdlOgEveTB86lbGUrVqBctinhOVu2T7XKyWeOShvx9Qo9x20XpnpYQSTVdt0a8cybarnsHTR1YgHptg2YYrUyTAXCs5UqnW37eqDLBJmRt2GhgRsh/O5lCVnVbeWhQCZygC3W7OyXIoGCjEmB5rL7VZWD+1zKVYXpeBVkzxf7qbx6YXqxKVQfNWIV37JX0Ql9O8RT8WjBiufgxgFEAJj2KyIoTAkYBBXVbvVYiRPyS2GA7v62vCqpuGytOBYXdtAVmAONSQaBRAc41rwsiApHYcSAgkLgrAvJWuwT8YWAYIottbNBc3TcYrhwJY7xRnqSc2EYEDmoObQakC/n24xFNhhY529YR6CZUmFvuiH33ff/k9/xtoOMlHLv5dmZ/yO17W1LTDf3CkYwripSlHxsW4hqudcCFYLurmi++e/8VVD9vEOapJgUnzKQ5IISLpPuk8OCof+cJgSYIjejrCueRUJEGnqmU8QBngr6q7CIpBMCTgEtjpZGkCM2XxfHsGQ/LvvYfYf2BZTAGNyuHmBrAiWBhCjP02GBbFVgChtWWIrpaUBw+i/KUD/PjHGGDtEmahgUMhaedrOBG0/grQL0YthK/FEBYpST85aZTLUjiNXyebjUIKm+rjVkGh0tduviEGU4Ec3JA+YH09f/ksCx/zEIIjHc1gwsVD0rvlC9zmAFIf0wd3lK1YyRVYzfHKwEjiqUbR7HjUo2oZvGVGZzaUwUDRlNVMCIvGSd+/AkmNmD6YyQJhuTRfZB7dFgCCNEtUa+9WcqABRhtVmeydAHochgYLoJqVuxWckyEEGBvOxYmqP/AJYGlAMyk+2Rw2JRtHUuMWgYDW+OtsiMJBPTHWBg0ienVsMB0aAA4c4Wz7a/o5t8u6tEn1C5374tP0B3Rq+a1kjFWGqgGDpYgSlxOJxg5jJsRR3bcPiB8kCHAcBLMnPLVcicqgswDEkx1KYXxIwiyUCJ/K1IakwwWYjg2PcSgAoj0NShPtXvmqbUJuaDONRwrA1iq2aO1nw8o5Hzv94mGwFOMu1+MoL/RbsF7xuy/BZQs+Sv60QO1z4jld6uMuLsQ3It5xJJHt2nAjDLn2ym3trZbapf4elw7tfM77jzUYWAE8zeaLXgtc7WdXcXOfO9DtKJHqOnYoaYWpoJLnai+HQ18UrFWO4Y/tnQPPVJYO3D10TA2zGj2nh/h/4K1dX210DeGuPaWNla81Qwj4TMwl4nh+U3IqaX8iqblS7aqSyB7mpSG4dFJeOTb6PhUr1wYyJ4QSHeR3YM7KSwykeOVOF/FLdyrVY5VNYyREUevP7T6IqdG8JQGEmR1AEZhySUWLzDJk8nmmGHJzQ5EImDRwC773c1w3fUjwflxIFG8GzcgjByT5Wnyv5pZr0S/LB3Dqx79CnP/fzBfl+Y8qow3wSOdnCM3OcUbo6aJheYqq7QUM+gp0++lWfbFR4HTt8yUvM040zf8xsmmHeh+Qg86en7TgsfHqCAVgSGRCT2DvVsAbTMPN4D6/a7Rxi8nPb9N/mAwAd5HhyHNAtPP29Xzn9gGHKUcLjm28NEwJTp1aK0CJsWhuR1h4MpknjYvO3yWPDplWTrddB8WOCRIecMbYjSczFXEmMyZu/Rcwo3n/4cHXxeHP/4Wn5ePZ49XTx/uzDu6uUN9mTdPoGG2aFGW7bEzxhJ/5XMQ2kbQVhWA8TFdN66dezUwSlE/VCIhvO4iEi9GFzzkLxj0R9waoVLyeNhF/PShAQ3rFmtUkR7H4YEpJ1UnHp34Vk2jSVaeAYS2S6ucpzFP/JuYvKff7e8wASlL+dJu195lEP8mMJjDbAkALDizCEUO1eh/TjyH5vv27owzJ2Ux/YvpTmOwNBmIjFP2jHRbLlcrHgf295HWty/e5+SczKSskbHg+5F+IyNGKfnv6nh3klpOVBJz573eCyOAokGOEzZ4pkzY0vlwu46UQoZqxXXXFlelBIscKXqqWSYhlfkg6bJVwO86A/frhSPEokmeHL0ZaJmsoa+eodFFKsCLJnqkQtW2zm2sS8tRRZa9NzNs69EHy25lJu879m9+FHT+Ku/ChL3KM/yhJ07A89wXD/PrUbPsoR9cYPchSd8oOYo28+Cb/VNptI57ZtJtkjCsCldWHd5bNflt3tVmJd3VSXvGGiTOgou/1cWoH9ae77mAYROxobiGMezXcSOci6GgNhZqgE/bq7HQt+yUvxytUeW9puuThB9SLUdsFr3jywuv6SHgs1xOERTaTpqwwVhqGW4f9xR+k/qCX666p6CMNOhTEXjdH04xorXY2m8YrGaXRIfpy1Voj5XEu15k3/W3RuZ2Ix9w/8a2O9N8uG7zAETsEUio+7Ql8YND4kCg6HZIxEo1dF/wrp5g39RJyCKRR0zWN+u2il6C+pIgPo5WIES14V1kvbX8bbH7oheTBpDlFOmk9Hxjej/yn+oZg6aZ56sXbBiy78G1GOZ5IpJPezgSfM/t49/nR6EnyeM77L/U+TQxfGPBNiFho/JqlZo07M8/H+8WHJm3ZH0B2dasW8+88DWTPrkEsjoO1++TQBLPiq4BUF0OD7gl7RKI2ZBEVgCsVcuw/S/lCr0dl36UUYZN9M9280sks20wquIJljqe4K1e5IzcWGlSWvUoKguTliullMH/iX8XXXk3tC8YQltkQuh3YW2/JueZF0xi+RZ9DLYtBVjRRiFEyk+LjDV1yPXDoBmXfctRFVy4+ldXd9dtjBgkAIqObxHFoeOpiDZIjkUlZDEszDsFVS/HAP31YJ+b3jjXnJbtts9H92U5uYecyIbDrRx4q9DZNDOET1X7WsUmNdue2PCkGfL82wR2LZsKpgquiCU4H7tj69yM4PmjmdvLmcfup7OnXmWDMLTp07J87ml3G2zeasKLrd66y8qV4kxHEmkmRblvILL+6uz+InqQK+tkqScbV39EPzXA2JFMtxgv+OFyJyLiU4C2uIpNhel/JLdJtpYCJ0SP5PtJoFZZzuRPKsOLXdNxUBMKROyaqeFXV9CrP8bJEc2+kXEWTr/CA6bec3sWcZuu9fd1sF2tssz1hz6zTPuI04NB+acwfxcTjtmbHP8o5P1AcA7PH8dM4CwOESTMIx08XOVCbOEfhOV4asoTXAFonZ9htD9JGSInblqac3bwlE7RxrvPAKH1BLBBmmz7EElkyGtWN2GGLtmxueW3fTJJi+x0QhZqi72mdKMchbdEibYvKgxFbo62yARof0UbNDNx7idEgcs7m7PntQY3KAk5U+ZjZd3YRXSo9SCgBBewBpCKILiHCcVOkoIrKRymqdsM1SVnvkWlgAO/vFABg1KUedCPKJlaLoQwbDvsa2QNTOXkqAZ9ktFN8j6zgu6jzcqV09R0Xt4519F7iuk+dKjQTRRU59/jdx+uf4+5RFqXTN2OSYOdVXFf0lwM3+JnFBw5ca4jgftUGcPYM3i+CaN6uN8RyzFtw9iaN+1vc1Z4XVlzo4FfnLY5r4f/3yGNLpamTeg7GShLT7Vs/KWMZSpy91eGkisA3W03TF97omDVniJyZ6s7QNreHBSZaXfwdSZASUNt52pMka7WTnxb3TJjKkys6LZ5uLzya00yNsFt3P4TltGNxB4bFM3TI7s+xaqH7yPnUeZp4kyQQ05+NNGbX0b9H1WUX24brOThpfstT+lDNVilWrFK8aXRaJZedKlDs4TCu6lA2z8XFoWq7cybLGnOmZymvJg1twU1zS8pK7z9bjDNpMCxhRp5VDok4cp/m400OTZFvr92mD88TyTf86Z32Wc77H0U3AQY/YTl+n3Xynb8DDs53XM0+RrpvYk8jqQuT0HYLbVD368b2oKVMZOV75HZSEDafpjjlFCekTpW4dTZshAmczscOSvRKVu+bUN6g6aFG2lT9p5qRT2oNL2PQ6M2KHzapHec8JXW1x/LktbB33XTmGdEnqroRxnwx8K0Wa8sddrvLHXVzZs8s6bhDYVW35FHwlC27NiQTED78OKo5DpUTJ8edJmq4V3SR13yqu5fMymcBK8pgmiukPQ7t07SFBTNezyhVTDyxuzT0Aj8CRLuRijBLT5I0EAd21NVhLUraTBLQV3/LtM1cZ1HaSoLY9HEtUtxNF9PMaX5XY6taxEUeSW1QlSDAMPhKdhl+HFNM/IXXs21HPxgAZumayiMd9QlCNUfg+HO4u/TNXx75v7XyOOknYkS7qklW97SRR7fwPtCNdnktas+tKGPB5tfuESRaTNMHezLoSjbEZ2Rcz5Wn45aQ76omUMlvxS5L91kjX689jJAaXQ9Jc3BJ+w+jCSKqtXyhi7px9yXK1FZLspgM/gN9BIsFwNsuR7XdUSLJD58+QiBiGJiqybJ1CPvOERZU085CQzzy0vJLm6lQI2gVXqzNM3TpB6/CcSYa3R8hr7l/tSTR1CPjMwosxaX4eDZ9lZFkmzdMnkmoKy6lXJWSL+8RkfVuCizYAv2j+cpdv0hiSVcFYsLJJl/WDeZZ0UgGmyb1G8O5FWr8C06FI7ElEF3xy3FwyIeP50k+6m5E2ZAHsHqX1izAdosSeUHzjVJpdQCdsjWpY3RJhQ3ynL6CTYQ17rCGhDHNYhzMklGNOlvV4R8y/tJRoOk/vs0pZz0ozDSoF7b0rWxnGcw2fpWuNK83ISumTDy93pRl5NCKWsExNEyeYmLOD2SZd4oiJZ7oty2uq4bN0LWSlGVkp4/Kumb1cI0vDZ+lefkqzmqQNWnimdTOMpgpBO1wZuiW8hs71qUQnO63PwrdUlWYyS+2z8a1apdnMUvttfAtYqUaz9CErcMs6TewzyVjWSjNOEfTDzFa4Uk2PCb3ioK9GHftchNa9ciwmCiG7+/yuwzFZSDj/e1fHPnTBhbE0D7dE2BD62sxSh21Q32+3RIZh9rfBo+Gz9C6ipbnNk/uMALcRHKxgtxJc9Kl1UTxIWdae00++A4cB96CyzTY/ntj9+F6tNrxuFGtk2kGsAI1TNHRw6pBg2UiVFtYvxb5TC/kOxQa7KiL+OOLXRlhLQLoTMI97ASOw1UK+49FGrOOok+J1U5A86IlcrIb9xPfRoy+RaqUl4meyDg9/ekA323OmFTPvfrXgL4rXm3iAooCzLeS2/asj19a9IZHzt9GGLl001MZd8hfWlo238kUx3AIJlq42LdXN14LZRoG2O2oUaaJto8kXxvrA2DHGUt7lmFroVR40jBoxr1meq29NBL+MbW5dg7tK+4Kn26d8sS0C1b+SrtbFv8vo4DpLHdzVOPmtHizItrnkRbtL2qblt7WkgrsPEy6HNZxybolFTXtYl8bmzX5ApyYsy8gMhX2FV3Ip5pZe5i7vUT93s3f+zj3LKXn/Xv7+ZuP6udA2Z/tx6B5ZbX8UXE/k8LOk55E5mjmKAy9Yq/fV6kKWszDQELNv52q+l+f/fPP7jdzy36u2qrj6/RepPv9+sPnub7XnP3ds9Zmtef37A8jvC1E3v+f19vddx+j/fAPPwNOTBnrqgZ400Jjs6W+15z9HoKeD8JMGeuL19qlxPIQfPQ+hLLuIvf0FlFJF2q9fKRffujB9z/esLE8/N0kZ6ZV1aHH9h9PMypTRmxkdDVYWfKn7iXwdWbz81bIzp0zN0PQq9VPO1oE1NXML3rQK0UT/MzN3YE3NnD32OOWsDaShjI39/xOuiSZiKCtSiX90qy+LtjzhBzTF9O8O3+5kLRreTwK8iFh/+tfKlBs0tOm9FKvmPauK8nSzNIUMZKdRsrzjdc3W/HSbBienN1NdgNuTr3dzSu9hh5vlxdni8jTzcYTz4rOGdfNy3UGP9YlmYwYZzc5yteFbduLZOUDGs1OxXb2RJ9r1dmH6Dwd1E8IPXNWibnRsc1nwUq/t2DFZTyp/MeZAZrlSvLhgZfnMVp8XvJblK1ez0GUnltsItC+7XfzYk/76TgiDGTndL66J5z0zpdhu8/Pthaz6e3tOMycOykiGusmXk87MSBjNSNmc6msyRYxkZbliJTvh98WF6cvSqXdNkzqlxx+dK1ad6Osyh4xnp596Vcc/TK+qO80M+rETs/yJle2Jvlwe0sSMnWgfyEGZmqFrqW4q8duokgasN3tVwb/y+nQbdxvQn42Gq4qVpzwunDFGM9M+1yslun75MP1y4jlzAvuy+RM/4QnxI5wP/1ZfefQotlwt2IoPo6i+fTzRVi9C7MvoHavYmhen3nNyYfqz1Kw2etPT5OrS08rPhNGbmWHj7L0aJjJOND8OzFiWFpwV91W5P+W+hJfVmzk9u3RW13Il2OkO3R2U4QylHfL4dbOTcIrE/qFedvstZGjgTM9Ud+/ybyVnI2x69h6U3HHVnOjmjyBvViYne3lPPpMjb1omT7XFn0GGszPsrTjp3BiM0cyc7i6JKWIwKyc81WzxxTNxusOoGWM8M6f8mqT17U53fsjEi2bhnNWnXKsMxEhW6oZVrtOKJ5ilGWowa/YhwZPLzoAXzILO6glnYcALZqHfYX3aAzmTMZiZB8ULHYrilN98kzEtM2frteJr1vCrrw2vTrvLHIROy+5vKZfZmfugy+S03zYXa1rmxtMav4XMGazezLWNnsHs0p1olmxCX0Y+sC2vd8dZ8xN9QC5Mb5Zk9VsYQbgwY1nSP7uQVd2odnWyL5MfNpC9D/yVq9Pt9k0IfRm5f+6Oov7ccrU/6b2SblBvtnan+xod2PzwOnusLPe/kfW+MLAvmw9sLarum5wQYPTXytoc0psde8/yiWZnBpmYnZNvw4O8iZk87b3x+ZvijZ79Tk3jLZxU1pyg0WydeH/JyRnN1Dsl292JfoTnkNHsjBuS6mjw6l89UxPUaNZOeUfsHDKanbp7qCeenQOkPztyxetaD79ONSsmYCAbRbvi6rcwE+hljWXut9ED9MLGsreUqvmNPLopqi9r/fCrOtHcGHS+DCz4qlW1eOW/hRfLD5uZvd/IpHsGfWYB/CbzDc/uaU/Mx6Ezs3vaU/VxaH92y65ETneIMyGMZaTeiBOemHNQ+jLUH3A8zWwc2Pzwp3syJ3oip//BCU+x2YAJ2TjRsf6EMJyRw2rXKefFhEzMzkk/G4sykqFhheuks3NkTMvMaT8cA9KbHd50S94nPo/pwvRmSarmsrsX5mS7n1PEUFZOfICYOmy3fnfqiwF+2KTsnfKsrBs0KVunPDvrBvVm67dyljrvDPWyi0Xdhxw80fzYhKGMdHGPTjcXI14wC6fezE0Z/ZmpG77tAnRWvDrZujWF9GVnssnqjp1oo+bk9GXqY83VKQ+rLT5fJj796bcwKe6g9GZIx1M49exMGX2ZGe4+6Tb1nejIZ4roy8rTk7AjUj09nWaG3KD+bG3HjTmnmyEb0ZcVUY/xBnihn+pp5sZB6c/QVdVuT3ygPYf0Z6f71cmHrnBy+jP1G4ly6Ab1Z+u3EUTPyenP1G8lOoeHNDVjh8D4J7t/LUKcmtHfTP7ysvWgxJap/W8mdxZvJJMn/zlLPi4k6t/IGSg3qD9b9o7ZU83TjDIhQ/fPfzv57PSM/syc/GLyFDEpK7orfOqBe8LA/mw+MrXmjV75/A30fX2wvuzVv4FpS5vxu+9D9zn5Lnv0XPX7K2Rpgthl8ZAjfX+weQEn+SWSbSPKU7pDUvM82WXguULyw9nd1fLh7OJqeYr031p4uVeGHHPkugr7n58jH6f9oGYXiXdpHpTcCjN20GllacAL5uTs8Wz5eL+4OubBfU32r5CLEc3mt+7dvry6Pvt4+/j0sLi5O1v8z9NPV//z9Ons9uPV0/Lq4Wxx9ni/OMGMxaEDWb65PL0c3VwGga8+PN5c31wtupye8IPxkQYypyvo2bsTfHsGsBD6/3y4OEHu//lwEYD+uLw6wYqjqQLQXK+nD1sc6tOjt/AC2WBd5/SVK2Oux30J+z8/D0c2OwPWTfLdj6bXFZ1UDnq4WBaW0jx9eVIZ0GgB/KLbGDiE4r/6e8tK0ZxgbXJiBrLFa72DU9Sb8YzDWVXYsWtOJWc+0lDmvm5YWzfilV9s+OrzCebJBgxmpVFs1fzE9zcvV19F3ZziE5oxxjN0nNXupk27nesnmzMXbE4WpxePnGz2etCcrNVn1exelZPN3hE2nsXjVF19reR2qVYnm8E5aiB7a9501zadXm5GsgR4nU3ndO+p5WUCmpC10/wIm3ThTHwwr644IfwP8ksYvLtFuWKn2E816cKZ0DdI1Q3b7qbh2k8oKxPGQIZEdce3Uu2PkTZOL0NzxmCGCv5VN9S6XTjNN32GGMpOffbL8tLaSXsy2RjRUvB1jTzhLGi8WDautkyUJ5qHji2WgZuHs6LQi4gnmokDXywj/7W8/3CiedBoMfyHjaxO9WXo2GIZOOGXOeVFPnwdTzgPHV8sIx8XtyeahY+L2yD8TTFErT1F/gNcJAuzELynmZkZZjBb/sizp5OnKWMwQ+PewRPPkwMznK22LO/Vx6rgL6I6zao3QQxm50GJV9Z04ZpOMSsGXjAbS/bClNC7wVnDnoVeITjVLHlQA9n7zPd1t+5xetk5oAXwt1yt+YO+VvgUZ1JNulAmZCUbWYnVx1IU10w3Eye4VOaiDGRq14dnNQ9RnOATclEGMqX4WkcOV4eGXe8CO71cOTED2aqlarpGQ/HrIQunlykHZCBLjWL68Oz0np5TyYyFF8jGKytFwRrX4etTycoMMSc7kwtLTzZPHWc4Yy0/1Q+pATfLgrkv+6xi5b4Rq/ps0gTwqt2mZ2IiY1uaW1LPdgLpNAoEPPRd2ziTg4Lf5YI1fG19tfM8xvR+B31DRbeYgcvMRMbvd63YlusKCHU6CPg93nGJy81BwO9xU53tdv2WN1GtcXYuLb9z33Z07z/OdiYU8GzrzQepjx6v+j0/OGOnmt9dVyy2RtZQSyTwXj/cwE9MdGcbeoVhq/yfXc0g1sDQcdmgTnr3DuYRbEv88J4jHUwdh807LpEGvYJD2n7ZkC4zMadhw/W2ENzVbYOdJeUw+yAxsf83w8V0nqdiNBhID1vJZdU+L9tnrMso4jSw2yC01UzOYTq0QUivo4rLoo+J94w2MXR8lbpi5dnDzWSsmnuAaao0O2v0u15S7/3lO8V1r7n4xmzvflme7XY6WtuCs1Kvhzwo+SqsywQABxr9svNDiCkws8sbSZkG9SBa975Z4dwgCKNK0Eopth/j5yOzbEkFTT0BkSCmllTYdF+tbnSr/FxypKehNLM8vgRNXXwn6u/41/61+cYJY61boGBmSwupMBdt3cjtx5qrszWvmkveMFHW56zGFZNfNvSYPLGlAP6WUtBy2PRP8xrM1ELW/tBTAOepWMh4iLpE0dTZUiHTbiMkhaUpFDK8lfJzi2tFe4mQyR3rrrh4lN0Trwpc1mZqQeuE+EoQBq9sOgwtQ5a1K04RmuAoGgLpVnpQrp0CrB0fjoBft+WLKEteLHjdlg2OximJwlvwv3XnrejobEUYXB9CRX8yUERHmVAtiUReAfg6FUMIH2/Ns+UARy0A7Pt8YaIxtzZ0AUTSOzx98on3H/7yr9//6Yck/3MpS84qx9c+D2Sq4yQyu1myKoR+LuNNgVDjmVDU2dkTA9s71WIMl5zvflGisXvfec6mRszvqj/hA7UaksNr2aFXpGuH9XrngUx1YvnWy9f3L8t2xydRP/NsJzJprnjDFK8P7fZZD6ORr+9EJuZ6vxXNuOWuP0/7ysHeTrEowQ5Tj/rUaR5/wJn8Ic3le5zL92kuRgHfv+AcLamY+4NYfSarL06xKEHfO9JXDjk6g5kADi1427jgf2+FgncBxvRwgj7aMFFL4hSLPZ1jTxHhe5CIujVKVGt8Tm2ZmKtOZd8enmc3po/5TPsieipwvh6f5x3SjL9543W7pbEXJD8EjKkzi9Xy13lnIz/Y9yyhbeMJWbfmzX8tbZvYRpe50UEkfC7zU78PR8gqf1+a03QuGN4R0zYbPROwbJR++ns726GFbVfKwE4I/yMMmcySffe93+NWbEV3iFQt2IoPwe9mQQhCdiEFv+88avhZWZqnnUOWnsQ5bvNVpjxD93LSzNPR14/6ePr1prYrQGRI9/h7v+b9Lr2K9b8N7XLpNtDaDX1I0EjgVzUuoE+QHH8d2Jnivk0xJGolCexD8cVmDa+vBuOl2oEbxzWebZa2ThBSPWzsyFoWtlOF9O27hS4Ut9e6wjbOxFE36/Y8iKNLIOR6+O24Nl5bs85hR2fiJLfkp3VMEaxffboLWXV/SJ8WtBMGV18nH8MHptg2Z6XELRCzHFvuXKdDupiBVOIfXfu9aLNWlWdpQ0a6fJUsh7B9mQuj88Qhq+PrLasXsc7wmaRMMllWbFdvZE6Vm6UNGvEX1pbNA1e1Pg1RNXfjlU1aJsc1KBRBcIYczl8GjSiFF177BmZ6r17U006YZBG6kjTdb64SMv+J7zPfiiFF+qJihradMN3C3g6aaaMT51k9KLnjqslZJPWLxK3bZpPZRlrpogaTcyRp6o5DHT7pzApmJ4xa3FR1w6oV101Kkdc2OdNHDfUPc010mpBw4OKZqMEsbXiZfQwZdFPt2pzPxyRl0MRu7J0HzeN+XpEMa8AHC/Clsm+uyfkyTVImmUyvb0s36VMmmUxv+k436VOGTfrFV0RddCuETMdIrpkvl5ksJO+8xCeqbqSKi4/vebb+mDBoEbq9Pu4zTx00G46pFGzXZO1gthMGLZwXoccNjGQx+cn15EnaXZqwsOee7QR5K2VwC4vjouio/jFRcGRX9t+hzAWTWbLYQsFZWeZbpKtPhsyJDpNUuS4L3rQqcZnanTa+kWbYkHi8ZDPNzpEwYdNO9xq9Z1VRpvtYidK252RnZpIqugHnMHCevDMhk0mi6KYb3TBkFZWZIkk9fY/J4ecx3WEN5bCtKk1+mirRZTJMSXBwjVH86vaFB0ny82sI5vq5tTO9Xt7Y14LnyneJ0j369ln5rxFOc/XIZHJ062Yg6y5lplviF2aaKtflWqqbSsBKdEwc9dT7/3md3hYYCWLaQzS13Ao/Sxb3aVYbvR+gW+xPNTHTRB2GuYB7NUxfJppMk6X6LDgr7qtyn1Pb3Gmjjt3MkGvvdNBrkirNxXH7Z9zkkCjNY+gGZVmMaZIcsh7JMUGSdvrbfvh5sq59CC1J23HAzKffT5nN1gkTbKyUSW528KuoxTwKlUfXERYoKu6J0xNzOFuvFV+zhl99bXhVJLeMYZE8Bow1zPGDps1rY2Zp8xzHAR7EcUwbdWy7XfSTqZigj5EiukVb36ixO+4QSszKLFnUZ5gT0p9D5/xs0M2dOMHzA3/lKv2FNlNENy0/11y98n4/y3SJMGTiSJi6QfoQQTa3zxMQiG6RtOen0/wmiZK3Ybougg76zBMmeznWPpKsfOserm3d3awxpPV3p011tOZH8wytpDG/BV+1qhavHJJFT2KgJ/CTl6oGpCKBQTLkfRYjIkCGvA9lRCTO0K+h1BuxS3+/p6nixwL0Rt407f63aQcNUhW9s3yx2C7GIlDiF8tMkZaJQ/8gx+CQKNMjKxfHVIkuQ98jz2RMFPXgTddXy/wWzZJFffI/CFkfAuvHuR9xT+Isz+n6cbKfc/l47hXaKxX0im6PmnvpdbvcIrTSpJz2MfrRVviikMs8Xczp058gPYNpqqiLnmPN9bDSxBz0mSLZNt3gILElsJJEl3xulhdni4w75IcEtq51L7QjqmBUdEwSkH16EvaM/tNTuoEjcdBqO+6IyTMxkgXkdbzdjHu/u58H5EQlmukXPHbs6ZjGFp7eNOOJwhWVr0NBtyYmnnBOcY9A9KaJhT+GUtwlHDJpYhQ4ohV3ipy0m91C41ufijuFF6Vc98J4dqDGrWJbUINm7nBFuab+6ERBc5RnnpUrHFGuoy/6kMsY9LqF9l56bt4B+US2ec6ujzE3Fub42CnTTO6f/wayuH/+W9DAuasuru/dVueX182xa8Eqy8wWCVpHAhnFbRPiFtnXVHh6sTEnO930jOzkyK+ovmO73XfbtMjDonpiu93T4deTTpn7BPV/HM56/0u3lPufmR7uULAxVyMGMj+XRXznf4LvVDN8RuT4W30siYkqYeNkJsRBOJXkPWcpEWgzMXrVRAZRra9eUzZK5kGMsukUQ99hr7dJpm1nziaaWQTpjB8nLIekwMwV47tNrNqVuh8wv97mbBo0kxrBxifVCE01lc7AEtV6ydWrWHGiJxeQji51VZ780DzHmLwb76+ex5n/zpmpU5u987ZpEqIOBr16jZwmH9TIOURSPW+26ALtJFL9ls0+4Yxb0K+TCB+z0g3YvMYBG+ygXIjjUtQ7vSGtq+kT84TXaJ48cauh6+uU4Bf78ASb2OmNJil+s+Q5hrdsL3MzOEueY/jIvzZnpVjDM3lQSG6N+2J5ZJ/5tPImWHtVIPb3bUPh38skA1yKeivqmheI3Nsa+daYnE9Ecsx3Jdtj821o5Fsj822KJJsv+IqLV1S2LYlsY0ymbY2ENchJjzY/0x6NmPWq5EwN0NFJkJmplTowFVGYn69sFyt1aI7F+Ghlm5iJQx6VaAQrxT+478alVD+PUMC78nQ+sr19QgFv6WjAs31dIimeh6YT7niQSPTrmyyUXy+R4je2FnC7USE0HThrILLt5hKR6Udww2ImDnjsRLWTwmxSUmYEn8ZkSROBoZ57vtu3Trke4Mfv//LjH//wY1onHmDtUvM5J46bABQxZR9RQkcYQBNSzSGZdhaIUA6yURZf9xgDMtNMp6Asj7loCoez04zEsDXTKYhLYyIa5fB0pTEUU8lkBsqimGn6KKIdbACFX9NH4elrA7ynSj5HT78b4DhV8jm6++AAw4mQ1y/aH4d4+0V9HPG+OYAjIOrjCPfTAQwewai/o8+OcTflUryn/Xek90Eu6j3vy2OsDTWfc6hfD7B2ynm9nX18iKstZPv9dbLjoOBfY2YF//o2ewu0MGxDwYUs+DteXciq6qMYx6JK+8ycQjaCGbD2/Or2/sO75dPjPTxv31oivYd1ce77s+XT3dmH/0FYGBIeg/sPV0j9XsEhf/Zwc4xRkhLL1Wc1FQqtCZ093Cx43eAdjypBu+OuIX3uOyksmtd0rhWyPm9Xn3lzU71IsONRImR0IatXrrBFaqkE7bq4Qo5Y9rmGtk6G5Zlat9u0heIk61EvhND1Ac/blxeukAU9UwrZpgUt9VlFo5cOr+0YzRqZM6dayu4dpK8tk2J4VTWiEbweApjEY1nGrKeCKRB6OZQMwBSLmzf7W/bMS6r8T+XS95MR1byQaBjmML6ob/nXT9+jOZx6OQg/ECP8kIiwUxz7CZnoJFnSvAQutZD9T6LitT7dofhG1pyoFgZVE3BoMdLtu5p6LrGP35aJGf5AY/hDmqFcdV/6YVMg1telFrLPjBTv882MG58eZTtomBOjvFGy3vUDtMTIq0Frh2B431tueHGfe16wca5qHeVE/IOqIfEqBjGGyQUqBqdcEKA779J9eGiGJD7BRAii3qVXMRWD6Ovql0wEoaoYPsUwxng+DTUgtmWChm296VZdRd9WU2U+KBsCWlwtH4kg5lIh4+UfiWynQkHTw9WjcLuDRNwoLWJ82Ik6Pn3YLSla/Y7z1eYdr/oANOhuskcvhPCoWHWIJIEGcKpF7UvWcJJhglMtMlk5fWdcuxK9c5TO92QeIL1i5b4RqxrhZUtEHY2ZTF7Kal0/SpCtQyfD+z2r71gVDDuf4Dyo5PlaF0dCbWf3SQZdY3F2EjxTYu6cNbec1Q00g4fUMR/PHGrkEFfWfGz01NYkHYV31DMpZlJwQjblKcbj8QYtorl4xyW8tTkkjrr0E8JjKGKQly0RP7BynP2CZ3CuEvM1+4QIY4dMzPmBKb1vA+I2JHU6HMO5NXXxnai/41/7m/e+sYacq88gY7H6jHC1hoXAkp6JxMp5wVdSBW8f8HbXu5Tw/B47wqAGwUgePZORGKMvoSNNGecurScdd+yvVYLXGUsgfmRXBylu1YrPammw2zpJFeye9gmPwu5gUr3u8GNb74828a6tN99VZhsU3nugf/9k/f4tNqA4XGC7Uc52Vf1QsuZFqm3q9apJ5g7h6FrybReomKsF38rXhPASSSAu5eDy8mr7JgUy182Zq8kPMpEEFbXJmk/iSu/NoyuygEHKYnJiAIwkFEAIjPtqyj+GOYnHT0hiihnEAR/lZ16NewvpsFyy0T7bJCvveHPOCv1laasmfgQTVJ8cHgDMW9ZWK+uPb4fr8wJgH1+mZcOatn47aLdTLvJ9Zf1rx6uEM8EgZK8TBfIbFbPfCgd9PN9xzlaf10q21T+l1L2+9Nn5pzwRvzFVhq6l4r/G85n40mfnn/x8psb5GbI+f2/1MOYmSNA3K2aHSy7q9AtCTjk1yAVc8L+3vDa+dPXbPHePTy5ueowxEGVenLF5aqNX9jbFOLeIT11MNSaXQHeTVnE2p4pt/v0P/xawTY13luCdEPwM3wsH9LHp+tSIHjNVDxnc/80K3OUwzg7dRdXBBnefybrL8M7w23R+ibq2b9SVpeqovk3HlKjb+UbdTKpOJEGnEdIlpOgCgjp4NP0lYG8I3cFI7T4cLddmiqObOwqOw9FKb5tZgXDWrg8ezG+uE/b199FzXMMdcXCYL4dZdqCvafcJksOAWoBBOr5nAHOXTLKr67uAZnCJAoiOrS0h0VE0SGQ1fiB7SyHgpWatHcBuLhJwrJGtVp3YaqWF75ob5AXwCo5lIIbfuhV7iHmQhKRhDZQjoBzgiY1woDReXR9LZoCzKENOiLOEcQ+IIaSbw0LyUILCaTQJoyECtJALnPMNyjBok0vqHSORgs5d4JxvWqIOGz9paOQEpHJKJhIQFYxb08cQHU+BKPyqPo7Q0AqE4BT0uXtGWSDjqVbAMzTigno7NQMM/tEXlMCh6PNPD/YWNc4O9xYYlcEAgso+nvAIDQTikUwjCI/WCHg8Brl0rpEbKZ1l4KfzjOKAKFM1n29oRAeydgr63D2jO5DxVMv2tAO31f2W4bDj8KO32Ds7SgM3zPYqCat/fh9TI7T2lxEuy2+WFjDrfN/wesGq9XxRON9xqhUyvpDbrW7esKaWTtiwuwxJB3PUd6CmhOsKuU7FghtTG77VYdIQhqNE8IzsuCd/t+96TPpySusm1WxXj+IM4nh2o+A7xfVFn8U3c7J3vPmoymlHGUplqiUUC8FDmCglmOr951T5PWolGB8O8dHWBKcstDrMxR6YeacyHaTWBRXag+Iv4uubIHXK6KIbGr60owHpmKZsUsFhm3FbKMHy466UrLhkDesgH9he/xtP4NaNHsx/cRw5yEaYKKWYPrL6M4GjlgnZ/aJEQ/CUTZnsqq+/Qpe8bkRlVtFZ0zZfyQ19xgOSkVOKfshld2iNis+lBkK7lF+qsW4n7AD0UzmEYuvgjiSogvHrURXN/HNEwOf4DnmLyn6zIeaOl9q53U3JHVc6YifFkwkIgh6NTw/+bEKKCcWl+5yYt8eSyPLDPpeZEvSB2EKoJzGXiu6PbPgWVRKGAKgAxvTwfJsKsezqXv9ZSVPebi0AwaRXjGRw9YTTHsVxSKSLFA501CDAwD+juVbKM3rQAX9Zw8mqikcQyoKsNF5J0CNbcFagmnFDAAigT6QjEQyJ+M7Leiermp/LYn8nvorg1cUhz4lMYqSJfjYS5mlJJPqZHTD3FAiAwCcKqgAhTfh7G1MFFF98d3AWTuKVuIc5vmNfjew5elUxD9Itin6Sftn0IvyoSsqym8ghC81UoyitqV5iMcE7EIZAhhfFs8D2ZCcy6NLP6bEYk9rH7iDK3ZbK8KerfjM1EAWio+TXw1QQR/cLjTfRSyyovstD1pjN5WAc6Irj0EskWbbP2nbZKNbwNa44JlqJBJMZc4rn4pbEVGGHIvqheTSzi222doFica9YzCjMmX+90SsYkTJtAaGTifkeQVEtyUwm2xdVT31qoCrqFIPXTq9cWhHB552P6eOn6odqm7GdxkwR2jwz1sgHJdeK1/Xk7tvImpUzdXhbybA3IqXMDj8Gry2lD8aOvwabjRUnK39WoliVMxPkZc1OlbP+lJybWSL82lJyFhNHzDnm2U/TmzintPOfrj911mJWcjbnqQgWqpJz60iGt89+1P7UWWWe/7ADydPWxnKyOP4cs+6VkzPf9rQcQ8ijnCZLK0nQw5ulS1xNSs6O+Xvw4oyeFkjOlZUAY5n96FzpEssz/+E5E+as7WRly0oELtTDpEFWLu1UaHPQY3Umzilt2AN2p46vFR1mI1KMjJ9jlsKSM2b+HmGY/RwdydJKMv/ZudKlj3CTczRJgh29JmdvmgZpnP0kPUnTSzj/ifrSxjxXcmfMUbhDMIwe+re2nhVuoTA61qmSZpqA9NrsxqVqW4nC4h9VmaH6UZUBOVFfsGrFy8ncQ1jVShQQL0UdjZgxaurfBqRU1wakivW/Dsi1u9xnf0wRkK3/mHTq6qn+Y9IxK8d0SoLqt2Yy37k31/RJqnb0IHZguiTVY5o8xQqan1l6n1lg4iTFy5U8xQqSL2f6FDPEcwvJ5Fhj85v8PENTJCmmzvRJZpAsugWS7BAPNaiTZY7Oc85znU+GJNoZCcPywOyYKcMGuIfmEEizg+cr+fm4pz1SjCYpIwaQrEyTRiwQD8mjkGiIyFvWc/JMcKTaTZOnWEGzNkufYoZ8gD6ZHGtsfpOfp3MqI8XNThiWh+RmkjJsgHhiboE0O3i+kp+Pd9IixWueOG4DyZMjddwI8cz8Ium2uHwmPz97eiLFZEjhE3RPUqQIT1L6DDxTFSkO06QBC2vCIlG7T+MTtWcWUiSHFD7B6fxCiuQhjU/UNcuQImyls8WtGDJcvcZiTR2ku98mzTrAIsmMDrCAMq7YGjnxD/zuPuX5Npa/et/k4MzQaB2Zb4RMCo7SbzI3aIiHpwgzZvFGTcrJvFHTM6dnh1VqG1FG2rHuJ2/xIvTCsPr/vn2+6Ob3g7u/fA5j6tBOsJvv/62a3jeb43FMH3IZ3za22nCYj6mQ6tSHPcL79Toh17MP726vnkRVN3oCvHhiSrF9PAiEz9wtN2uakm6DPlvcnE3OsuXSjApAgGepmqVYV+al47kIRw00RLdb8Y7tKGBGLShU3ehr47twYAgcQwUH8otUnxOuFo6R9DIUKATPyiUHRCsK677k1FAvXja3HhCuN+sE7Z5lLtVEKLSv96wSW9boG8ThdgcJYL679CmB6sIEruh0eQBXLy98Fd9EHcXodbAwSRu64yzOnd0AlJtKUOFoKQokVLMyVUICXSu25Q9KvooC0/465ZBoDyXbP7PVZ6IaZclRotHUsJkkEvFRbHkpKmz7aCgBgXQP8rx9eeHqk+Bf4Di2DhCmrsW64sUHWRyCC8GJHGJArKZBvHtNA33T2kLIvkjh7kcNNAT6gcykEEgPSq54XYtqjWx/HGIBrONmun/JJMQ1Qx5BaAE2m8n+rWyeQSHYCWybjR3cHuAyv2hsEoKZ6dNm8A/2kB5WkOf8RSr+sZs4x1XDmRIQqJTPF6ws9ZcKzmKIwDGQ5TEqIAFQb52lAgcZpmL352yNQjF0gDCyiEcx9hLIIhSrOGB7cXn2eLbkK9RgzBQBYiyXixYxIB3Sg82Xzb7kyw3n8AppqRCAoN6OmRIQyJ76zYWYT/tOThj387T2PDbExDWX7bCyI+FAjByhcNw22P7YVChq+nPL1Z7E1VRCVJthLh7HMohAMapXVl/IbX+TQYWpZBMlDNClYl9utriisXSwMElrs3EW50JsBsq1KMtlo+Rn3jVdmFrskkOiNVwREGkVDMg7xQqB6bvZMhiUruqhJq0nOmiY5VbKZoN/z20xDNYDa/T/heQZVDAgC8wk91ECh1AVXIlq3d0w87X54RINNBWkxVvyRjf12LfeL4zBXW5YIb+QNJSmFArJjrUEY3EEWsqCeNT/wDFoCSyC/h6Kak3yfGZ6KLguCpBUmH6wpYOB6e8yHtyRQJYWEGrD9KozV7ivmqkCBRFlNzWOgBgUgACl2D1LppATZ7YMBQpuUDyTgiLJmmNLZpTAIiBLxJQBosjtFlUUfXqw+XhNHfKBTIRocHAPxyEGx2obXvSbFB7FFtVHdohBsSq9z0dU51KWnFUPTK+A4wZaXkkk4uX93bLRvThKSIcoFlO2zyXHbU1ziSGxPt7Kak1EddSCQsnPYpxYwn3pp0rBSTq13zXxW0+9Xl1yYI7bupHbq5LrdrYvx3bVIFYYfYIEeAu+FnWj4EshTjUUGO67ctRAQ+C+JrYODOby/u7q64rvUKtFpggY42a76x8xbhvhTAkMdMcalXCfZgCkV0AC/HCJqiUTHSQMDQoBSHelTVXCW5WZEhjoQV8xjuF4ONxRDrbHPpeDCA6D4qlYQmAc1PTokB5ljn0iowYKguJ5mDpgmL5TjNnqa4oAMVjDxpDZcAxDBIjBX8WK30n8CHemRAR0tlrxcrhcmQ7OVH0DUNz7FlMmAqaFJARbyL6ztMBM+AdV3wCUtjSnyhjgeyXG7ifFKz6Vo0QjKESXJBBRrlrU1OMogLM/q4phuNnl5z2rihIzPRTRfRNY9NmaRH0cPBklDc61YmuS+jcK4XDuVb+Su5ASj2SK4bDQh2mmQjQ42K1yHj0k3H5HUE77HbiM8LPH6EnjS8WQx0YOCkgA3MfOVIGBXP3349NzyaviaSuqLYNPLk2F4DgrWUr19NydE3p6KSWDF5Bbjghtw8oXar6jJhyyS94/CxSYoYOAUWz9VPAdYvenLQNHqRfvzlEQWgBhv2EFV0/6L63iT6XEPZ25HBxtFFnJ7U5f2yVk9fS8a1YoQJ8oLaZavwGmFsVjvnRbcZ9YJWrZKLkTNKBzWSAqxUI9foF+6MnDCfr0KPOL5fKm0h2sbu8bFsVWw4Hp7ZxVc1UIXCwNtxwOTfFufI3t47rlUGiX/EVUghBuJojCQ48wJzoomG47Y8VKdBkdhIA4+jAx+uSqpYIAwY0NjhJYBNTowJYBouAKAlEGY5Qh1ItiiIT2zRCUNUExj9GecBCjCgHI/fPfMGuWDi0KKGyTThZYq29/ZSFehN4Wjq09phIC6JGpNeKEsaEBhBj/BiYYBNBBOK4FosekE8MKQKekOPE/0YHDLPc15kzyUQKLcCkU11v49lcVZvedT5AMT+8tQDTDXkUsoM6l4DW6l+RVpACkeK4kj7MTIS6rPVVJXZcMcehvogOEkas28Xp3L8dBAouA+nzaMggUbN/CFIFiVM015qDaKICzv+T1SoldIxFLzA4tHNSSN7foOEsuMTosZDV2CyLxZKsI6lMvA0VRWz0Kwz45Q4UABPmsJkpAIH0kZ8H/3vK6wX+qHGJArLYs65XiHD2BNlOCAb1jW75j8AWTIT3K/LxtGsTuQ0sFBYJ7jUwRPAbqJZoKoXDes10jVmerpmWYY0dONSAYbw4xWtFdC5cYGEtvuNEHtwmgJlJApFI+DyHz0TvbHFpkUOiZ+4AmDPL9493tWbXaSIVdR5spIYAUZyQ4Rx0EjI6cSkJjCMFxzhcULAcVBAirOQnKUQcBI4s9CcxRhwQG/cJ79BBwXf+BpKxMJThQHxmFAshSQgDJskTGGrVl4CiXep2BomhMIQSOHrBQ0Bx1cDBkxWNrIaB4w0RJUpttKQSSYKVckxCZShigcdKdhMkWQy/69KKvNGyv6MKi4KCCuDwU4CNbf2Bbjv2wBXTRsCRfXrKv7iBEW24kpbV95gVJJTOE4DjXgpfFkpM06hMtBJSsaICOOiTNVDdfRwJmCNGRUT1GW+st+EjaCo8mvNq9JxnpvceP9N5zRtJEGDo4GH2BCRHPUQqB1GxLEp6jDgJmv+OqFNXnQeljIxB7M72KcMAbsmbrJrHdigHpSMokPIYQAkffGU2CYwjBcW5vKFgOKggQ9sxJXjNTCIHD17wiaRYtJQTQ8Q3F4Rx14DB3bEfBcpTBoKi/t5zkBbelSHoid7wQJHMqphCisAwVkl6RSxCDV7U0hXXQwcDQzIYZOigYTrKEYwohcCRJ03iUgaPcU00S3pPMEPb72El4TCUE0K55p2RL0l5PtFBQgmaVwlJCAKnlp3ckPIYQAqdtiHqJlhIcSAcHXiu221AwTcVwWFsqpC3lh/9BrPRpXBI2SwpRWEQ4JChyrQ9T0/BYWnCon1vZkJSQKQTHWXa7Yil4LCUEUClpcI46CJhuvykJjqmEANoxkg+aoYOA0SfLSWgMITjOoz5NfsHIPvoOPSwcL0kmH6ZiWCxJSCWJoMiIaHAW8gsZ0VELCTVcREsGZush4Ph2VzKaz9xECwP1taHaEzjRQkAJmllsQwcD0xC9d4YQAkexFclkpCkEx/lINQXwkWQK4GP1uZJfSN59WwqO9EkUnGSTqylEg0MyDekSBOKxenOx0ZEDcccoJjokMKjDFA4tIJSo9YYsOEifHmZ+c3l+0aoacYDjoIAE+EU0m0+sbOFH5+ZSYCS9wfGZ1fymeoFf7zPRAcNcsxWqghwlwAg3VcHhoSpHAbD9T3yPC2BqaIAh7ne8ujwfzvthSCwhGhx0o+8TBOMRlBO2hAjLhqpUunsjGG6zvC1DgUJRQg45MNonrnRYSIpug1ONEAzVhfAqAgGLkl9yVqACc5sicAyqI9YOLTQU9hDmXAqIpLc/nYtmi3nxjhpoCHS5zKTQSNNr1inYpprkkOgr5hO0EdCo2zEPCkgAmjIylYBAVcWVHvDCQUYFKIBeTcZ94g4SWATcx8ySQaDcSuRVAZbKDMS0a7hChfkdBYC5HVJ3/4uJoTAVQuCgMdD2C960qlrwui0RVcAhhsP6H306hojK0IJB/fR+8bRjipUlL8fA9DqeOiYAY0ATCMn3z5IpZPgUS4UABNXGzZTAQC96Kz6GoxPA2R/im2B7fj5BHF4f6p6KzVKDgemd3riA9QcFIIBc4W5kHAWg9us1Ikxnnzz0Pda/ENX6QclXgQkIOtEJWfb7rauVvomdI5sqhxasoB1CqGbLo4eB06HOkTxaAoHwE9/f8bpm2BkilxgdFv65OQRxeMv+0hU01aBDAoOegfTo4eDgX52DAgLg55arvV5Ax1EcZChQCF41W4sMCv+izfXI4NA1eyaHQEMGKDU00BA0hWNrYaAaxRk8cLuhgYYgKhlLCw3V7S6iIOqEaHAIWqSpGiEYvlVyKRICElUxSxCB1+lcsB17FqVoBEd+gWdyaDRZ1Y1iotIz8RRsph4dHEmxHdWwYOjZ/rkUFKnrSD9IhXl4Bw00BMErONMCQsm2xg6kDhJYBFyrackAUdqyERdsteFdxws7B+WWg6I17LDJAkFkqKDP5+l4xGAUnRhWFDoletHCFIFiVOYt3RcbURbIEnELgvGGjbwPTPGqwaLNxGBY91fLJ95LPQm9OfCpFYgK7ZaDo708yyfVLb4/bcUOs0XDqQYHqxtWFUwVT3pfwCtrxCuik+QThOM146W5qGu6Z0pEQE96VxODNxY+QTwewd3mbjlKNMrim6nCQV+5avjXJ6YU2z9J3B2KHj0g3KfF01Z/+18F//IDnMmSAaK8vOhi7mKqX8jtruT4TkRAkxwS1SWM6IJh+4tW+jDaGDhThwQGPa7w6JHATfe0/XBJhTlXBgJXx6t8h2sjPsjqQ1uWcFKvJBCxG0OwkuRSeZcYDOuBrXm3E1zgmxeHFhkUqjnx6EHh0J1ybFf8gTUbxEvYJ4da73WX/aJVWnJ/tpUtqsY41FBgQ1B5fecGlsqQokAaby8mwhrlKNA+7grWUJVXL4bCusHcxmtooCDueLORBcWRFp8gLR6yhfSLojCHcxd9pSApxrkiMSBFQbpVgaBcvUi1ZRViDdjQQEPg7jCeCuFxsF1nhxYa6o4p+LrrRIcEBjsj7pbDo3FWt4qkXg9SVEiUBWYpogE/sFexxm0rdaqhVxUMVeT4ZqaEZ+tDCN5UYyxB3KfIpQZ8sC4p3CfIp0gD+IuoCvmFjK6Xo0TDfxCCskBU2UEgq50hgsfAVbKJEBRnt2zwHUNThQAEWTATJSCQkiu9M7Za3+hdHS0uAoFTDQzWBxvFPTJThQAE98imSmCgraj5rfiM6M8cNVAQC/43viKY0XOpEYJhH5tbEQy446rZd4FveDEeQ0L0AD2CMLyfW96Kar1sFGv4Gj7+muiQwCzFP+BV3qEFg1o8Xlw+3l0/yopTzNq45SjRULXfLwlHZA3TWhWHL5vYMhQo+Kc40SKDQj8/hx4ZHKYD7JaDozVl3S2/7DDbOKdCNDgkZeUSBOPhTuqNAjh79Dt3VCEAwb5nthIOiIQFhXGz4hesKgRqyWaiQwKDLZqpFgaKpLkxdUhgKBoblx4Y7oFzdSGrqu9A36w4zdsfkH0LVGzFi0gTItMXLHGZvk1xokty0ax23QU1+u4u+IhspoQA2pEceppLoZBkwVcHMfgY0amGBqN6gFM1HFjVKPHc6iNKyGO2PkEMnr7Al6urrw2vuqCTVI/Wq0sIS/a4vboYWDI6GpwFX3HxysmoZnoEcKhBiSGDQVnuq9VGyUr8o1uyJHllnZpgSIIzzpYKAQj2g05xlhkXDRwRB3zBt7LhDyXbo+La2jIUKGevTJRDs4sOuxuXpkDGj1+cclA0XLxyVLDyITHuzTpqQCHqnawQG11HAZw9shCOIjCM5ad3Z9iLXQwNOES1RgSaGwUQ9jqUH/qKpJkSFuhOUlwD5tHDwnUzKXqnER3fVBKLWBDUK0MIjXMuZckZfCvCXAqNdFW1W30eHLNDwi2HRrupGo4JwTiXQiPd8mrdbCiIeiUiIFTcNKcaGuxDu32meXa9EhEQVUkd1dBg3W4w+Jh1poQHUrzm6pWf1Tu+ahb6ZSahm8uiUReY088THTTMslGYfbszJTTQ4XNKVestQSQeZceGoFNzLtuqENX6XH7F7l53qoHBLoRa4W/vnArBcUqx02cgKYBsKTiS3O5kpePHdNWTq+u2Irk/N0EbDH3JX9D319syCJR6RYJykAGjEGAQIaCna+ZSWKRHtv7AtpwG6iiGwCrFrqZommwlMND11XnJq4IAyFZCAF3IUqo71ijxlQRrroeCmzRuRIhuVSxoLUhmaOZqKLDqVZavnPQJOyQRiJfi5aXVu+LXG72uSsLo1kRB1ruSrTqZO7YjgnRp4iAbVjVdrqkIp4IYPCV3yw3Tp61I4KZyCLTrUkqaZtlUwgC11Ypi4ttWQgKdkwGd0wBRdMdsJSTQggxogQd6x9q6Fqw6L1uaD6dDEIHX3RlIwmUqIYDuuCICMpWwQDqQEB2UoYYBk2q3kaVc72nIpnIINB2DjNN8/SwpBFI360n3UZ7JIdCWO75qS6ZIO18eURSmJCzAqRoC7FGQzHxZQhicVj23pRangZrKwdFE2dCM3kwhJM6DEluhA+wuh5i7Z02/uxOx5TdFHIHdPMpPgn85l19xhEcdOIxUXKyr+y4gK8WTdeiB4Sg6hugu4Tsut7xRFN/IiRQcSbFC6Bk/AiRbCoO024gVxVzzRAqMRNUzJemX4lf0kSv5t6KiKAxDBoXCFGEldgqC8e6I1p3uKBaddCAvkk+uJYTAqT+TwBxk4Ci8YQVrGAWOLQVGwm9GQW5CIaq5FBX3gTX67zQ0hhIcSJb7Nclira2EAippWuWJFByJdksO5VacBSsEKwk/Gk5BOB5N93lB0GumWd8mWOKmXeUmXOherpTYUTwuSwiOQzLTtcRPci0bSbEmZsggUPYkczKmDhzmi2hWFB9WSwiOs98+y5ICxxQC4zwud4zis2rqwGF4jdvk2gkg7L823T0ZJJ+ouRoKjIiIAoWoozqRwiHJ/uoJmvlztyIcUDQkzaGpA4cZt+eiSEYRMMbHxc1BGENi6sBhSDaofcRvTtMTwgQkhgwQpbtCCI7QJcdY3yvdr0eeOJoqEQHh+8M+RTCgLMubqunWE9Ab011qGDAaIAKQR0mDctABwvBVq0Szf5ClWO0/CVkS3F4bEqXHRB1IjglDcUuOC+F8UIACqFex4r9IPVOLgDBUCEDwbZVLDQjWbRRcSImoOwcJLAK+YGZSWCTcW2XJAFFK2TTsGXMYelQAAnSRYc7blxfMK2SI4DHw9cQhBsTacb7aLPdVs+G1QHzFbB0SGIKwhl5FYkDcaxZSpQElLUS68iMvOvpSQ72mbj0SuI96CQx1u5hPkBaPuhBnwiS4n6SgK8lODIilx24rXNgtQwMNgXs5bR0ojFQMVRpdepQ5svk0RPAYyCdiC0Fx9F00reLFkivBSvEP9L1rfkko4r7kyw3nmLIaJYAI7fNWNMiqc9RAQ+Aqjq0Dg9Ez4GACnRhue8cbJVbw+mlowCG6iIwohE4BCXDRwhtTUwSPge4auMSQWHRMSCCx5d2XE1FnDxJABNmu4PtTu9QIY1zDeZTAIqCaTVsGgYKnQADgY+NiA+MSRcWlCIl7WKVcNooz+ILnRIcE5pK/sLbsNgjoNQXEfFdMGIlLQUYAcV229QYdxdcniMZbNkw1lHiWIBrv8J+UiDNRBKbAL4FNdEhgsE3YVAsKxfkvrMSsKx0lYAgfb3APZ0iPMkc9DEMDCHErqzVutucoAURY3MK9F7dA06rgqtzr2zZEBW83bBkKlLNnSdDkBjQpIC9KWXNiSEuTApLm4xXQpID8RYmGuiQtTRjkJ1aKQjT77kpqMJalQgByXbI1fDQ6lwIiiYLLa31ByljG41ktOJpXEos4XBaArmFeRQTgeJ/Dzy1D3U3kEoNi1S0r9Q4x1B2AtgwFCnpSyC0HRJOiGGOBwoEMERjGL1fn726fVjoq4NNztxHh6aWUDP7YfII4vO1O3xHPiyf991bxJ1Y3KzSjU5UYlL8FJ38LzO/fhPN7YtD6j29RoFr1DUCfarV+fhvaThqDXPDndv2kuO71cPUkqhf4kVCvIh6w3ugL6OAdFocWDmrXbMYHgYYytDBQutP/tNLniRArc3MpIBJ/fnf7w6KrBaJaX2CxnHIItLOVDvtzg6rutg4CBrmf0dBAQAxlShBeyS2HR8NNMM2UiIBQk05ONQRYN6x4JqhOhhAC50HJtUKsq5giCIyfW67gY6KjBAKhb7oonoyphAaiapoJW+alNsQW0iCCweh6CUiKTgMN8aD4Suh7d6+l2mIGZV5JDOK+QvTERwUEwCO2F2aIYDDGta5rzgvU/JBbDoH2sRLdbTtyhTsu6RJDYH3iquFfz5Ri+z6eIA5sJkeJdn+1JKa7v1oCATecl8iu0EECi4Dr/FgyQBRRFfILHKFLjrHu+N+zqihR49O5FhkUesIzoImGJOJCoujWrMRuTp9LYZDuVX+i8l0pn1m5XMkdlsyhiAF8kHVzx+uardEbxn2CGLwlr3X/huah2mJALCW6g4/IrWa2DAUK3UaziC4hbLcuSwzaa8Ig//vu9lKuWlRYDkMDCNHFynllZcsaqc4Z4lryuRQG6Ws3dY3pek50EDALXrcl4iEdNWAQh6sm9SrrZE9Aoz2SMOYqE5o//OVfv//TD3lEC97ddISHMoUQXLsdr4o7WcBgDqkRBLq73k+s3orPMAxbAsHSNpv37XPX27m0NkhkwEw0nDSG57momNpD3Y6p4bnuNbQgnED/A0FQyucHZu5gyPAf0iLcZbG3x1gZ7kNahHtXb/v4BCACIz2c4oJ1rZzWnDbe6SgzERTPK6svhZqGk8miMSWwLNeiLBdtCXpGtgKaRFbNT1xV1g3W2TBHESxPF9wfXoFnIlgeHcr+whzy5rIMAhQc/yUFovKOClgSPfN6Voo1AuUgQcGi+7o61jYOZ1RBEOm9U8sdW3F9lSdXNbSpcehgqIZLT+93XDFw8zdToSS6V2dtI2m4ei0MXVU3ionqXMqSM2Bp2RoENJf3d8tGQRvpmQoFkWyfgR8wW4KApTuFgULpFOAk4zTAgrMCPkacq+CJPolaPItyvp09H2siBWe7qor7l34mp4u2BIGaaqBoRLWGjliOqREEenh3K+qGV1zdK/ufk4W2DLKoKoL466psYcP8ISncW/d8oXMMY1qEu94U/ccfdEGCAI7JEQyyaq7Zit9KVuhXsa1BKDMVBFFblnUXAvcDexXr7kv88QZE5VSCk727neyLT0cZkmK8RQV0FrMp5SzfFmzc4pzZlu9Yccd2O0SbOldBEHVrZzS9YJ8WnO79493tvfLejZeO5hQi4PLczAIAC13NkkPGu73g0Ck2IzmCoX2enynLYDgmj83nvm+fH9i+lKwAGg2pYz43l+cXraqlQk2SzVXgZXxzeT4ctsP1qV06KKpunxfrcnfZKtZ3iIFkTi0qOmgfaa6CIupOnv7EoUU0Jkcw6BbxXDRbtoPPK85EkDzOyxAycfzXIOTSLLdSNhtRrWenUTORpkIIrqrm6nBjCwjIUsCQIPr7h8QI/2boZtB0YgJyWEap4Ms9tgKc5I4Xgv3E98O+JGgX1CGDZxo2JXXBHooFZzXsCQbkyBix5WbIIJkelHwV1sb+TJpRAMnRzzV1MczAnRGnEJzrgyz4tSgbWOEcU8MJ7l9e+sG6/3BKOpBX7A34bkAd6oAcgnELG8rodAjX6hjoftgjDIKYyyCYjh2aW7n6DG2DHDIkTAQ8OJYHrvRJji78etWoPbRT4tJBUA3BR1BDx5kIgkfxgr+IihfHlVQQkkMHRbVty0bsyv1ZuduA9mdNNeA0i8cLvc3rYsOqipfg75lDBsfUlHU39tRxWlBUMyEUV9fGXfKGiRLaCMxVUEQ3K37BqkIUrAH3cR0yaCY9pqiAU4UTCSzLO9ZsdEALTD2aymCZHpRs5EqWcJxRAUvyuNoRVaCpEpqMogGY6SCoUPOPFLOOnajiqr9eD0ZhKmBItrLh48caUSgzGQwTfuhBN+I4RIhbbYBFc0yPp9BdmKoRrAStEM9V0ESXvG5EBZ68mqugieyIMtkojkAy+QzQqXojOZphwYuu743gGCUwLLX4B0fMQlsCKI6drGr4l9FID6dYsi1fClgTO6aNrfz199+e8w17FbCdWLYCIredzq1cixUrMRP/TiEs14LX+iwpjskQQfAELtu9FPUOU3Jp0hj24UJeaItnCWA4jCtwwd2YuQqC6HDZK7hoLAUESSmbs7oW60rv1ADTzFQQRI4bOi+gXB4tBF0jd+O+Ssy2EJdOrPV+5F+RB2ZsBXgpHC5e+kknhYEcBQg4oBXXEkBwiC1XiIl1Mz2CQt89BO3EHBIj/LugSFwx4FEBMz2c4qPALOEfU8MJ+rB48ksXx2vQh7C4dOBU/313+75pdkPvHXNy1a2EINOH9j8sF7yW5SvsBZpIIM5x6wsklmKt/3zgeGVK6EqZeIz7KPHdJLDyH1Mh9DmVVTO5rSQXwxCBgowhA8AQowAW4OrlxRquAjF6GTSMHd4LyqJVsCjjtBoNkqWGRdMfNfuoJpBqFIICNY0CMzSNgtq2hZDT0MGZ7kcJDMSDkiu9Q6da42qJQyuEVfCd4ivW8OJfQkEMmHpQcgeFGpIDi+ecv0jFP1Z61zSqbGZCUKBSPuNARgEgwMXl2ePZcrq0n8dgakAxlks7YkImQZ8cbu660zob4SgCBdHrArMQaZkchgYYQ5+bf6dYIRA101ZBoTywRv9fOJJBBAUyXUn64RLHNNeD4m2Y7vtxZUcHymQyRaAgpdg9S6ZwzautAkaRNUdijApQBLndYvz75HDzcU4XVwoTHSiO2u/MOBCZEF1qqHVbN3I7nE5b8LWoGzMAfSaJSwwHhno6RwkgxOX93dXXFd9hugCmBhzjRkeJ386PzmSz2EJwoDvWKPEVAdILYAH0NpP7qgRX2ZkQHOhBCnhdHdMj7QmKw9KB4ywQcxRDcpw5QVGYMnCYPvKMFT46m+SgAcVgDRvnlMEYhgYUg+t1wzuJ/vDOhFBAxkZ1AqqpGhRtFqU3E2ZIj7S/VmxNgTHqIHGwM2lTHSyOtcQERNnvwBiK4SayDgJAgFmAhDz7ITnO/Kbq/68aSXHQgeIcDgSBQQ4KUASUO9b4kak1fJbIkIBCjH+DEgzp8TO51wI+YafTAgtAJ13u64ZvMea9AhqhP9Ek1b47aoUHsvXo8Bbcvj4LzdcLogGJig1VWnLV1qg25agARuiDdcEB+vRI+yVvbrELIy4tMJba6u44kscQAYIMEaugCENynPl52zTwKRFLBAeCehqmBg7jPds1YnW2arobMZA8thgQTMfCOqtWG6mQ/cWZEAZIcUaBc5TBwOgFZQoaQweBc74gYDmIYEBYPY8OB0A5ymBgZLGngDnKYGC6BosCxxRCAPXLdgRAlhAGSF/lhFq9t1UQKJd6FyVB0Zg6GBz91SegOcogYaiKx5bCQHWn1Slqs62EQRKslGsKIlMIBTQOyCiYbC38ELxXfSVhe8UXFgEHAcT2mRcUJIYOAuda8LJYcoo3fyKFgZIVCdBRhqYud9fcU4AZOoRkRI/RlqLhe0/RmX1P0JnVMXgpUI4ySBi9dZWG56iEQWq2JQXPUQYBc0P1wt2kvnExIGekbACPoYPBqXYtxStv6iBwbm8IWA4iGBD2zClqsamDweFrXlG0OpYQBkhUnylwjjIImDu2I2A5qqBQ1N9bTvGC20o039AugCcFm6GDKSxetSQ0BxkUDMlo2pDBwXCKWVZTB4MjKdqeowoC5Z5okuGeZoahv4mIgscUwgDtmndKthQN4kQKByVIZjktIQxQ29D0eywhBNADU2yt2G5DwDTVQmJtiZC2pJ+yB7FqWkXxobWVMIVFg0ODItf66noSHksKAfVzKxuKEjJ1EDieu4HyeSwhDFApSXCOMhiYLqAKBY4phAHaMYoviCGDgdEHISloDB0EzqN2vWBUX1mHHBqOlxTD6akWGkvSUUkqKCoiIpyF/EJFdJTCQg2HsanAbDkMHN/uSkbymZtIoaC+NkT7ZCZSGChBMi9ryKBgGpr3ztDB4OgAXhQ4hg4C5yPRmPsjzZj7Y/W5kl8o3n1bCYH0SRScYuOXqQPFYfVG32iwxp0Mn8hAYYSOGAre/zwkB5of7nOE2h8EsAC/iGbziZUteP/zXAmOdM1WmGdyVIAj3FQFBx86HtPD7X/ie1QgMkMCDnG/49Xhck8EiaUDx8GDoBGMazsRGIYKHOUTV93ddPh21CkGBStKfslZgTk5aWpAMY6XiYIpjhJ4CP8NCmCoqSQGEhOw5iAABeiW5VH196AARPiJ7/HhciwRIMitXKGibozpgfb9mmm10mFeOK40HFIoKH1eFceiFTAIx6tK8QUz0UJiDTeBYokGGSQM+Gz0QQAD8HPLp5f2ASgOKiQo+OpiS2GgplHMATC9BAqiu54VB9FJ4CG62QcCkk6HCAdfX6ZiYLCuiXqQCoFzkIBCyBYZQO6oAEVoCSK2WCL49eUPVuz9PBSdFlgUrvuQ8817BQTCeJU5BmLUAGLcv7zo8Ul3DFIH5ys5uooEJOGQ/W3K/Uk3BJgpQwNDF8YzKgwEftDX0uuhOj58o0MKDNVs4EXVpwZb7/Wk7x1vNrIgmHfw6eHwhjmejzt9WyYF31wQCni8FBqMdJTAQ6Difkx18Dh3TIG7YhMZAhjO6lZRPKdBCY/0gb2KNWp6wCmG74sYso9iK6o1AV8vRMDW75y7qcYtdKgGwSUGfbATrV9EVcgvVGS9GhRNx+XkuABjpgYYY9fd+IbkMESgIIfrF26qulEtavrfKQYH6/c9okrIFIGDbEXNF/xvwyYVJNBcDAimL6p/vLt+lBUn6LC41RBorGFaqOIlBumoQoKCLqKJFAKqKevDHeMYIlMHjoOahB7TI+2xDwcd+LG/+f1wHT0CxZRBwVBUEVMGDvPAubqQVdU3XDcrTvLMAqqUqOSUOMCFvuxuxcUrfK7JVoGj4KdlLREoCGY/CGYnyIJvZcPHa8rABJYKGAW1BQS3/2O8chzu3qcH2i8/vTtD7t8zJBAQ1Roec3ZMj7HXN9Rhd8LOhNBAQ4h4KixLDg3XR9OXCntQzq+IRizw9crQweOcS1lyBh7nzZXwSFdVu+UKNQXkVsOj6ZDma/iXeq6ER7rl1brZEBD1QlRAmN0JTjE82Id2+0zy7HohKiCikjqK4cEeFK+5euVn9U7f2KJfHgJChyoeFXMtzkQGD9PfKkOA0wvhgQ6fL6JKZulh8Qj7ERR9iAuhVuijR1MdBE4pdnodkwDIVkIg6dv5Kn2rxHBr0XVbURz+S5CGQ1/yF+zhe1sFg1KvKFAOKnAUPAYBQil26GjUMyE40PXVeYmP7TUTwgBdyFKq/j49Cqy5HA5u8s7SILpF0aC1oBhNz8VwYNWrLF855RN2KGIQL8XLS1vzW7HeNPjwlgFJHGS9K9mq08GHoAtIIiEbVjVdtokIp3ooPCV3yw0r0DEG3GoYtOtSosOezYRQQG21IpiktIWwQOdUQOdEQASdDFsIC4SNWzwTwgC9Y21dC1adly3Jh9Ohh8GjiI47E8IA3XFFA2QKoYH0FmsyKEMMBSbVbiNLucZeJOBWw6DpPczowOZzJQxSt4WL7KM8U8OgLXd81ZZMUXa+PJo4TElXgFMxDNijoJjPsXRQOK16bkutTgI1VUOgdQdVCKBMHQSOVFysK5KArh45OBxBpwbfnXnH5ZY36Iti5koIJMUKfU03AZKthELabcSKYPZvogRHIupV0fSp0CuH2BXDW1ERFIahgkNhiq4SO/XgeHc0KwF3JMsA+ugJxefC0sHg1NgIbbYKAoU3rMDfBTdXgiOhF72xi900NZek4j6wRv+dhMYQQgDJcr+mWD6zhXBAJUmrPFFCIJHuRSDdg7BghWAl3UfDqYfAI+k+Lyh6zSQrjhSLjiShxqc6CByKyRD0NX1ao5EEyyaGCgYFH9F7IoOA+SKaFcH3y9JB4Oy3z+hA2VMdOM4jQSj4iQwChn9tulgIFE3xXAwHRkNEgkLTIZsoIZFkHzGCZI7TLYgAJIhIPZFBwIwb8DAkowYc4yPFvp2PBHt2PglOsF5tqEBRusgsYIQuNcr6Xuk+I27T/FQICsRXrRLN/kGWYrX/JGSJjysV0gRjIm+zPwiAAdSrWPFfpJ4GgUMYIlCQbqPGQkr44zkoQBG6cHvn7csLoigMDSjGjvPVZrmvmg2vBTiS1ESGBgZ/yNYrSARIyUaH9VHP1WCiEfn0aPA+SUGG1mlBsXSbv0KdvjUkwBBSMQxAlxxnjqvGhgYYY1/y5YZzBMSoAEVon7cCF9HVkABC6H481P0RHilcJ73jjRIrcPNvSCAgUEFbDwJYgAv4VRmmBhRDbHnXnsCfxUEBiiDbFXiRtEuMMUa9g0cFKAI6IgQ6HMRhsIoLpzyRoYG55C+sLbt5IiXLEt5zjelicPFRPWkiej4qzn9hJWKoc1QAIny8QZXDkBxqvrgFGy9ugaafWCkK0ey74HBQe0sECqKv0xqjovzcslI04JicLi0wVt2yUk//YAIr2SpAlF/487vbH6huUHGrYdDOVo145TfVC3j5dSKDgcFNFBgSGIihUFFtykwIA3St2JY/44vG0MHgdCEX4Z9sUwOD0V0rgYLoFDAI/XtI8GRMITwQUTND2costSOykAYNFMaGFViKTgIP8aD4Sugba651zGDck3IqohD31QpHtK9WGAA9xkQEsDY1UBhjB/6a8wITPs6thkH7WIkuYAfyzi2XFgbrE1cN/3qmFNv3O/NRYDM1KNqGIyPDHhWgCKgI2aiI2L8o0Wgr3FDbViFBIRtoR2QpYfUfiUF7SSDkf9/dXspVi1kpNySgEN2Wka87hbvLbSKDgVnwui3hJXKUyIL4q4FxIatalvxWrq3Icl1aJ4aVwDb9/od/s5TlZ8FnayohZSNBSPnm+3+rUgT170I6niVwv6CVIKT8vn2+YLu6NWMtdrH6X9jKqXxMYMv+8Kc/G7I/8X136fNQRjejYqKJL3nI8oKtNokdnO6n02poF0qa0Pv2OSBT9M1R1mKdnSYgXvfvdJa4nSYkvmFKx16841up9nkerqQBqx1TNT/rJS5k9SKMuHAvQ3Arl888nW3y5x//31+t9uP/Y1/q7waNb373zWojykLx6pt//9+Hn6y5MWmzlUWrs/hkeD+tuZzUQbeSsO8L92p1v0tS/I9Do/ovXaP6n8nq8+Y4xe8dlxddszxrbZJtRolQ+/OOyxed5pzV7sYhx+2gFGonxl750ERO6xzE2ikZYjhrbjmrm3vzVuxGa6V7HiUmRn/4y79+/yfzDbv6uirbAu40pHfaJHUg7reiAbvrxHDrB6YawUqw+5AeASDMQW6uu1h9hlsv+EqqAmzeJ8+1N1vcsy37h6wmL8cd23X7LnLeuKBQ6D275CVv+Ngy1H0PtM6xdiuEPN9x+aDkq7AmxuJGRrKIekcyuX0kSf+YMMWhu0cd4tAlTHG433Ufd4jHkDTYzou6GX8OePCO5CE3SLVOqcEPpa/X7BHtEkQVx3gG2cpjwqBDf8oS5GEnDbks2SvqzXalD/pxplab8/2FlKoQFWt4DajAfpUUbz0FO/w8t8Pkkch0/UU0m3PB6vHgCJJgKgeg6f98pjjT4/1GMVFl1oMM3TjftVTLdr3mdSc0nTVJpXGphLzrIQ/dK3pTAOqlWyHYh3V9lM9Zs9p4vlHB/keiWqyvmygzXERe08KNqiDIWFclHzCp65IGN4pgcEYNFMCsZsM53FU8D0dv9WlJaHolEIzZUyEoH4dcDOtctlUhqvW5/JrobKSIiRtfykRxI0VMXE9RTCYAgtKH3ycI57wxqS/HoY+dOq47JkiVHrpgmfpDqpjJLWtEkz4ZMf48KtuFEVpYl0qEhQ8J4tLQtwvwIt3Kap1VPuPvY8IfrjJL/pggQTqT2kgRE1/+ksl9TJAgncltpIiKzzuVqSbzlGlmrj5jnqlTIaHZcC0M+JuL2VqAOWW0G6ZA6t+X4+aJuv8s/d75sZrPtHgnww/ST6P00yD9FJR+s9l5MBBsQr/rr9p9wgu53bKquG+b5KkeQugY0GzwkTTr6VDNmCt72+y5596g2ZpfQPnr5WxkQWTupuHbX/FJHewRWXhomxN6tXw0NBn8FR/VlIImQ8NtsFdV8pTlG+bLhKHK3q/ZWjhAaLK1bFcrXidOdb1hrgYOWKb6q9D+6XnobWHIY77zJvkJ4acAsGyM8UPPOVOp63WEmbDtYVkY36dR65+eiSkARR/gQiaMyt6sC6DdyRe+50MV74YacMYyBjJ6G469QaqrLmw1Gaw6hy/mT8n2Q1mi6RujboDYR4dvJxK93Y/f/+XHP/7hR3MfS6UvNdPd3snauKN+OqwmyeOj+qoA+RwSpjhMO6jpFs7O5OBhVquSf/3u9fucJ1Pyr0+v37/JuNvlAxtO37jrna/NTTO2REOLb+bvvNUSyeK3SCVzVGE6Jl8199L04Ua6Jbq34DHkU4m6OERviGTqpzLNcGItQhKJG2LWIrnr3AUrS/uwGAnT3CAHbz6eIoHyjI6CKJB2PPkVCzXzWXsN0+zxuw7BX+mB6e0/04PRm36nDY+0J+j+nHkm9F1W/k+XecSn4DvFV/qO9G/mvYQfsr/ePyR9q71VIsvl27mMr6foqBR5VqZAyGRaLfJdDgo+G3wX64dfq4vlMo50sf5K90r8EHwlJoOvneKFSBrEGL98ky6yqQ97bl1RVOaue4DRKGI7/uj/CLhZuiPGV1vRNNFFwgyebyey1ruT+J0iLaXpqcrscrpsd2V0hJ7F8u1BMrV0fjehmS2ck0EdlfPZFpwV+v0nxTJE4URvUV5z7Xy+6Tl5AqyDZD7NeGSclMcQzSd6YHX9uFGyXRsBFJ2Tg8lQhuRs2i8vhB8V0UEQxvMgdglD5PTyETvgwschH8mbrPOLyLf7Oqt+0/NNlHPwrNnxgu0arj5x1R9GtrfQ8qrdZgG65Gy0tBp21jRKPLdm/L98llEDBNCudcgIXtyxSrzwuqnHKBJafRrWKJ8tQR6G3ciPu4LhCu4gAkE4L+Xqs1ZCEBw0fnWAaV8uEUEWe31aFUMwSEDsL3jJn/XNE3oCZ111p3mWUjXnewSQXxSE2N9T1B1JFy/CHA/kk021Tg4IVosGmTtZcNWtIZ6t14qvWcNxDzIgS4KJr2puRRBcWzdyK/7RyVxzZgdeyydzyEGwLlnDat7o/0F/S2ZaCCB0B8DSORkQ2PtnSQyLJvZeCByVIYnAQ37pDJWTgAA+Kt7wVXPLnnlZD6/lB7ZFIbkVQXBC9XcuTSJI5zNZQjCUeley/S2r1i1BbZ6rgaCGru/xe0nTLgZkiTAphwQp8jTYd8in7hTEoOl5rbPJtWZgrKMYFml47Tt9IjBTEotH9BhHKQwOtvk3ZCAYV1uppZEtvqECgqiKnRQVvudiC8FQ1qL6/6s7+964cSxff5XBzL93sNPp3L67i8UCjuN0PG3HbpeTvovdQSBLdJljlVRNqRJXA/e7X5AqVemFpFTn/I6d/DGY6R7Xcx5RhxRF8YVVFA5AC10fXhH/ALXkYShdkZmyB8g3oEDrM71LUrUfI+MkbB9EVWmWPbLfHYcoks6hleaYHCgkiXz71e7LfF63L8HchiVA5MjBnBgqtiFgdqz3DIrAz+4oAUb0BkAPzczTA4Si4CbGsFv4DoUi8ffyjp2Je8aLC9Cac6zCK4rCL0X5tYDk5IBEkXGv7s1bPGzoNMjkC7IffD4cTavIVonhfkHpYogaiCEK7tiEgAatel/oL6pQVbVot41mVnUvjyJ2qTKdnBRJvq109ffy7l2i843hFliEipBkF58fSFIrM0A/qkMhSzBr/J5BEbgyWhW165WelsYMD7k/WsbLI4m5KbnsDk4XQ9G4TpZuM+3MsyLzaJkxjKX0W2IKd5IWRqqDo2mZJM9VDhl5GMO4SuyaPoYRleqr++Yo9ttkyaz6HhpJSpmqLNzxu7pYsntEPhxJS2s31qJVte9fXSbVI3MANoaFaQooMvW4w149DknElPa0LchUqRGLIcRvGbochghqMqAPR9RyufdFnf2+0WvAB4cAkSK3O8v3nc5r1iBQj0MRuVFJxeoyNQBa6Nz1tKoHvWbemSGKorNQS0COdCg0iXz3Js6tRgMSTaaoNaRMOhySiOsiXPKHF/ogmkquOV1D93tSYLdc4tqUdo+i0tj+3ErVytyWzTZuHKcJNECXn84+HklsW9TJE2iAZgyjKN0mZqlqle3rCaTHE6HSJKtH9l08QEgKKn0odJrkpxvuV7YhiqZjVroo83K5hbw1enk0sSduk90iXjg8bdCz/TUrU1sGSaB80uluOjK3JAYois7HojkaQmX2Mze7x+fDEbWaHffuN7mbDFBVZapdPw7hGGcjhN3TUcK2D4ao6ioRLF4fnqRdKX5X4QChKHzSmT0gIC/NTVIsOVV3QCLLID489EEkFbsRUffMguMdGgJpgdqyd5YzYRmrI9DWrYKCD59ls8O7DQFPzk/L4osy9fUh0sztCCfcJvEjbY/ceWZ7mfdbKbsIf5aeXQG7Nkqs9GIBYoKnueYmV4Og5ZbdDMeoB1VkCJEBjKY03MWCINIgaOH9m40QJLqgb0iF2gq9r+v1bkdrlkuHwxEZbtxGNvFt1TZX5bxIy5UulqP99gg2AxZVqP7pNVOj/uk1cXuHMs+3gGakwyGKHPBzjr+eGvPvw2KN+XhbGULAFkK79hv12K6yBtyKEY0mtSjTR8UzaRDE8IO9ayjhHYK4DYt6qu0OYoD70UcxdoXJk1ohfPosmtB4Mx+CSQuhKYz38SIo7HdZefUtSPxIfNn4bXFqlOtsJzl745k+bbTZTDfuXWnq90mR5XO28J+I2mHR9t9xhIVe9u4GQ6ZBfUsuw25gz+awweef5om5DuZlsgYKtkhqoVVlvqlVu40+X6zPI1o12xyxZRoMy+Hqiz1YQH0FubQ4ltNuxsduVf/wTE+Wnw+NcD37kuQblxGXqjY6xeoO6Qhj8I0fUFmGFfSWV7y7nLkGyJ7/qQplQBuxBbBEx6UajFATpXYcskUxPh6TbFIEDsx8YZvo4zLmY6f6/6H2ex80Z7jNPE9hQi+MRrrOPf2OIss5y25AHA1NQTy9A1Vkw7mHtx2pyDmKbQc7e1qrolIC6ekhA02hyelDI1yxqdmHYvygiTmgsgzP3wqkZB+K8YMm4oDKNNzPwOc/EMdIphu2aux5bCtohTgAiV7rda5V1pkdxhYbEYlmxiTbN5v7e2U+IV4p+jiG04V+5N+9FkT0qCrFT2wLIcd303GUnZ5TQZvRIBloCmpQw2iEK6r58kExfqCGzEtlGrrJgzAzRyMabTJdzj95dUKoC6P71OerWefJTcs0JKrJcLtxO3Bhj1jlm4XIRNOv1eFDQzNXqOY/Jn1Qmp87m7bpNr21n/mToj4sGsA1zTPDSF0DptGeGwd+FTb9blS1ySUv4RAE7g96HE1HEDDHPKhmhGC7tyubheqtD492htdTLx9mLVIvx3CYL74eDshAU3i9G6LZrr+o7fWDSSqxGucPgPeG17pABKC5SM3z4YHO+No3YkNt4TVwDGf77peQClVBLx9uDa+A/gA4b5Hq56HjjPGVb4hGusKr3ojNt3ULzKWq3QiO9cVXuDEdZCxT1QZokKtAJetyYZb46tUDsz1HGyQIVbNoHLGrgFe+eCD8dYhUyUgU/BXgK2oohIQ7vPoGYzDs7e1z21FCPPc0opFKTMYWsRBi/DxJH9+Z3nkmRIk9iWpS3l2bcq1MvX2TsKd0DnBkp/QRYJI+vnR86mxE9+M9EqKy/7dEozLbXqhiWT+cJnm6yZMaUJM9TKrdpsh0sXxTPvGl9qjYMhiZiOR8kbF59U3Z/Ei0cfNU2CKOwl6K82aj8wy0eqrLohbNgXBilm6aKnvymRfK9wPNFfcgAW6YHvyIyDC71FmWq6+J4T89+jii07ZW1aLcGMDT7ICKNdD746y58fYg2pXvf/5W1Ylmrwwc4JhOnaO+YWIdJtXO1Ppep72dm6lSexTR5UGlj9WGPY2m5fAsTsuiqs0mBfS9PEiqm84zSI/5QCKa5O15pcPleOynRgTNdUXNZxsTWWZbiZVQMTbUFvNAjsIxvqCBpwAW5YgZYApxqZb9TTGoTtqz4dtxDm/VfbLJ+R3nPu3bM/oWS4n6iirqRHxRFXV6zXFyDXR7bPF+03GQYgD+vfnyaseLGLPqzosYs2rWixiT611ZKbcDAV+vJXFNzgsNtLE0olGZu6Fi0IjQAEd1cl1DvovDkB3WicEvIwtxYZag3noIzPe8tJ8ckX4OyPdCvT2MkQg30FuDh8mygyxn67J4Ns1Iplv7hRQbYOmO3X2CMdv++KkYwxtVlfkXlcmY9ulU46JQaa2y9+VKLVRd62IJeIZ5oEC/d6UZHqUHFN3TWcZ2cytUj2AAJHvViS6qziGL2MdyFI92Rj2k43yYNezRGCIDTVEPyiCa7op4AWkw0W91zZ/Yk0eNG1vf71sCCu4hs8rktndUEEvtdnRU0HyX9bZ/BCe2eYnRwcaoxiWKRznDmpYAGOeJalhCZKrpF2UqO/nLHivNt+vSiEZGJbXabUcJrUQhMM4TVHWCZIApqsJ4mBA7UDXxQQF+Em37BB9uLZCkwBbeg5VIWUgr7wUKJDCmpXdEO8Da9LnwOexnQ22RuRuAY3yhOTvCohyRuTrmciz3e46jk9QD/l48yV81PUBkRfKRvx9TSKlCq3uf+W3bgUoP2RANoN+6H7ME2+lw+xmHAk1RNIaIPbTSx4Ng/bFVLYRHO0PTO8jnWLezOfDZ7SMDTZGZ7EUjXKFZO4Bi/JAZOqTyDOvDMos/JFrfWAQBc2y+RkIg3cH564VjfbH57KdzjO08hQv9RRWqqhaqkhn0mggi449M8Kko4CuApnmYL2MNm14xMw78KpBVNhKA5Z1vvz4olQtUVQ8ZaAqtlD40whVb/fpQjB80RQdUjqGdg53nKrevvvjcDNHBxsgcDeJRztBc9YBxnsic9ZFZps2XdoGUHYNxntBE9ZABptj07DEhdtCk7EMBfmJfoeFzjMJUgSRFf4WWmWkURiNdBRIY+BV6URuVrK5NmaqqKgUGTSIB8N7IVI5FAJpDk9nPhtoi0zkA5/h+rCRG/oZUkCEyXUdYriM0MTtAvhcyBbtEotmmqsvVRXKn+LsYHVAcF/2Hm9P9TiX1xijQmp8gGWran5Uuqu4LRbsW+46zUOnGbvOEUR4T6WaVquXOQZsMwPI+fbDnurPHKfs0ltFbVaVGrxFrMMZEntnoY697UjXDGqicnBOHdRXDDygnRVHWCWT52nQEqHlbTlLeez7UuvlnW3mFtA8BoN4yuT4RhXUF73Re8zc77cFYPjIliCwx1y/CN8BDLN9xUSewan8AsrxQ2+kNcCyn3YboGvaAPwBZXpj9WHswng8wnTiZpFLbW2aLNBiqQ65EVqQFwThPzMt+mAwwBb3y+5gQO8yLvxcK8BP4FjDFh1sLJCnuW4APK5GyiG8BfqBAAkO+BTREmRVpMTbUFpm70BVpQyQ0Z0Er0sYwZK6iVqQ1NIGVXkEwzhOZnrh1Xj0eNDERa6cGJGRKQtYm7VCiK3/mxBCxhyasxMqfEBqbxtiVP2EoNLnBK38aqsTKnzAZaIrMZODKnz4QmrWQlT9DFDJDMSt/Wpbcyp/pCALm2HyFr/zxg8H5C1z5E0Ji8xm58qdhwrcsDmBRjsi0Re1X3KFBE5S/K3CPg0xFwJ7AO5DAGpYwGWgKTUTcGpY+EJuOiDUsQxQ0KSFrWBrWhXrSqcQglQeM80QmpY8MMMUXJaoMBQqPX2pSa6nidLAxsmTBa6nGUGibCVtL5cMh207cWqodD7+WKgjGeUITFbaWqse7LnOdbsXKdYxHOwuUsYcPs8Y2Bx4y0BTaIPjQAFeJ8sSVpEgZAktP7Ps/ei1ghCrQAKC//4usBYygka4CCQz8/m/PcbGz1aQeY2E+3BqZx5EAOG9oHnvRSFdkHvvZHFvBNa2TAfDeyFTGr2n1cqHJjFzTGiAi0xm6prVB3iqz0kWZl0uBRjkAx/oiczhEBxlDc3fM5Vii1zb7qSBD5C0HrW0+wKA3mb22uYtBNkX8tc3Nspg7sZmhMTrYGJWPUTzKGZafATDOE5WvITLPVGSmaBD9PblS9zr3I7GVCzm79WVsQaULbgYwM3KfzxBWithGCjRz+Dkd2SU5mE+augXzfy/vRFqrOcFkrwfcQsyKJnRF6Bo6EUfsKsD1YyoQ9jrQ721zoghdgWzVAL3nheDClYH9HhjGyqY/6j3xbbnSRVLUF0mx3CRLtT9WWOxRMS+e+FWha8XMgHLXBa8pk6EkrwVde6Zj8a5GZqVNmA21xdYF6HqbPhKc46A1N0MYNndR625aWq3tfivS7fxUHLGrQOfyRCD8dcBzPBhCwh2d++EYAHuxFWjTMUTsBXIfvQ7Nj5bIedxatBBUINeB69F21C92x0Hx1j4aRegKwNkeD4O+BnTGhwLgvcFZH4zAM5dZCRdmQ22xmQ1dD9dHntf7zZjlitkbRMZfpuD9UcBXAG5QQny4NbY5CQbAeAsVMrRspYoUU5K/qO31g0kq+TfQ6UiCV4JtSGaEkrgWcLZHg8j4Y2tCPArvCq61fq6hmRmhJK8FWzXmxBK5GnDliEcRugJs9ZgIw7yG3toZ8B4rkyEk3MH1IBIDao/Oey8dbAzOcz8e4iyZ2PiMFk1lgRwWSl5o1kqlKyhPJVccTkUQMMdmrsC6Qx8YnMXQtYd+JDajsesPG+ZCFbW2E2yke9+TgeSuA5vs05EErgSc+rEYIvbYihANwvSXXJE7GULCHZz9AutyvWR0xkPX5gaY4CzHrs9toLeJWapaZc/W7s8OKH9d2JowP6LglYFryZxYoleDrUGzgjGvRz3VtyYpqlxyoUk8itAVgKtLPAz6GtAVIxQA7w2uAsEITPNyrVPxIft4FKErAOd9PAz6GtB5HwqA9wbnfTACz/xTqeFbnYfIQFNsTnvQCFeB4oSVo0QBMktOGZ3k+g/1PimyHHHc5ZCIMjsxS9AB02E0yvXKnawrYLoDwzxR+ejlsi0vdZbl6mtiEA36GEr1s0+D001Vlyt3WjG4HY/Rwcao2x/Fo5xhfZIAGOeJ6oOEyBzTdiWs7dHj8zZEBxsj8zaIRzlD89YDxnki89ZH5pn216BK5G44goA5NocjIZDu4Fz2wrG+2Jz20znG7ZwvfD77yEBTZP560QhXaL4OoBg/ZH4OqRxDgbPYvFiUIzIdcWex7WnQREScxdbhIFMQchabBR1mi+OT0M+G2iLTMQDH+EITc4RFOSJTdMzlWEqNAGDf/cXe+sHv+w3ufJUs1ZskfVyaclNkSNMBGuT6rjRKyPWABrlem3KtjO0mwF0PaLjrQtW1LpaSzm0IkPuvmyTX9RYuvOPyLaEtP2wkTWIMDTd61pAkkhGRfZdltlu3K/VUikUQMEc+qaIhkO7QehWAY32RdS1E5xjb8yBXoNrWsEY245iH5Xj4ahSAs8pohERWnhAdZAytMmMuzBJZUTxglqcp3SSVL+rs941eu81O8XkbDyLjD83jiSjgK8DmdZAPt4bmeTgAx3s/GRef5V400hWZ0X42xBaavUMqyBCZqSMsy3Fb1MmTQHKOuDBLaFqOwXxPbEJ2kQg3aCr2mBy70eIFfEpGQ0i4IxM1HgNqD03fEB1sjEzqIJ7lLDKPCTl/SWjeEnS+koW903mtDOg1uwPkemGrDWbeFH6+FGqe1G35pNPTsqhlmvoAHWwMrSchPMoZm59jMM4Tmq8eMsdUZQu9LJJ6g5jrPQByvHRZNO0YxmqPIzrpKqmqMtVJrfAzdGJwrC+ogkfpIGNU9Q5wYZagyh0C8z0zy0P6OSDZqzb6blO3BwcCvPpAkNdZURv0J4gZMUTsYZV+OgjWH9cExPBoZ1iDEOUTrXerA9h2O863YUE+dbR7Oh1KxsEAPvvDIk/L4l4voXoDNtL27+UdqN8Wx4OdgbOzpkNg3JVp/w3cuYNGucokRctFWbqHsG1wZSrdKADKu3n6SooPI6DM5Spel42yXWxWq8TwJxeGwDzPn025WaPcHIzn42YioXwcjOlTNo0xTGnH41ldqjrJkjpBWbW8b9OK21e7UUlmD3VDtnJdJs/Ogi90VZ/XaoWy6zKpds36ydMyLwGP4A6M59Ou50QptTyM1X7gENilnYqAN0c+X+dEIV7BZp2rJ9TuLV0YzedsVSIeFDsM0aFI7ZxetkODITuYrSvIXxS719ODUX2aU4X5Kg0nYpGptVGpHe780wwhTAPRp/GKyL1pYJ6THiTPzU0GV4iv3mPit2tG7fo8i9urb9jtx2/Y7TXTDfZ4HhN5Zp9eoYw+kXNrfCwTqp0NkXGmyDsbozOMAU/0mrwksvntyVLdJAX/FaBPiy0zav4SMjTRQXHK4CIpslViHlE6DW26DFCv+H3adNzdYeG4bxsBLOeeHA40PymKsk4gLyYRNMYV9kEgCMZ47jJV87/thskg0y9JvnG36FLVRqfwkh0FwHgDn5MjKsYQ/KllAo9xxraYYy7Wsvn3LiRqTPKIUJhrQX/YmuJjrMF9Py8ZYwr6oBXAchwdWaj59bPZtthahqhN7crP/asDW21EJJoZU5RnT6laQ6x6NLJRaXC3sEcjGg0SlO004HGtblS1yfk9uAGPagWYT+YgjPjnhcY4WBDDw6adKgDdvy4M4HN1Z490hVo1SIQb5tuTj8mwa5buQaQaFMNFYhwuwEVZAvthETbR9mmtikqdbowNxO+B9XEsJ1xvYcDjWYFmDQ9wLKd3WuXsvQe7LJaNm7K1y0tUQvWYLDvLBUnZf6K61Caxi9ROHxL3P4BdvjCa5Qqphy2JaLJVb7UBtQkdFtnmaq0QIhZDdljavwI8WfYkmglidRd9QZf95Um9W6nCLos+zfO9fBD5raoTzf6McyDRywD2yOzB6D6XSZ0+IFwciO5xlab5JlPsZ2SXRbexA1QG4tKQ6CYLlZj0AbWh6ZhINFN1+vC+rtfY49QCWKKjzvntnc6p7Z3O262Lt28S9nD0AEd3WpQbA3gO7EnRllcXyJMLBzhqGRQiZxaGuBBLzMJcL5Tnt1sZC24FYnCIL+7YwiCY6Jlvvz4olWNGTfo0ntF5vds1GKs2wIIcccM5ETTP1W7DnMO/WsXpPGN8oaLKEvRtcoCjOf2sCsBc/IZCnQf8sx1TTnLsXvheKNWvXKmaf8NazrdhQb9bYA/iLNqfVX2SJevaLnDDbWbip4IMMf2iAJbrCNqUZATke2E2HhkTuWaflKncpEyJ9PPAsb7oZPTRQcbw1OxzYZboRB2AyZ6nKld3Rtfb8+K+BKdrkA21hSVrGI7xxaWqD4tyhCWql8u37E15l0nXQAgJd3zyhmJA7QVSeUwHG+MT24OnOzfbmx6ONEInd4wPt8aldTQAzhuY0AE03BU1MX9GCKQ7rhqG2GTbdnrMSZHk20pDd8KcwKOdYRUwyodZ46pfgAw0hSVwCM12tfu777+nCyVxMIaIPTydw0Gw/vjE9uHRzvAU9/LJ1rsZcULNdIQONoZldQyPcsZlsh+M84Rlb4BMNu3NcwJnbZANtYVlbBiO8cVlqw+LcoRlqpfLsrzQX1Shqmqhqmq/Tgnd1M4LJHcd0HSeEUngSrCJHo0hYg+tAvEgLP9mqqFA/o/BOE9ofnvIAFNs/vaYEDtofvahZD83cUGqIxGGY31huRmhg4xxOerlYi2Bw4JRPswaVsP8YLqnKjJdLIXeMiN0sDGuokXwKGdgVfOCcZ64tPWTUaa7KYCy6esJIuMvlcy+KOArEEvtPh9uLZXogwAM7yed4rtBYyrIEJjCYyzXEVx8kHJDFxizpC5VppM2if9e3oETL4ZHO8NKNsqHWeNa0AAZaAprNUNosqvdyDnPVd5sAAfN3RAa6QrL2SAbYovLVQ8VZAjLUR+W7qhMVRa3JkkfdbFEZ2gQjvXFZWmYDjIGZqqPC7PEZasXTPZcqGVvc0BwxsbwaGdY1kb5MGtc5gbIQFNY9obQdNe1UunDYlvUD6rS1W1SPaJTOB5BwByXyBMhkO6CxQ0vZ8kCZpbsrTIrXZR5uUQPegXIQFNYsYbQCFdcszuGYvxgja2HyjCUm5WJn40pOgtTYPal0KxL6GxLqVmWyNmVptwU2a3Z1A+XSaHvEaU4RtLcdrunnD2pdNMkTuH+H6ZfAMtyBG0fg9gv5n1SsTdFs4xI9HnHBlrIaVlUtdmkNf9M1gGOr1dW9Xt3KC7wFEEvlHgf96gbVZX5F5WhFftcoiV8IzXUHmqWc6mqCnD2bgdFdwE9ozoo6q4dDQLzNOqyyD6bVVJclOX6JK31F7e0C9PzCIK/F092iYKajD7uW3Ril5QdysZt8hrAfg+O1JI8z1RR6/ttu1oasNmWBxnbs7H98/YsSVT4ljc7Nns/pD5tTtx3plydlnmO2aDXT532QF05dRf29teobfSHPIwVZEN9L5Tnd23KLxqwA9yQR7RaAXpuDhLNW1gUcrtpf/zrJskRtafDotqsS+PW2OfIIasAFuWI6YaFuGxLUNd/TASYYV4DPEiOm9CQfhSO9UVmJHZsf8SEZidqhN9DQ2YqbJz/vEjLlS6WbtTCjarwu51jJNUtU092GRJ0LYOfCjIEVRs/luuIqihDIN8LVDVGRKqZrjVy9/wREOQF20E/TAaZgsZWQ1yUJaj2erFcR9zG+T4m1Q568DPkPHBZJ/JbUlHVScE//aPlUC3qn17zFeqfXtPLoVZmbZpvwCd5DpDp8aLvyt2/dff1IimWG8QLdJA82+eqfoD0vUbIuMGX8lG92xSYUbcejZgf63RRpo9ut7xCpfXVGvB08zCJdvYoijv+2UYth2fRHIzB/zI95DGsUDZsixtVbwzo9Gsfk2f3X3awEyvXQdLc/l7eNQfssevbgUQz+UVtrx9Mwn8h2INibSA+GvXZuAcInOIcYyNtcSfVTPHJ1p+SfIO42Y4TzSxd2CnCtvO4qI1K2KfXjoDEMmgwn3SmSqhYh4gyW9SJqRfKfsHjP1om8ETnovxaYI4e6qBoLm5HEa6FgzDin+Q6Ydf+A4lhcprUalnyj/fpwRg+sANo+zSEEeqoKj+Valhkq8Q88p0aDtkC8o4YfCOcZ9HsRYHLoAGPZwWarjDAsZwgkxS6LJYNpq/fg7F8QMf29WlUI7fJBV/FYVgOuLlpIyDL662qUqPXmHo/JBLNdLE7j51/bniXFetP2787r9XKVUf+LerR6KVgGXbJyBol5GBUn2pw3hb00+kEHu2M+RwzxYdZgz6vhslAU8wH1wia7SqVuNiMFUtVcI4KJCcsKyXSEZCHh3nD8FQMoJGuuIQMsSG2wLQcU0GGuOT0YOmOdhSwUvVZURuNnSEVp4ONcYkawaOcgenqBeM8cUnrJ7NNm8PMhdJ2DMf6wpPWQwcZ41O2x4VZwhO2D2Z7SqUqNkvFEhScmwJpCctIiWRE5OFuVPTU/rm+12my+ySKz8xZkQSvBJi980JJXAsyw6eCyPgDa8FkFNwVKNMMR0t0iueFkrwWuaoRiiVyNYKVYxxF6ArkqocnDPIanqFeiNWH56gHcvkvm/cS+S6c55D8XukiKfYzrruzxQQyfWYw2etBZv/caEJXBK0R03HErgJZS2YEol/HWZGtS13gX2i9YJwnLuf9ZIApMJeHTIgdLkdHUI5fszuNaLs9GUTGH5mzU1HAVwDN5TAfbo3M8UgApvf2RqXlstB/CL6tzgokdx3g3J+MJHAl6DoQiSFiD64LsSA4f/F6IJT/8nkvle+SeY7Pb9G8RuTzF7tvgmxvJh5Cwh2Y1RMxoPbIzA7SwcbA7A7j6c7wDXm8UIwfLmtRu/HsWcDM5O/F06Hgsg+wE4/D5NuvD0rlzUJnXRbvdVWX2AOC58YRuwpgos4JhL8OZDrHQ0i4A5N+IgbfHt/2+sA4T3xqw9rhlieQvID2+EDCpyegXfavz4dn54wwUteAy9w5ceBXAczqeAQBc1zGT4Sgu7efZ+AZ7wXjPHFZ7ScDTIGZO2RC7HDZOYIy/JqVnfh09HBhlsBk9IH5nvBiBJUfvuC4JTY89x2eiNEAeG9cCccjAM2B7WaIDbXFtaNBON23e0Y8OpVDbKgtLoGDcIwvMG09WJQjLll9XIal1s8yhWJOHLGrAObynED460DmeDyEhDsw9ydiMOxN+U+V1tdlrlOB2RQRPNoZmOwRPswamdpeMtAUmMh+NN11YQ+dsrOjRVvx6ShCV4BL6hlh0NcATPFoALw3LuHjERjma6XSh8W2qB/s5py3SfWIz/qJGCL2wIyfCoL1Fy12gfKWLWh2CbuNZq9NmaqqKvHT22J8uDWwqGMBcN7IltuPRroCW+sAm257myyrd6U7dH1jUoVO4wj+e3Sm7gH/wtavvkvrH9HWuGYuxv8+rfGZ/Uze8Nx+Jm9cdgMfhn7y92MKzGJ5V1zmyrsisxXXHQqgvydXaMbK2yJzVt6WlbVmqWqVPc/43fxowleEfPjNDid1TdBmcUYguetAVpU5kRhXsj/CWuBrTRCO9QVWgiAdZIxMcQ8XZglMYB+Y4/lU35qkqHKxjfcmQki4IzM4HgNqD83mEB1sjMzsIJ7hXK51KjuFZCKEhDswvydiQO2R+R2kg42B+R3G050/VgJ7C4ygGD9c1o6pTENgZnZ5bCtc9vWAVK8vqlDV7tsh5iB6H5NoVy6X/MMqGwrVoHzcrK8KdeWOoOKf5TTgsaygShyfy6ROH1Rm85Fr00ERXboTrJuW+bLMdmtc293rEWk+OxDgOiCPgTERYOaO0IYd+hZBY1zfJTrfGAU6PzxOBxhfJoW+V1UNOgUxxkbYlpnK2/O1sK5dMsD0ar2rpxJtwRCO8AU+noNggGdz4Cf23u+YDLuFG0KHSDUotovb7+YyYZ/E6EFS3YraHYO8G0Lli/V5VKs6yZI6eaMSA+ha9GhEI51lufqaGLWok5R94PMAR3Tq9zrYTn0c1WlTP1ytFb9H0IKIHpuqTtIHfuXfcWgWH8pMvdnc3/Nz+ECKmGRqbVSa1Cr704TU+7pev0+KLFcG9Dbhp1KLzaySXP+hsk9JvmHfwwGO6lTvjwU5fUiKgl/hPMhv2Y36ef/qzi5D4Qo1FKIBsBfF7zhJ2ZDvj2M0K2dxTgfet2lFLa3rZKn6hwRxzcZEqll3DTSizMZEvpn9z0WJKjk/l295bcq1MnYNKNLxQCUbArroDYVsUF/dN4tQbhNEgnVxRCelzKktVld92L2FAY7qZKqyaMaD+EIHFtOm+VoFE2pwHCc36ovxcSiii3/J9zud1/yeexQO9QU2WlMBeN7s8cw9iOyB7l54kES3fLNcJnc5vx1rQUQPe3gK28FCRvFFopD7czgD4oRioAFxkvB1mefb01zbg88wtWEIZHvZ+dD5F5XB/fpgqif/u75lEKPvuWyH/f9LNXE7TgC/C46JLDO3Fwb/6dOFsXx2X7bwBTYGkz3d4/+LOvt9o9d2RP9NmW1tvx1gGkLDXJueoYBpA4Z57g6r+cO9vZ7UtdF3mxrQjZsdCXwliCoWIJNNv+gM0JnfcYgWm3YvS+QsPz8VZIiZ5xfAch3BxQcpN3SBMUuq96wCZ12QDbWFFWgYjvEFzTsNYFGOmFmoIS7Zsl3vKJKoYTjWF5aqETrIGJesXi7MEpaufjDN89eNag53RLyL9mB0H3aXy0Fo8W9UktmRJtBUggGO59RsM4RSamhUo90ZfqcqV3fGja4iG7opPtwa09xNBsB5gxq9CBrpimn6YmyqbZa4cJj2b4CjOi31rgOPshoAOV5X9+dWApJ6fR7V6tHmhCt04KhvAAtyxI4AT+Cpzs1y1+pBs2f4dll8m8ouGzuvFeBB6IFy/L4o1GyQIY9q5Rry3TRGvlOXhjBqJzNjzVoqy3ChlwWsyBoY20cXyxOz3NgBREC/1IulOjbPYNz97POoVrXZnhlTmvPivuQ7dWkMI+iDvc9jWC1qk9RqyX7z6sEAPp9eQY0+Eb9rO8ht+chfC3AgMUzs69utSTSgD9alEY02bn3M2VOtigrx7Bvwvk0r6hwNcS9qhkt7EedziHu9xniBRtAC2O/BEVUjhC1B9UPYElRbhC2JdWfx41tV1bqAvCr1YFQfzLqelhObJYiORa11cA9ivVpkj81A9KV+0vxk6NGIRiox6cM7G/rN9nxlV7QAR7bjdLAxZlR7Ao9yBo1oB8E4T8xodpjMNhVKWGimSqUoNjfxSYnKRoE0ROSf289LrN0M0cHGyKQM4lHO0BT1gHGeyIT1kdmmQgkLzVSpFMXmJj4pUdkokIaI/FOZbYIxUg2LbwPaYcyD5Lkh9ujrsqg26cao07Jw/8zW6cAAPqDpSz4m1W7Z29aeb9bnsawsE/GRaICjOnmOAMCs342gga64tbsTeKbzIi0NoMXt0qhGRrtNfUBf6oc8jBXs23MQjPGENX1eLMgR1HvzUZmGh+3cYHoHJNHtoax3TSvb6YAiuuhlkdQbt0Eq6Ek2IjLNPr0+Ndt1XZ4X/A/EXijbD2zGc0JOq8HMp1msNH/PBAchx68fts03no3BfKUZIzluZ0+pgqwxHuAiTvM2JFyU6aOy03Gq2mzSurSPDX5W+aDE4nMLRzD7OHZZfBvUdrI+JtFunev6bZluIA+eLozoUyembqe+b3eT4ZvZ5sBhqzlBZPxBnaJZUcBXgBrumuDDrUFDYVMBON527KHonEqAT/ZYBAFzZJpHQyDdoQkegGN9kakdojOM20dBu0M8PK1jAfDewKSORgCaI1M6wIbaAhM6BAf49nd//Xt5J5bY0UiCVyKQ6vFQEtcikfyhIDL+AtUhGAVwBfYUyf0Aj1idCEYRugKBuhAOg74GiTrgC4D3Fsh9bwSW+UoXSVFfJMVykyxV9wuOQPrPCyZ7PdDKMDOa0BVhq8ZkHLGrgFaU6UCM6/DtUQyvJ1NBZPyB9WIyCvgKkPUgwodbA/M+FoDjbYdmhbM9GkLCHZnp8RhQe2iWh+hgY2SGB/Ec56e1KiolNrwT4cOtkWkdCYDzhia0F410Raayn82w3U3aFHpvDdLBxsAMDuNRzsjs9YFxnsDM9ZKZps0cX5GkHaORruB09bAhtuhE7VFBhuAU7WM5jvn264NS+Xkt9V0zGkHAHJm00RBId2gKB+BYX2RCh+gM41/U9vrBJJXwSMZ0GKlrAKb5jDjwq0AmfDSCgDkw9eMhGO7uvGm5DnMYj3YG5nmED7NG5rWXDDQF5rEfzXFVRWZnMEuNW0T4cGtkCkcC4LyhSexFI12RaexnM2wvVaaTlifRA4kFwHsDUzkaAWiOTOYAG2oLTOcQnOHbnNJ1a5L0URdLeDaH8WhnYCZH+DBrZBZ7yUBTYAb70RxX/zG8+ESejiN2FcjUnhEIfx3QZI+GkHBHpn88Bse+d6glPv2DeLQzMtnDfJg1NLV9ZKApMpG9aIbrcN8NeAbHAuC9gVkcjQA0b/br4C8qjbCBtsh6F2BDbYF1LwRn+Xo2RBGoghNRhK4AWhmnwqCvAZvo4QB4b2jKRyJwzB/KYSOF8R1zOZZrpdKHxbaoH1Slq9ukesTXzXgMEXtkvZwIgvUXLXaB8pYtaH4Ju621r02ZqqoqDT63w3y4NbKoIwFw3tDnixeNdEU+U/xshu1tYpaqVtnz9KZmRxO+ImDGzw8ndU3I2jAnkNx1AGvKrEicK1HpQ6HTJD/dKIneWITPspZceSux4lZ4pa3ICtseFDlE4QOjPKGtCHblr9yKX/RKX8u7NUlR5WJbPsRDSLiDq1skBtQendBeOtgYnNp+PMe5XOtU9qNlPISEOzK/4zGg9tD8DtHBxsj8DuKpzuX6+TZqmB9L9GpQqX9EMJnrgVWGWWGkrgFVPebFoV+F/OyV6Rgi9rj6IDZjxY8G5r/ATJUQFJfvEjNUyrX0xgxTEQTMgRkusyuDD4zMbvSeDH4kMLPhOzKU6+dYmDYnitAV4HJccFVaCA7MdZE1aWEsLudlVqSV62eZeDsrjNQ14FJfctZtkA5Mfpk5txEuLv2FZtyWa8kJtzE62BiY5PjZtkMoMqWRc23HOGACQ2falutn+Dg9I4iMPy6Z5b5AB9jA1Jb43hyk4hJd5OtyuRadXBTFo52B2S0ws2hERWY0dF6RhwfMYuysonL9jJOKjggmez24TJefUTQRA1gLJOcTTdJxNUR0NlG5lp42MBVBwBxYHWTmDPjAyMRHzxjwI4EpDp8vUK5vTaLtGZDDQyUUvEszL5LglQDzfV4oiWtB5v9UEBl/YH2YjMK/AjfK0x4S94dcrYjFEbsKfI2IBsJfh0BtCISQcMfXhFAMsr1Jlqo5ohSgeYCNfHpR7avOaZnnyh4ey4/bw1FLovP6pYvlbvUg0jAAR/nagRAp3QMbYAsWBDm9Tepk8ZAYXSyvTRsQLOqNAbEHPa3GTIjdh7Len2J2+pAUhcrBrp4IEHPU89MDhfgtVF3rYglY2eDFQh3flebjOktqdK0a8cnWulj+ZpL1GrF8qAMj+mxWq8Rs2SYNhupQLO1fKX6C7UlEk21RJ0+35aMq2CoHFN1lv4gZYbOH8Xz+UM0ia+gbTIQNtQW1tDE4xlekWIHlKVOQnBK8Te5ydqPvILG3CvcHpypndy32oHi0JT/OklqeiNh//YEc/UZV7iUP2dAEsN+D4/dRkn999V1Y/oiyxLSDIe73YYnLTGFPWG4Ke/KzEzSgOSZ+u2aALJRz42eenBsi2zBD0B7kt+wGyTg5O0TOydmRsy4yPQOzKcuMEALu16ZcK2Mngov6H8KArqH5VAR3brAgx0v7P0r2kE6IS7W0mwAW9xrwmtWSiCbpelGmj6o+LYtCpfXVuuYnoYdJtOtsj7TbW5YtN0ZS3cyKL2NW9Oi6KPNyubXffBAiHRzE6aJsvpaA3Vos2xHY6vqgVL/KfmrA3NM9iu1yo6pNDqh7AyDVq7OdE9+pAwP4oEpqhKS7tavMEFItKzpyqZ5qWGu9R9Gvf//MxtjsYJMl4D4CQUI60lS8/qxOUHc4wKXfiz4N2QSH2XRbk6T1aa7tvEBMb83DRNjZN6z8i8okLPtsoq1eqZukWALu855ENBntJwWqKQEuyhJYUyJsqu2TTk/LokY0sR0Ww8YdEgooqj2K6NLOLkZ05zosvg2omzIiks2KKjX6ToFKqkOLPjd3TwwFbeR9UEa5HFDgZj4GZ/rup9Mjv+fF4Fhf0DeeKB1kjPo2EODCLEGjySEw09N2eURydQjGeYJzdEQGmKJzs8OE2IFzsgtl+mVtfsPk9kSemS4L1IxgD5Lm9vHmguvy8eaCGLvIXE9aZQu9LJJ6Y9j55EFS3XSRqSeVvUv4Cw16MKpPpRKTPqCEujSy0Sa1c7zvN7mlnFRVmWrIqHUEjXF9q3IlIdpyQZa6SuQKtU+nGtcy88+C4O/FkzrH4QVMifMdXsCUOPfBB8T0AMPk78cUmanirsBcFXdFZCvoLcDH/LbtIFkp6YfIREk/TPZh3vK80G/dD5SBkoaYHJQ0pGahWyl6kiXrGrvlRxCM8wQ9V4JkgCmq3fEwIXagjPRBOX5ugwCVboyut5jPCCEu17JSdrKJ0arCV54wH26NrEqRADhvaMXyopGuyGrmZ3Nsz4psXWrsZ7AwGWiKzFovGuEKzdQBFOOHzM4hlWP4Lt9+fVAqx+eljww0RealF41wheblAIrxQ+blkMoxvE5Mkucqty0xPjdDdLAxMkeDeJQzNFc9YJwnMmd9ZI6p4E7ukwHw3sgExu/n7uVC0xi5p3uAiExm6L7uH01+nZiKPyF2DyJ6IBRY0U+WqqhdDQO9J3uYTDvsfMAAlu54mdTpA8LKgWgen5JcZ+7rMGJmaZ9GNNKZKtkiFsKIf6nqJEMUSBdG9Ck1fzKIgxDjr1NM/dmDaB6/JcZOpeZa7DAsh+pCV/V5rdjrW4c8opW6a9YTs3VaENPDHdZ5maxhPi2Q6FWajK1Smiw2U/43o2u7a1nT2WBH69FoV32yXqsiuyyzTuNRW/wxIgfIQOJv//Z/fvjfr+aJGJNs32zu75W50I8smz6JofS1OjUqs0sVk/zc/XdtlyZ/0Vm3W3W8YIxL132ji8Rs36skU+ZTkm84ZThicbUsl+1j/4Ehkpd3V2sbIcm5OgMUT+o6MTVTxiIYEmWZq6QApc4IxhAz5ddKmZuNWy3ctHO6WDZXvM3LZPcO7EJznI+JI3I5glfAlXYt6fDogeMFOxiGzLZWoDTtk+hKpw8qfaw2q6bXujHuxeZCLZN0y9CLUCdUM7U2KrVrFf4Us+6tVmu/itgRvZWqleGk4hSaUdQvJz2aA/SdaA8nBn0n2sPZQt+J9muGdrlaG/Wgiqy74JXZTwlDcaL9cS6w8BjOES++KFPbhp+VBB2MV6YT8m1Sq8H3i6Pj7Rn0K3+r7pNNXlfM17wuhi5zVmRX900H5cyYkvMiNUSxpHTBTd4DhCXiGpWrO3so+G5PCU5Hwg/kC0IaVE8T+r8Zanb8xw6SqUKZK9P/R3f5HNVJOEP8Kc03rKq5I9AV3idFlrNGNXYEhoLrjb/pbpp/vETL4GpwXy8grxbv63q9K1b7AYf7JPHheHK7j7rNUAinIRjDuGLN51uUWY9GV2sG++633D5IjzPVCWn/mP0K3wdNhi1qtVQGU53GMMZNqJVJaveJv7d5z/FSPRBd6Be1vX4wScVKiQNk6sZclMUSc1cGJHoJXJTl42b9blOk/fXNBKMuiC50qaoqWYKGmsYwhpjOslx9TYxidlb7ILrQhzJTf6/ER2iPCSNxMXL+TOWrlea0Yfbn9OD2s4NOckb8HYGhoNNHTnydDk9zOyZ4medb4HiNlwfRg47SRLks3e2S1fzvCFNPwGujS6NZr9UtgnG1u1fxXxTPY0+hq/y6UWa7fwfnvYGNWHStG5Vkh/kNoE+3YShPdLuoe0emksQaCEck7c1iIUik4yksRwk82gPPLR7YLEaoQFVoEzmDzlHPE2ZHuUVwJb6oQ0eS/7IdZHI03ajCbtxjOCmfYDjG8eS0Ubwa2yA4ErXZuvFzds53QXShRfbI/TLQIiDfyhfZ43DCHkXIO03vmGJR5otOm29B3NeREesb1eJ8dpcVY3xYlxVjfDqXFWN8HN/BMEMJY9g3KwZIfzE1fgUQU+NXATE1TiV4KE2NGZEcohhS4WPPjreaOO7sKC37iaK/WIng00IYIrVacxRqNVzOcFRwqeFYsRFY6KArcpx1URuN+m4yYtG1fGfhMLvxISRKEvqePYVmSOuVqupktcbccx+OIec7HYNblCEmTBN756fYdO2PRfIl0bkdJmQIdigMlXY5MUekZQA0rhPNeS/vcRg6G51hquWAxFgsdlea2m013/kc9iUx2t7/45aHHUjDTvaPxyzZYGo0kOEbyEyD07yslJsjx7Q4gIgmCAl2/ObcY4RFQyK6vNPdBo0kYRHE6Jcq08lwEhJJokMiugyng5I0GgjRoNGH1NQuimjjO1qQ5HIAEU16x5CQFD7eXBBje5bIkwz2nKM8/uGZs9ceFEvYBMmLiC1OH/6AsoGRnzEnanNAIOM6O4D58TjX2CXMiWhfVRjXt//53Ficazv8PhrNEtdG1dRLG/1+djTSxY0BsXiLtVLpw21JvLjRz+fGolza+PexaO6Y37L5DeHKRj+fG4tyZePfR6N1TxGjXNro97OjkS5uDIjFuz789KgnVOd3w+dR76mz3txVm7sDelVmmzHY/dFA83/9OX3QeWZU8ed//+89L3Vv5tbV9//qsp4Xaof5rMth6fjB15u7xdzLGLL/sv9xE+L1D//2+se/ve7eBPcHo7kOhCAHRj9W95asfq+PLCX7i1nF9B/7fsufXL/lPwlxxn2fOZHtLCM3yD94OVPFZkUK2gf2Hf6195JeudHCYYa4PhntevvIfugfXv1r753YgX7dqO6IBSN0FxgN3JSNPSHQTi+7LAtdd2dXcBS86JjM1V2lzJf+0BpD4IAbBZ09Y669BGTBeLixUlls7pqzljHRDzhaqex+v+5PMuMLrcdTzuYqXeji0Y3udvNtzumZs/z89NizuEm8WdtrHpHI1K02r9bNUiSYzY4XsZk3d6oFjdf2YAQDS31mFtt18lA2rSjK60CMd+TKla5Uf6MzZuADklgW7gH2Jpm1oe48pT0xWhb+/hQitH/y6DB6rqvZb0Fzg++Z0Ze+XSvdfxjyYneZtDzYPzugZdKnzigVd+uQFWTIpZWOHd+EtbIORvP4aPfDQzeqPSjVqxLI6j6VZuZ9xMe/HNK7DpNrcN2P3qskrx+wIh3m5DKoOav3Zj71uKv4mqfXaVlUtdmkdTljE9BjHosDMEPUPVhOy6Ke/CZ/xINqx5u8Yd0/HndAMRKBjuhIZs5ao9mvSpw1R7cqMVn5tbgolzoF+PR4x2r9Y3S7CO9P02MJgE7TRBfpH71LcafWzxsfcn86axjo9OrD7c3VxefLxc9zxoAacOdH4XGeYCs/SY814+MbMO/eNmipm9qlz+jwnl59+HB2ent+9eHz4vbk9uzz6fuTDz+fTY8nD26CDzIaXO6PY96Wa50OjjO43/U2YtH6v+0H+en1IFOT5pTHvxbqqf7n1Pjs7o8/N388K2mTtT4Omqy1yHCsJwxtNPa0zNTPqjikfn9inqfKzArtxYYr1Juzi6sPPy8+316hrvsvPeSuwnWrwvuTxefLkw//BQvYAQbCXX04g0ZreJ5gP5tk/fDrxWAdnbeVmhWxyyMO4JVpMmM8cZZNy6KZzB6CnuXCHYEezoiim/j2ZTpyxHd6AHqeyfONPx/jwxh+vi0fFUTFgWgOJ9fnu2o496iVWUZDbKz3cHJ9fqOq2Wc5zY1/YEaDm+VmpYr6Q28bU17sDpI2rHBSVWWqXWtkRzr7z06e25gcLZ1N/bA/TKIsc+w98sKndOxsb/vXJ0UmahaNM1dSzGpaY3dkgpuBDkzuIZaW4G82dibjeXE/47iteVp7YPQ9Jcnzha5RZdHiaGVw6vbyKMWSOMiPllDzI5H89bLjMm5XbLBEhxkPXj7ao9zd8Ibbe2jG6/NMhRE5KrKp6nLVfJucNS4/T6JPPUKgfbzJiLT0aaHxoUkAj8CJSb3wb7WxL59f1Ft1r5vteIANbIBOa2P2MAlBhlaZojtdXSRN6qzYrCxM5K764TzRs6daFZWMZ49N13TdBLEC9dCZqhKCDC078bBZggN9Bo64sdbunVb5jDMMZwV2rMlgIvniIdNuigOhxRg6eZnU6NztQ4liJlnaBlnmbnrhPNHF2qgEemdHYJpgd5h03y6jOqN+OEt035cDjlv40LGGZP/37jvQp5/QGjvsDIW2Rwltwb3sGTLD7ekREt6d6sfBf8+7A6a77cuRJt4Ac9a1Qe9MH3rM0sj2JCSwyBA/d6WfkE4XPa1S7xZEisgM4fF1gifrdZNTuliK1OlYiLhargvVPmyAz68xmPZYcLMzm3XtYu9X0RgQbYm3rVgIhrTcW1cIT5WF91y7SLKUsmuv7AP+Qj19+gFcyb30ySXKnZ+8EhV6NVPIxhOszcEIjJvaAmVqcigAQ9guK8ff7AN19sJ49OPXx47J/KILVenqnTbqoayUyOM3GmOGnKTUfBnXprwpsWnTh06FfyUR/tW88LpyD1Jgxe4iqWsEKvhjrsckao2mTvGMdrjR7sJH6uy2t8UmkI8dyyN7GG1+UtdG321gX4v70MnwblwQOILSh06GPy9qU1br3bzl9EGtEqSIBx9T+pCskNWnxdFS1f46AzczPSZRyy4KF0icETd6o8riwybP0aXTpxLLZ5Pn6Ha4xySusrbTeqDNXYcYX2xu3zvRnzMGVGKZyA4WYMcJZIcIoKMDDQxdCQZUqtrcrQ+OmEDN2/lAl4VM+vnpTFW52hKOIL2vxBF+L7KtxFF+3F0lliqz3X6Q1Z4X3chAmcqeZKf/kHnnDvKjUrpYl7qoZYy88Pi2G/t90CTmK4bwM5VEvnEF+XOlRAa3wgFmaskkVIgfl9KrxNjzN4FTpPvQ+P4l1cOHstb3unlvlimYaJCY3s3Z4lZEaQyOaqjfBSYHD6hxgcotzqqwhdCnRndV+VHkNgyxUYU0yRMj1vcJ4WnP8ANN4k0hQKeq2iEZoTIdozmSdqIlVM0C4znn/krkFo7InJJxwzZQNUecLpt2yAgau4VGw6t8N6SokDMhhljiTXHtKnjcvQ8lirmNkH9WRfOiAv7aF6BHb6M7ywo9TjGgEsvqqJ2ojlrYzN5e7YjtzY5e4czY3czuR91iwLnlZccyq7c5toTMkB2TOXK/tVkSkO3WJIeTAnSmqsTT2A+nih63hd1MQf4Odp92O/OI3Gs/nCcqoMdYqH99Pnz18WwRNnfHAu/rzmiPtJPFbb8MyBEbkDfevKsvknxb63T0Ako26gMnS6KzmYHKy2JZ3ZYACQ/1CJP3SXWZFFuox455nMVVgciRIfIIh9upsxiPNfB8fB7Hry9UUtWYi9+zJqN6vuGSo4a+3nqjLuqkyBKT7SeW/KIQuRcgzzH6pIy+d+0q3snPnrJqBtQOq5sWi5vdGny+VZhNb1c9zBv1+0ZV8c1Bqb47NsO32dghNBhIVvVhJ+91f5OJiV1imGrH7BEzZdr86PI+sZtEbhCZGeVP2rntEJpTTBEyXRwj0xzmclMng/0seV57INdstI0FTHFMnncH97/Dm8w0+HWjDKap7eK4d2qRlojeSQc2VRqhNyxq6OhL1RHl0e6cgemudWlTJdJuNgHIjT2KXg5nTyrd1LF3YbJcgMxxdedDufHwS1UnCMc+ke7mmX9KlQpNOR1lkvtDQBo1nOloTyqz7dB2uJ6aHrdPnDLYjaarrH1y8RVGyNkOzhso4Hizo/u39WRLhHf39LmUqI7lHjUZs1l8b1+KLiGN1AA4M/6lqh/K+Ib9x0RvcEfFXixuwOEXi5uZBqjM79BmRr5R1bosKtXd2YIZ/oCc6QCueWPoTI92GLcCFkaHOcuiv/kE6rEQRE85dVf1opqmMXPK4jLZ3gFaJoeh90dclwbUzTyw6D4f1BdlzlbrGtByHFhT92K3hKb/9Ykc9gBjlENn8h8sST3QqZJxy2XGm0lSDXq4WbFBr6IH1mTU7ox+zCvOCEnPi/6MZ0hWjJBTJUQ4OmqmCPbkqMOENUDj1oFNlU9nNhgscEObF7mdCwYLvgdOxm+ngmHqTQ/HyIO6NMlytGqabNXFTZZIbXRau8kSiMh72BFx36t8jWi7R8gph/nHhM2bQcQ5JaxjZY+D+EUXWX9qLNmqi2NYRWYUkdWm5hEd6ReYRsTRi00eOtIOJ8V3WWyrWq0k7qePjHAVuLceMN3UNTu/qC3gmbZHTbVfH4vHovxaDEYAEAI+7pTNp5+ar9PI7/Nj5hEWsK/uY+akxXjyMzl4YMbzEbn5m64f7GLRyg1U85X6vMmnbPsAOgQOHCh43POsH/fHeUXx+fOq/Uby+TNGqIc8Qqp7RGGTXx8rXSzp1ccLmTe7pv3RjfqdF/VG/T4VcbkbpF+4Jf6dn48uO3ASpEdiitl3+un1HJ0b9fsN2KZBjmSOPVZ1EHL+8arMAyWbQOMaMCf0//y5KDP171VtVLL6l7Qsqs1Kmep//oxR+Gzpnxv65z19oPY6XBsDJ3sak2ybrfaPzYNjRTuhhvkxq2G7y8s7aUcbgyb3LEV4Ry+9f1bd118ZPRuDJOf+S1jOxjhCrtti9Wv2uhkjk6nYLZxbr+3LSfXQ7QoBS/Ug2YYh3fW1Xiu7g7OwYxuGePPdYSRnK13X3frNueFdIvM2n9yVpu5/M4Ga/aUbYOf4w7+9/vFv8+7wM5TdXwYxeJIn1bZI2x0GDsZzTj6dZRyM1c+DuYejBnGzz1OHXkToJPajr6WNr4tl4I5IXU8o8jHX1O/s7usvIPtbGrPVeLtZ57Qu+ITSX/bk46th89NR4qLdDgGOV7xRSYZrbPt2HTZdTLD0xiGO11y4R7OE3Z5MlRIsuWGA4xV/Mxr4kO/bddh0McHSG4c4XnPcGYb4+Tu/R7fGn3d9VavwGdUXHkv2whD7wuMeO6Qg/T30b6wg95KIgrxOqur2wZSb5QOml7nX7JBpfUq3S8R9aVZgsT2XpvVul8fonu3ebxCA1om91oRtrafvqfZsaj3bxyatWKkNAjB2YLGpIaY5jMArTXuu+l2SPh7zIWF2SbZwxgS1HemtqmpdHL38YrZphw+VPbfzeO9yNd55RkZ+GA96MbsZdc91LYNw/EvZAUW8d2y+5GIwOgB0XPhe/8mKomnQD8FX9vQEgLaB/gBLVDAPBjEYE35akMhTZESni+6/nRw7iWBSck8mTXBoR/bhWi2YZJVkmRsrX+hlb7gP9PbRx5M+t6A/CY1eMYdHK830Wqp2M7r3evnwW1Irc5mYR7hmIA7JWVfuQGqBwtyTiV7jMUqYWIv+Jj72jd7LidlXPVP2BeIQxw8EvlMBPke96c3Q4Mi8Gc3DmOsw/LbBsWhY/E9z+A+Jw2Sfa3X+w79+GC8l41h1iUSnIi1XuliOjlxnafWhNLMP6qkeTbHlWHWAHKPhLGi+km/+8zFOH28ucDofby5oJlebelmiM2kApZmNn8ocJf+D+FiXNwkqh7pEqpOrFKP5sTyrLpPq1dQMsFgPSjNrZt5i24I+k+hVpo8K1Fw2LKLH4Fszy8OxaB7jb7cck5bGc8HV/C6R5jSeIIP42kTtH3nm0zE/QeyJtE8OJ1lmVFWRjlkKKh2YRKkm3tWmXm8Iu9MHvXrYkVpQYL8r87Up18rUvYYa6uSJdIRms++CsGEvyHy5t0mdiMv1g8yX+1mV4m69GPPVevt5iEsGos3X3S2cf7OxD1Zx3UC0o3WfS3Sm4mEdyyetvuKU+lxi02whpCNWolr001Xcz9Hf9btQopYd7dqf+YMT62ERauTjV+Yp8k5icaz28znWsKUCxNx/w+/ykM4VlRHkiUktJ8CtGrADxWi7DpMoNVgMyPXxrPo7TqWznxPYqkOmCZ6WRaHS+moNfJHoMMlS9n8t1ipFSrXMWO9i92duDwB0bAeNB7cjUnbjg/NaHX9oZTh8F0u9JZaxUEa747jRdd6Pp6m+1enxp6AHv0HpdHwE+kyNal1W0CfzAUlUKleJLuxhkEipDpSo5V96xPXqUolr4owpyrOnVK2hXcA+lqwGfJg4Gn/doMj6wL++4otJrsdkZZj9fEs8HDv2RThwMPZR34Pf1/V6dL4L123MJkqu0+brhET/xQcnaqLfzXivZWJvZJiXMRktts6NqjdmtGc3SK0L52n+lz2bQsiyw6ZJXqhlkm7BLV0XGutWN30T9/GgstPooEXkgxPLqCwfN+vd1yGgX4fKEUM/Q3tUmtilzrJcfU2Maj+anxcad2v9eKJqmel7rbLRfCauY59Lk7Ozft6pOn3Yz9mA1lM/nqZ6dfdPBXy9a3BElcJOvIH2PA5IohK4jrJqZztzS6Ij6WET1xQmplLZR5MPzmph+vWxRLVmPQT0a1KHSZP6daM2diPG2m4/uMQV2IALkVvoP3Al52HTJG0Nt/N21HCKFFNwwKXLuQlF25Zjxy5NmefAt/tYELz2eJ2XoH5g2deRl4FuxgdcnpxA2h6w37DacE4bTe7Nf129uXEPLCHNQwCE7m7NjGAjEIgDlLf/8m1ZKPCL34xY4ItwG3U/11V0goEvQzqJcNnvhsXFnh+eGAhpN7dEp6Il3YuBkH6WOoqvnM9TK6HVsZ0yfp1ofHZ04VRNN0QAHcfpMKlSAqNL/DGlxUNiVHbi20Kc6TYigwQlJsLEghC1248/LQY6xuOlE0XtScxp92NkO2CPfoOYjIS6AHlxprB3t0q2ZIfKEbO7pcjIdcjETcbStdwXWx+cpvmxyJTJt7pYutd77LbHPjhXc6ELXNe0j0WoufVX8C50JAZC+jQvK88uc1DpXgyE9KJOxEu6FwMh7QYshaV7MdjSUi0CqDVwlNOkSFUuWayeMBj1600uL94NgtEWr3zjKDTx4JbRTNUBlycHHsftY79hNeoQc58iN2Y7EQco79psYfEmBnF5TrG9OfLkx+BinAY18Dhio8ATszzqJL/wqr6l/zC/+QsNmxfwY89Cn7Eik3cMenDJKMTNIkc19wi7N7pIzBZVaAcaw6jMtv2xLobPjsWwcaV8VqRlpoujTi+Pr51qiVwz3K6nXR7d6rRcrctKvSuuE5NANo/tE+lmu4bXjcZcJmuE2gBJd0NKAWye0nxz3OG+QZkGRXfZza9CNQgdHN3JLnJoFh5BHn0dHMNpP6W7/y2IodUj0s1+UVuEzi9qOC/rOIdXIInhgqAjLOwiSPvtEmHSshg2vbnjo1cyhpoPzPG0U7WRm6f3iXQzO7U4NIWTbjem8gwdwh7fnSV1ghLsQel+VytMs245DIvRfF6I04hKN7xOTK27+6TRtXYohovGbFtvOQyLZrueLejp0sHRnfoTJ3xDIHTBEBtl25m+hOtCTIRAuUtKo2zLIockasvi24S2XeW7xTZfPc40LU2GMbMkjsm9MkaZ6zLXKeg+dokcs6ask/QB8sLW5fGtXAYgtRyQ72VUpgr7GATl/ZDKNgQf3zWmsg37u5Ky1Twbkh7vdFliRi06OLbTjcq06a0aZHu1SI5bdxdqjFqXyDezWKSX/Ue6VWTyEF1tatLQ0X72+bu1c84gJTdk0u0ssJkjifA60OhGv+n64dyGTXV9WiqTgtpZH5du+X8vL+zL467WI7+L+MncbxEHM96hXA1t+FVr5llcg72JeCYORhQZLhbnmTQ0osq8hZU8wVgMpvZw2gNGdDfr4RVAzbeuDil54ENKMjJHA2k9CoOUlyzuXgiidGR5BE91BCYKhuYU8ewGU4polWv2jCKkKypbZ80oEhBvQhwl3T1Uzg7qN0fAHCxXZbaZ53j4dT+8PdLuQeeZUcWf//2/D5MEjEpqtTtxZlMUypwX6w11dVMneAAc259p/JNmX3gJmYYcs/lZ7X690Jnbkr7abd/K1wmiYz6dQ8tOiqx7XhjMazLEfD9htyO8bjaFfRfY/SUouz3QmEPzKzd9plBFDSsUPzdax4ah5765dGuTN0zzjhKtzryoI9yUwM2muFrbmRO67N4tlkWAOaXS/PrEfeVGaHh4foXugyWN3JBjjlcdc/qxf3rdC7updXdwd86jzP1kcEH+51fjsquOu9NE2loxKOZ5l9iEnsR6rrh7zfZbfFWXRv21as40+esuzEQ57H/3efe7Vm9WYZw9rcvFrxe6VifNr/5l9G/I8Uekz6N/M8vxP/Z9qD+5PtR/ihqNe2xzHD+cXJ4trk9OzxYHOVVsVsJqh7B9y3/t7ezWH459Bq0mZFjJTUC5Kp5Xqg0a1lqUpn7rBud7I4rP4NaLHBY8/7A4u7l9gfT/yz5yI/VDt4Pw8frtye3ZS1jtI3usTsvVqiwCLZl7q5JW9Bj0b+0Pr7o3dyQZ6uKhPf1t8fjkrKYXU87ZixGu2IsfNa2qMtVJrTL7HH4B0178uOm2SE/taMXMY6Lwqj2BSdf5W5KLmKLOlZq1g4jcFTDO2zk0J/Y8xrveWbDPdSE+i1jm7Aa4rpWp3KRn910+t5NP3/ZmtD6Xf9wndiVnxWb1zu5m3u9OPZd4L3zU8/dNkuv6JZvrkULM99y+Ic5eVIxW7UaPWzY1cpE+qNUL5G0/ftSUdPgA3PdlTymQuhz2cQa/qO3LtB+7wLHMuUzce9tt6eptkb1AdRwpRH1t031S10bfbeoXKNJ+/ElT13q/kKWLPc/wZdKzH3/S9LyoaruHyHhpzLMKDzUmve0fvpCrDR39GlMWL50EI4WY73Wy3E2HnfmFBm07EIi69rubR21mCNcOuhxxBS/XgSf03K+NyuzZ6+pnU27WL/BUGwjMcp17XImYa+CAE59r5a7rBV0bgbjrEUdi4D2ZZ2fcqNw1NC/TLHejR79Zu3cT+6L6/I6H2NOGruF4KUUXfNqxfRS+lGYbP2q6rWq12s8leAHVvkDM9TYxS1V/SFaqHaF9kTFXr0bM+2OlzEuNORxixwzflGWuksIz3OSZpYBWHAafnGHi9qPRtTp3q73u9cQUE4Hh02H8SeVNVZerl/IdBJ+SfavUup3h+Kyi3cBTknO2yIEPiXL30jl7qk0ysRINL+1iMja2eZmsnZ+vh798Y4ebXsjSxZ6v6l6Pn7edHQY/VvZdaSaXP0k77xwm1e0XAVVNrmEU+RLRxJ1UnL9flNy4PntjqerqfrFZK/PsJT2IPVXazZ+/kOUcwcukSJYqe6HGdhR9Unc3WHpldh9jn1d3GH2urjtftci3L9D6+hUmxd3nCd/bznMoD4LPk22/pTxz8fZjz1J9iSw4xJ2l+OwP3H3U2XpvenNYnlPxzXjeSkiz/4nHrRJ/3o5ixGPWJdgnyfML26iz9PajuM/vuA89Kbpxb5aDIbnn0OwEnpK0w0rVOkntaW9l/uWZ+wGj6JO6ZfFhk+fPPlTQicvYnHGzurMnQr3EoNcg9lQ5T+7TCJ/+z9vQcaXrZkJWkjdfHr48c3/AazBZysMfXN0/r/Q4/lzlfPuybxARj6lLcNuKq1oZ/YfK3E43q96XiGew9yvMEJ/cFFTAlLl7aP/b+/PK92NPlu/URqdwP96OqDp9fNlGz2swWcpt/+nsaW1UVT33W6Yn/uQS3zn7eeK/oPM3/pzcThMvzd13s5k2UD3o9bOPng2DT6fF7xtt1HOXcBOUsXdcmuSJecnOqNdgcnH7frbGc8vu485TdM+al3BsAs+T3L95vYDnPvaRqi9RpofgM2V3c2BexLWNPb1PRO1GCDzTdp9Ddhh9Urc09csM+PQiH6X5Qp2bgMOkem10sXyhh0E/9pSq/ZWtlM/q2Aadkvv8edVOMP78eXL3L7RlL/pwW7D+xiHDj2gihpnvY9nApPeLf+n9E3l3gL5X32nOxhz80okZzCkVtwMO+fqb/XPmXCmmvA/x/jIE7naF++HfXv/4t2b3mn/8v3/8fxnm2VMH0AoA" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file diff --git a/docs/api/assets/search.js b/docs/api/assets/search.js index ed8859ddb5b..e7380ba25ab 100644 --- a/docs/api/assets/search.js +++ b/docs/api/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/api/classes/_aws_amplify_adapter_nextjs.index._Reference_Types_.Blob.html b/docs/api/classes/_aws_amplify_adapter_nextjs.index._Reference_Types_.Blob.html index 5e8597b6d59..d7a6a1fb1bc 100644 --- a/docs/api/classes/_aws_amplify_adapter_nextjs.index._Reference_Types_.Blob.html +++ b/docs/api/classes/_aws_amplify_adapter_nextjs.index._Reference_Types_.Blob.html @@ -6,6 +6,7 @@

Properties

size type

Methods

arrayBuffer +bytes slice stream text @@ -20,6 +21,10 @@

Methods

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/api/classes/aws_amplify.auth_cognito.DefaultTokenStore.html b/docs/api/classes/aws_amplify.auth_cognito.DefaultTokenStore.html index 7dfa9ea73ad..abc243c87d6 100644 --- a/docs/api/classes/aws_amplify.auth_cognito.DefaultTokenStore.html +++ b/docs/api/classes/aws_amplify.auth_cognito.DefaultTokenStore.html @@ -6,8 +6,10 @@ getDeviceMetadata getKeyValueStorage getLastAuthUser +getOAuthMetadata loadTokens setAuthConfig setKeyValueStorage +setOAuthMetadata storeTokens -

Constructors

Properties

keyValueStorage?: KeyValueStorageInterface

Methods

\ No newline at end of file +

Constructors

Properties

keyValueStorage?: KeyValueStorageInterface

Methods

\ No newline at end of file diff --git a/docs/api/classes/aws_amplify.auth_cognito.TokenOrchestrator.html b/docs/api/classes/aws_amplify.auth_cognito.TokenOrchestrator.html index 4c0b1229849..5e03954ff0e 100644 --- a/docs/api/classes/aws_amplify.auth_cognito.TokenOrchestrator.html +++ b/docs/api/classes/aws_amplify.auth_cognito.TokenOrchestrator.html @@ -7,11 +7,13 @@

Methods

clearDeviceMetadata clearTokens getDeviceMetadata +getOAuthMetadata getTokenRefresher getTokenStore getTokens setAuthConfig setAuthTokenStore +setOAuthMetadata setTokenRefresher setTokens -

Constructors

Properties

inflightPromise: undefined | Promise<void>
tokenRefresher?: TokenRefresher
tokenStore?: AuthTokenStore
waitForInflightOAuth: (() => Promise<void>)

Type declaration

    • (): Promise<void>
    • Returns Promise<void>

Methods

\ No newline at end of file +

Constructors

Properties

inflightPromise: undefined | Promise<void>
tokenRefresher?: TokenRefresher
tokenStore?: AuthTokenStore
waitForInflightOAuth: (() => Promise<void>)

Type declaration

    • (): Promise<void>
    • Returns Promise<void>

Methods

\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.api.generateClient.html b/docs/api/functions/aws_amplify.api.generateClient.html index 9d639439f5c..d90eac9cfd9 100644 --- a/docs/api/functions/aws_amplify.api.generateClient.html +++ b/docs/api/functions/aws_amplify.api.generateClient.html @@ -1,3 +1,5 @@ generateClient | Amplify JS API Documentation
\ No newline at end of file +

Type Parameters

Parameters

Returns V6Client<T>

V6Client

+

Throws

Error - Throws error when client cannot be generated due to configuration issues.

+
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.api.isCancelError.html b/docs/api/functions/aws_amplify.api.isCancelError.html index d008a72b3ec..5ee66a87c2e 100644 --- a/docs/api/functions/aws_amplify.api.isCancelError.html +++ b/docs/api/functions/aws_amplify.api.isCancelError.html @@ -1,5 +1,9 @@ isCancelError | Amplify JS API Documentation
  • Check if an error is caused by user calling cancel() in REST API.

    -

    Parameters

    • error: unknown

    Returns error is CanceledError

    Note

    This function works ONLY for errors thrown by REST API. For GraphQL APIs, use client.isCancelError(error) +

    Parameters

    • error: unknown

      The unknown exception to be checked.

      +

    Returns error is CanceledError

      +
    • A boolean indicating if the error was from an upload cancellation
    • +
    +

    Note

    This function works ONLY for errors thrown by REST API. For GraphQL APIs, use client.isCancelError(error) instead. client is generated from generateClient() API from aws-amplify/api.

\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.auth.decodeJWT.html b/docs/api/functions/aws_amplify.auth.decodeJWT.html index 92400134d0d..8ade6d36949 100644 --- a/docs/api/functions/aws_amplify.auth.decodeJWT.html +++ b/docs/api/functions/aws_amplify.auth.decodeJWT.html @@ -1,2 +1,5 @@ decodeJWT | Amplify JS API Documentation -
  • Parameters

    • token: string

    Returns JWT

\ No newline at end of file +
  • Decodes payload of JWT token

    +

    Parameters

    • token: string

      A string representing a token to be decoded

      +

    Returns JWT

    Throws

    Error - Throws error when token is invalid or payload malformed.

    +
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.auth.fetchAuthSession.html b/docs/api/functions/aws_amplify.auth.fetchAuthSession.html index 5a52daaee82..f62b7471aa8 100644 --- a/docs/api/functions/aws_amplify.auth.fetchAuthSession.html +++ b/docs/api/functions/aws_amplify.auth.fetchAuthSession.html @@ -1,2 +1,8 @@ fetchAuthSession | Amplify JS API Documentation -
\ No newline at end of file +
  • Fetch the auth session including the tokens and credentials if they are available. By default it +does not refresh the auth tokens or credentials if they are loaded in storage already. You can force a refresh +with { forceRefresh: true } input.

    +

    Parameters

    Returns Promise<AuthSession>

    Promise

    +

    Throws

    AuthError - Throws error when session information cannot be refreshed.

    +
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isAssociatedWith.html b/docs/api/functions/aws_amplify.datastore.isAssociatedWith.html deleted file mode 100644 index 78b1cbc2f5a..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isAssociatedWith.html +++ /dev/null @@ -1,2 +0,0 @@ -isAssociatedWith | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isEnumFieldType.html b/docs/api/functions/aws_amplify.datastore.isEnumFieldType.html deleted file mode 100644 index 3ec677ab00e..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isEnumFieldType.html +++ /dev/null @@ -1,2 +0,0 @@ -isEnumFieldType | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isFieldAssociation.html b/docs/api/functions/aws_amplify.datastore.isFieldAssociation.html deleted file mode 100644 index b3000735a65..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isFieldAssociation.html +++ /dev/null @@ -1,2 +0,0 @@ -isFieldAssociation | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isGraphQLScalarType.html b/docs/api/functions/aws_amplify.datastore.isGraphQLScalarType.html deleted file mode 100644 index 76005f74c73..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isGraphQLScalarType.html +++ /dev/null @@ -1,2 +0,0 @@ -isGraphQLScalarType | Amplify JS API Documentation -
  • Parameters

    • obj: any

    Returns obj is "ID" | "String" | "Int" | "Float" | "Boolean" | "AWSDate" | "AWSTime" | "AWSDateTime" | "AWSTimestamp" | "AWSEmail" | "AWSJSON" | "AWSURL" | "AWSPhone" | "AWSIPAddress"

\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isIdentifierObject.html b/docs/api/functions/aws_amplify.datastore.isIdentifierObject.html deleted file mode 100644 index 39718403439..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isIdentifierObject.html +++ /dev/null @@ -1,2 +0,0 @@ -isIdentifierObject | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isModelAttributeAuth.html b/docs/api/functions/aws_amplify.datastore.isModelAttributeAuth.html deleted file mode 100644 index b2701a225a3..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isModelAttributeAuth.html +++ /dev/null @@ -1,2 +0,0 @@ -isModelAttributeAuth | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isModelAttributeCompositeKey.html b/docs/api/functions/aws_amplify.datastore.isModelAttributeCompositeKey.html deleted file mode 100644 index 7c29539ea6f..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isModelAttributeCompositeKey.html +++ /dev/null @@ -1,2 +0,0 @@ -isModelAttributeCompositeKey | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isModelAttributeKey.html b/docs/api/functions/aws_amplify.datastore.isModelAttributeKey.html deleted file mode 100644 index 0af20619595..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isModelAttributeKey.html +++ /dev/null @@ -1,2 +0,0 @@ -isModelAttributeKey | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isModelAttributePrimaryKey.html b/docs/api/functions/aws_amplify.datastore.isModelAttributePrimaryKey.html deleted file mode 100644 index 0338b654768..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isModelAttributePrimaryKey.html +++ /dev/null @@ -1,2 +0,0 @@ -isModelAttributePrimaryKey | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isModelFieldType.html b/docs/api/functions/aws_amplify.datastore.isModelFieldType.html deleted file mode 100644 index 14d84abadf1..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isModelFieldType.html +++ /dev/null @@ -1,2 +0,0 @@ -isModelFieldType | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isNonModelFieldType.html b/docs/api/functions/aws_amplify.datastore.isNonModelFieldType.html deleted file mode 100644 index 417d4d1a51f..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isNonModelFieldType.html +++ /dev/null @@ -1,2 +0,0 @@ -isNonModelFieldType | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isPredicateGroup.html b/docs/api/functions/aws_amplify.datastore.isPredicateGroup.html deleted file mode 100644 index 8b5f8692b3d..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isPredicateGroup.html +++ /dev/null @@ -1,2 +0,0 @@ -isPredicateGroup | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isPredicateObj.html b/docs/api/functions/aws_amplify.datastore.isPredicateObj.html deleted file mode 100644 index f81031267d9..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isPredicateObj.html +++ /dev/null @@ -1,2 +0,0 @@ -isPredicateObj | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isSchemaModel.html b/docs/api/functions/aws_amplify.datastore.isSchemaModel.html deleted file mode 100644 index ad0505edb5a..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isSchemaModel.html +++ /dev/null @@ -1,2 +0,0 @@ -isSchemaModel | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isSchemaModelWithAttributes.html b/docs/api/functions/aws_amplify.datastore.isSchemaModelWithAttributes.html deleted file mode 100644 index 90957e3f9a0..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isSchemaModelWithAttributes.html +++ /dev/null @@ -1,2 +0,0 @@ -isSchemaModelWithAttributes | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isTargetNameAssociation.html b/docs/api/functions/aws_amplify.datastore.isTargetNameAssociation.html deleted file mode 100644 index 6811a40d273..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isTargetNameAssociation.html +++ /dev/null @@ -1,2 +0,0 @@ -isTargetNameAssociation | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.syncExpression-1.html b/docs/api/functions/aws_amplify.datastore.syncExpression-1.html index 1f48bcffdaa..e717af451a0 100644 --- a/docs/api/functions/aws_amplify.datastore.syncExpression-1.html +++ b/docs/api/functions/aws_amplify.datastore.syncExpression-1.html @@ -1,2 +1,11 @@ syncExpression | Amplify JS API Documentation -
\ No newline at end of file +
  • Build an expression that can be used to filter which items of a given Model +are synchronized down from the GraphQL service. E.g.,

    +
    import { DataStore, syncExpression } from 'aws-amplify/datastore';
    import { Post, Comment } from './models';


    DataStore.configure({
    syncExpressions: [
    syncExpression(Post, () => {
    return (post) => post.rating.gt(5);
    }),
    syncExpression(Comment, () => {
    return (comment) => comment.status.eq('active');
    })
    ]
    }); +
    +

    When DataStore starts syncing, only Posts with rating > 5 and Comments with +status === 'active' will be synced down to the user's local store.

    +

    Type Parameters

    Parameters

    Returns Promise<{
        conditionProducer: ConditionProducer<T, A>;
        modelConstructor: PersistentModelConstructor<T>;
    }>

    An sync expression object that can be attached to the DataStore syncExpressions configuration property.

    +
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.storage.isCancelError.html b/docs/api/functions/aws_amplify.storage.isCancelError.html index f3a0b9c293b..d24421a88ab 100644 --- a/docs/api/functions/aws_amplify.storage.isCancelError.html +++ b/docs/api/functions/aws_amplify.storage.isCancelError.html @@ -1,4 +1,8 @@ isCancelError | Amplify JS API Documentation
  • Check if an error is caused by user calling cancel() on a upload/download task. If an overwriting error is supplied to task.cancel(errorOverwrite), this function will return false.

    -

    Parameters

    • error: unknown

    Returns error is CanceledError

\ No newline at end of file +

Parameters

Returns error is CanceledError

+
\ No newline at end of file diff --git a/docs/api/interfaces/aws_amplify.auth._Reference_Types_.AuthSignOutInput.html b/docs/api/interfaces/aws_amplify.auth._Reference_Types_.AuthSignOutInput.html index 31c54915f61..ff7c2a06a74 100644 --- a/docs/api/interfaces/aws_amplify.auth._Reference_Types_.AuthSignOutInput.html +++ b/docs/api/interfaces/aws_amplify.auth._Reference_Types_.AuthSignOutInput.html @@ -1,3 +1,4 @@ AuthSignOutInput | Amplify JS API Documentation -
interface AuthSignOutInput {
    global: boolean;
}

Properties

Properties

global: boolean
\ No newline at end of file +
interface AuthSignOutInput {
    global: boolean;
    oauth?: {
        redirectUrl?: string;
    };
}

Properties

Properties

global: boolean
oauth?: {
    redirectUrl?: string;
}

Type declaration

  • Optional redirectUrl?: string
\ No newline at end of file diff --git a/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.AuthTokenOrchestrator.html b/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.AuthTokenOrchestrator.html index 565c8461936..d5ef1408e1a 100644 --- a/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.AuthTokenOrchestrator.html +++ b/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.AuthTokenOrchestrator.html @@ -1,9 +1,11 @@ AuthTokenOrchestrator | Amplify JS API Documentation -
interface AuthTokenOrchestrator {
    clearDeviceMetadata(username?): Promise<void>;
    clearTokens(): Promise<void>;
    getDeviceMetadata(username?): Promise<null | DeviceMetadata>;
    getTokens(options?): Promise<null | AuthTokens & {
        signInDetails?: CognitoAuthSignInDetails;
    }>;
    setAuthTokenStore(tokenStore): void;
    setTokenRefresher(tokenRefresher): void;
    setTokens(__namedParameters): Promise<void>;
}

Implemented by

Methods

clearDeviceMetadata +
interface AuthTokenOrchestrator {
    clearDeviceMetadata(username?): Promise<void>;
    clearTokens(): Promise<void>;
    getDeviceMetadata(username?): Promise<null | DeviceMetadata>;
    getOAuthMetadata(): Promise<null | OAuthMetadata>;
    getTokens(options?): Promise<null | AuthTokens & {
        signInDetails?: CognitoAuthSignInDetails;
    }>;
    setAuthTokenStore(tokenStore): void;
    setOAuthMetadata(metadata): Promise<void>;
    setTokenRefresher(tokenRefresher): void;
    setTokens(__namedParameters): Promise<void>;
}

Implemented by

Methods

  • Parameters

    • Optional username: string

    Returns Promise<void>

  • Returns Promise<void>

  • Parameters

    Returns void

  • Parameters

    Returns void

\ No newline at end of file +

Methods

  • Parameters

    • Optional username: string

    Returns Promise<void>

  • Returns Promise<void>

  • Parameters

    Returns void

  • Parameters

    Returns Promise<void>

  • Parameters

    Returns void

\ No newline at end of file diff --git a/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.AuthTokenStore.html b/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.AuthTokenStore.html index fab9c1cd630..cd4a38d5034 100644 --- a/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.AuthTokenStore.html +++ b/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.AuthTokenStore.html @@ -1,9 +1,11 @@ AuthTokenStore | Amplify JS API Documentation -
interface AuthTokenStore {
    clearDeviceMetadata(username?): Promise<void>;
    clearTokens(): Promise<void>;
    getDeviceMetadata(username?): Promise<null | DeviceMetadata>;
    getLastAuthUser(): Promise<string>;
    loadTokens(): Promise<null | CognitoAuthTokens>;
    setKeyValueStorage(keyValueStorage): void;
    storeTokens(tokens): Promise<void>;
}

Implemented by

Methods

clearDeviceMetadata +
interface AuthTokenStore {
    clearDeviceMetadata(username?): Promise<void>;
    clearTokens(): Promise<void>;
    getDeviceMetadata(username?): Promise<null | DeviceMetadata>;
    getLastAuthUser(): Promise<string>;
    getOAuthMetadata(): Promise<null | OAuthMetadata>;
    loadTokens(): Promise<null | CognitoAuthTokens>;
    setKeyValueStorage(keyValueStorage): void;
    setOAuthMetadata(metadata): Promise<void>;
    storeTokens(tokens): Promise<void>;
}

Implemented by

Methods

  • Parameters

    • Optional username: string

    Returns Promise<void>

  • Returns Promise<void>

  • Returns Promise<string>

  • Parameters

    Returns Promise<void>

\ No newline at end of file +

Methods

  • Parameters

    • Optional username: string

    Returns Promise<void>

  • Returns Promise<void>

  • Returns Promise<string>

  • Parameters

    Returns Promise<void>

  • Parameters

    Returns Promise<void>

\ No newline at end of file diff --git a/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.OAuthMetadata.html b/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.OAuthMetadata.html new file mode 100644 index 00000000000..5c3d5d0b322 --- /dev/null +++ b/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.OAuthMetadata.html @@ -0,0 +1,3 @@ +OAuthMetadata | Amplify JS API Documentation +
interface OAuthMetadata {
    oauthSignIn: boolean;
}

Properties

Properties

oauthSignIn: boolean
\ No newline at end of file diff --git a/docs/api/modules/_aws_amplify_adapter_nextjs.html b/docs/api/modules/_aws_amplify_adapter_nextjs.html index 685f5023bc6..1ed6caaeb92 100644 --- a/docs/api/modules/_aws_amplify_adapter_nextjs.html +++ b/docs/api/modules/_aws_amplify_adapter_nextjs.html @@ -1,5 +1,5 @@ -@aws-amplify/adapter-nextjs - v1.2.13 | Amplify JS API Documentation -

Module @aws-amplify/adapter-nextjs - v1.2.13

This package contains the AWS Amplify Next.js Adapter. For more information on using Next.js in your application please reference the Amplify Dev Center.

+@aws-amplify/adapter-nextjs - v1.2.17 | Amplify JS API Documentation +

Module @aws-amplify/adapter-nextjs - v1.2.17

This package contains the AWS Amplify Next.js Adapter. For more information on using Next.js in your application please reference the Amplify Dev Center.

Index

Modules

api index utils diff --git a/docs/api/modules/_aws_amplify_datastore_storage_adapter.html b/docs/api/modules/_aws_amplify_datastore_storage_adapter.html index b7a1cf0f9df..44d0c2fe117 100644 --- a/docs/api/modules/_aws_amplify_datastore_storage_adapter.html +++ b/docs/api/modules/_aws_amplify_datastore_storage_adapter.html @@ -1,5 +1,5 @@ -@aws-amplify/datastore-storage-adapter - v2.1.45 | Amplify JS API Documentation -

Module @aws-amplify/datastore-storage-adapter - v2.1.45

This package contains the AWS Amplify DataStore storage adapter. For more information on using the DataStore storage adapter in your application please reference the Amplify Dev Center.

+@aws-amplify/datastore-storage-adapter - v2.1.49 | Amplify JS API Documentation +

Module @aws-amplify/datastore-storage-adapter - v2.1.49

This package contains the AWS Amplify DataStore storage adapter. For more information on using the DataStore storage adapter in your application please reference the Amplify Dev Center.

Index

Modules

ExpoSQLiteAdapter/ExpoSQLiteAdapter SQLiteAdapter/SQLiteAdapter index diff --git a/docs/api/modules/_aws_amplify_geo.html b/docs/api/modules/_aws_amplify_geo.html index c3676097260..66383451311 100644 --- a/docs/api/modules/_aws_amplify_geo.html +++ b/docs/api/modules/_aws_amplify_geo.html @@ -1,5 +1,5 @@ -@aws-amplify/geo - v3.0.43 | Amplify JS API Documentation -

Module @aws-amplify/geo - v3.0.43

This package contains the AWS Amplify Geo category. For more information on using Geo in your application please reference the Amplify Dev Center.

+@aws-amplify/geo - v3.0.47 | Amplify JS API Documentation +

Module @aws-amplify/geo - v3.0.47

This package contains the AWS Amplify Geo category. For more information on using Geo in your application please reference the Amplify Dev Center.

Index

Modules

\ No newline at end of file diff --git a/docs/api/modules/_aws_amplify_interactions.html b/docs/api/modules/_aws_amplify_interactions.html index a2bd17d5463..85a698f2c4f 100644 --- a/docs/api/modules/_aws_amplify_interactions.html +++ b/docs/api/modules/_aws_amplify_interactions.html @@ -1,5 +1,5 @@ -@aws-amplify/interactions - v6.0.42 | Amplify JS API Documentation -

Module @aws-amplify/interactions - v6.0.42

This package contains the AWS Amplify Interactions category. For more information on using Interactions in your application please reference the Amplify Dev Center.

+@aws-amplify/interactions - v6.0.46 | Amplify JS API Documentation +

Module @aws-amplify/interactions - v6.0.46

This package contains the AWS Amplify Interactions category. For more information on using Interactions in your application please reference the Amplify Dev Center.

Index

Modules

index lex-v1 lex-v2 diff --git a/docs/api/modules/_aws_amplify_predictions.html b/docs/api/modules/_aws_amplify_predictions.html index 32e5fb49e56..66fee9cc27a 100644 --- a/docs/api/modules/_aws_amplify_predictions.html +++ b/docs/api/modules/_aws_amplify_predictions.html @@ -1,5 +1,5 @@ -@aws-amplify/predictions - v6.1.18 | Amplify JS API Documentation -

Module @aws-amplify/predictions - v6.1.18

This package contains the AWS Amplify Predictions category. For more information on using Predictions in your application please reference the Amplify Dev Center.

+@aws-amplify/predictions - v6.1.22 | Amplify JS API Documentation +

Module @aws-amplify/predictions - v6.1.22

This package contains the AWS Amplify Predictions category. For more information on using Predictions in your application please reference the Amplify Dev Center.

Index

Modules

Interfaces

IdentifyEntitiesInput IdentifyEntitiesOutput diff --git a/docs/api/modules/_aws_amplify_pubsub.html b/docs/api/modules/_aws_amplify_pubsub.html index 45940312abd..0f49860a3f3 100644 --- a/docs/api/modules/_aws_amplify_pubsub.html +++ b/docs/api/modules/_aws_amplify_pubsub.html @@ -1,5 +1,5 @@ -@aws-amplify/pubsub - v6.1.18 | Amplify JS API Documentation -

Module @aws-amplify/pubsub - v6.1.18

This package contains the AWS Amplify PubSub category. For more information on using PubSub in your application please reference the Amplify Dev Center.

+@aws-amplify/pubsub - v6.1.22 | Amplify JS API Documentation +

Module @aws-amplify/pubsub - v6.1.22

This package contains the AWS Amplify PubSub category. For more information on using PubSub in your application please reference the Amplify Dev Center.

Index

Modules

clients/iot clients/mqtt index diff --git a/docs/api/modules/aws_amplify.auth_cognito._Reference_Types_.html b/docs/api/modules/aws_amplify.auth_cognito._Reference_Types_.html index c722d757ef6..28b2f5a62b8 100644 --- a/docs/api/modules/aws_amplify.auth_cognito._Reference_Types_.html +++ b/docs/api/modules/aws_amplify.auth_cognito._Reference_Types_.html @@ -6,6 +6,7 @@ DeviceMetadata Identity IdentityIdStore +OAuthMetadata

Type Aliases

AuthKeys CognitoAuthTokens TokenRefresher diff --git a/docs/api/modules/aws_amplify.datastore._Reference_Types_.__home_runner_work_amplify_js_amplify_js_amplify_js_packages_datastore_dist_esm_types_.html b/docs/api/modules/aws_amplify.datastore._Reference_Types_.__home_runner_work_amplify_js_amplify_js_amplify_js_packages_datastore_dist_esm_types_.html index 9e9710c0762..20427856326 100644 --- a/docs/api/modules/aws_amplify.datastore._Reference_Types_.__home_runner_work_amplify_js_amplify_js_amplify_js_packages_datastore_dist_esm_types_.html +++ b/docs/api/modules/aws_amplify.datastore._Reference_Types_.__home_runner_work_amplify_js_amplify_js_amplify_js_packages_datastore_dist_esm_types_.html @@ -118,22 +118,6 @@ WithoutNevers __identifierBrand__ __modelMeta__ -isAssociatedWith -isEnumFieldType -isFieldAssociation -isGraphQLScalarType -isIdentifierObject -isModelAttributeAuth -isModelAttributeCompositeKey -isModelAttributeKey -isModelAttributePrimaryKey -isModelFieldType -isNonModelFieldType -isPredicateGroup -isPredicateObj -isSchemaModel -isSchemaModelWithAttributes -isTargetNameAssociation syncExpression

Interfaces

References

Re-exports AllFieldOperators
Re-exports AllOperators
Re-exports AmplifyContext
Re-exports AuthModeStrategy
Re-exports AuthModeStrategyParams
Re-exports AuthModeStrategyReturn
Re-exports AuthModeStrategyType
Re-exports AuthProviders
Re-exports AuthorizationRule
Re-exports CompositeIdentifier
Re-exports ConflictHandler
Re-exports ControlMessageType
Re-exports CustomIdentifier
Re-exports DISCARD
Re-exports DataStoreConfig
Re-exports DataStoreSchema
Re-exports DataStoreSnapshot
Re-exports DefaultPersistentModelMetaData
Re-exports DeferredCallbackResolverOptions
Re-exports ErrorHandler
Re-exports ErrorType
Re-exports GraphQLCondition
Re-exports GraphQLField
Re-exports GraphQLFilter
Re-exports GraphQLScalarType
Re-exports Identifier
Re-exports IdentifierBrand
Re-exports IdentifierFieldOrIdentifierObject
Re-exports IdentifierFieldValue
Re-exports IdentifierFields
Re-exports IdentifierFieldsForInit
Re-exports IndexesType
Re-exports InternalSchema
Re-exports InternalSubscriptionMessage
Re-exports KeyType
Re-exports LimitTimerRaceResolvedValues
Re-exports ManagedIdentifier
Re-exports MatchableTypes
Re-exports MetadataOrDefault
Re-exports MetadataReadOnlyFields
Re-exports ModelAssociation
Re-exports ModelAttribute
Re-exports ModelAttributeAuth
Re-exports ModelAttributeAuthAllow
Re-exports ModelAttributeAuthProperty
Re-exports ModelAttributeAuthProvider
Re-exports ModelAttributes
Re-exports ModelAuthModes
Re-exports ModelAuthRule
Re-exports ModelField
Re-exports ModelFieldType
Re-exports ModelFields
Re-exports ModelInit
Re-exports ModelInitBase
Re-exports ModelInstanceMetadata
Re-exports ModelKeys
Re-exports ModelMeta
Re-exports ModelOperation
Re-exports ModelPredicate
Re-exports ModelPredicateAggregateExtender
Re-exports ModelPredicateExtender
Re-exports ModelPredicateNegation
Re-exports ModelPredicateOperator
Re-exports MutableModel
Re-exports NamespaceResolver
Re-exports NonModelFieldType
Re-exports NonModelTypeConstructor
Re-exports NonNeverKeys
Re-exports ObserveQueryOptions
Re-exports OpType
Re-exports OptionallyManagedIdentifier
Re-exports PaginationInput
Re-exports PersistentModel
Re-exports PersistentModelConstructor
Re-exports PersistentModelMetaData
Re-exports PredicateExpression
Re-exports PredicateFieldType
Re-exports PredicateGroups
Re-exports PredicateInternalsKey
Re-exports PredicateObject
Re-exports PredicatesGroup
Re-exports ProcessName
Re-exports ProducerModelPredicate
Re-exports ProducerPaginationInput
Re-exports ProducerSortPredicate
Re-exports QueryOne
Re-exports RecursiveModelPredicate
Re-exports RecursiveModelPredicateAggregateExtender
Re-exports RecursiveModelPredicateExtender
Re-exports RecursiveModelPredicateNegation
Re-exports RecursiveModelPredicateOperator
Re-exports RelationType
Re-exports RelationshipType
Re-exports Scalar
Re-exports Schema
Re-exports SchemaModel
Re-exports SchemaModels
Re-exports SchemaNamespace
Re-exports SchemaNamespaces
Re-exports SchemaNonModel
Re-exports SchemaNonModels
Re-exports SettableFieldType
Re-exports SortDirection
Re-exports SortPredicate
Re-exports SortPredicateExpression
Re-exports SortPredicateObject
Re-exports SortPredicatesGroup
Re-exports SubscriptionMessage
Re-exports SyncConflict
Re-exports SyncError
Re-exports SyncExpression
Re-exports SystemComponent
Re-exports TypeConstructorMap
Re-exports UserSchema
Re-exports V5ModelPredicate
Re-exports ValuePredicate
Re-exports WithoutNevers
Re-exports __identifierBrand__
Re-exports __modelMeta__
Re-exports isAssociatedWith
Re-exports isEnumFieldType
Re-exports isFieldAssociation
Re-exports isGraphQLScalarType
Re-exports isIdentifierObject
Re-exports isModelAttributeAuth
Re-exports isModelAttributeCompositeKey
Re-exports isModelAttributeKey
Re-exports isModelAttributePrimaryKey
Re-exports isModelFieldType
Re-exports isNonModelFieldType
Re-exports isPredicateGroup
Re-exports isPredicateObj
Re-exports isSchemaModel
Re-exports isSchemaModelWithAttributes
Re-exports isTargetNameAssociation
Re-exports syncExpression
\ No newline at end of file +

References

Re-exports AllFieldOperators
Re-exports AllOperators
Re-exports AmplifyContext
Re-exports AuthModeStrategy
Re-exports AuthModeStrategyParams
Re-exports AuthModeStrategyReturn
Re-exports AuthModeStrategyType
Re-exports AuthProviders
Re-exports AuthorizationRule
Re-exports CompositeIdentifier
Re-exports ConflictHandler
Re-exports ControlMessageType
Re-exports CustomIdentifier
Re-exports DISCARD
Re-exports DataStoreConfig
Re-exports DataStoreSchema
Re-exports DataStoreSnapshot
Re-exports DefaultPersistentModelMetaData
Re-exports DeferredCallbackResolverOptions
Re-exports ErrorHandler
Re-exports ErrorType
Re-exports GraphQLCondition
Re-exports GraphQLField
Re-exports GraphQLFilter
Re-exports GraphQLScalarType
Re-exports Identifier
Re-exports IdentifierBrand
Re-exports IdentifierFieldOrIdentifierObject
Re-exports IdentifierFieldValue
Re-exports IdentifierFields
Re-exports IdentifierFieldsForInit
Re-exports IndexesType
Re-exports InternalSchema
Re-exports InternalSubscriptionMessage
Re-exports KeyType
Re-exports LimitTimerRaceResolvedValues
Re-exports ManagedIdentifier
Re-exports MatchableTypes
Re-exports MetadataOrDefault
Re-exports MetadataReadOnlyFields
Re-exports ModelAssociation
Re-exports ModelAttribute
Re-exports ModelAttributeAuth
Re-exports ModelAttributeAuthAllow
Re-exports ModelAttributeAuthProperty
Re-exports ModelAttributeAuthProvider
Re-exports ModelAttributes
Re-exports ModelAuthModes
Re-exports ModelAuthRule
Re-exports ModelField
Re-exports ModelFieldType
Re-exports ModelFields
Re-exports ModelInit
Re-exports ModelInitBase
Re-exports ModelInstanceMetadata
Re-exports ModelKeys
Re-exports ModelMeta
Re-exports ModelOperation
Re-exports ModelPredicate
Re-exports ModelPredicateAggregateExtender
Re-exports ModelPredicateExtender
Re-exports ModelPredicateNegation
Re-exports ModelPredicateOperator
Re-exports MutableModel
Re-exports NamespaceResolver
Re-exports NonModelFieldType
Re-exports NonModelTypeConstructor
Re-exports NonNeverKeys
Re-exports ObserveQueryOptions
Re-exports OpType
Re-exports OptionallyManagedIdentifier
Re-exports PaginationInput
Re-exports PersistentModel
Re-exports PersistentModelConstructor
Re-exports PersistentModelMetaData
Re-exports PredicateExpression
Re-exports PredicateFieldType
Re-exports PredicateGroups
Re-exports PredicateInternalsKey
Re-exports PredicateObject
Re-exports PredicatesGroup
Re-exports ProcessName
Re-exports ProducerModelPredicate
Re-exports ProducerPaginationInput
Re-exports ProducerSortPredicate
Re-exports QueryOne
Re-exports RecursiveModelPredicate
Re-exports RecursiveModelPredicateAggregateExtender
Re-exports RecursiveModelPredicateExtender
Re-exports RecursiveModelPredicateNegation
Re-exports RecursiveModelPredicateOperator
Re-exports RelationType
Re-exports RelationshipType
Re-exports Scalar
Re-exports Schema
Re-exports SchemaModel
Re-exports SchemaModels
Re-exports SchemaNamespace
Re-exports SchemaNamespaces
Re-exports SchemaNonModel
Re-exports SchemaNonModels
Re-exports SettableFieldType
Re-exports SortDirection
Re-exports SortPredicate
Re-exports SortPredicateExpression
Re-exports SortPredicateObject
Re-exports SortPredicatesGroup
Re-exports SubscriptionMessage
Re-exports SyncConflict
Re-exports SyncError
Re-exports SyncExpression
Re-exports SystemComponent
Re-exports TypeConstructorMap
Re-exports UserSchema
Re-exports V5ModelPredicate
Re-exports ValuePredicate
Re-exports WithoutNevers
Re-exports __identifierBrand__
Re-exports __modelMeta__
Re-exports syncExpression
\ No newline at end of file diff --git a/docs/api/modules/aws_amplify.datastore.html b/docs/api/modules/aws_amplify.datastore.html index 6f0c4387067..7b988c46f20 100644 --- a/docs/api/modules/aws_amplify.datastore.html +++ b/docs/api/modules/aws_amplify.datastore.html @@ -132,21 +132,5 @@ __modelMeta__ utils

Functions

\ No newline at end of file diff --git a/docs/api/modules/aws_amplify.html b/docs/api/modules/aws_amplify.html index 8538cd19e81..13dc39c24b9 100644 --- a/docs/api/modules/aws_amplify.html +++ b/docs/api/modules/aws_amplify.html @@ -1,5 +1,5 @@ -aws-amplify - v6.5.1 | Amplify JS API Documentation -

Module aws-amplify - v6.5.1

AWS Amplify Package - aws-amplify

AWS Amplify is a JavaScript library for frontend and mobile developers building cloud-enabled applications. The library is a declarative interface across different categories of operations in order to make common tasks easier to add into your application. The default implementation works with Amazon Web Services (AWS) resources but is designed to be open and pluggable for usage with other cloud services that wish to provide an implementation or custom backends.

+aws-amplify - v6.6.0 | Amplify JS API Documentation +

Module aws-amplify - v6.6.0

AWS Amplify Package - aws-amplify

AWS Amplify is a JavaScript library for frontend and mobile developers building cloud-enabled applications. The library is a declarative interface across different categories of operations in order to make common tasks easier to add into your application. The default implementation works with Amazon Web Services (AWS) resources but is designed to be open and pluggable for usage with other cloud services that wish to provide an implementation or custom backends.

Documentation is available here.

Index

Modules

adapter-core analytics diff --git a/package.json b/package.json index a0348c9f736..7d5edc30915 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ "eslint-plugin-promise": "^6.1.1", "eslint-plugin-unused-imports": "^3.0.0", "expect": "^29.7.0", - "glob": "10.3.10", + "glob": "^10.3.10", "husky": "^9.0.11", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", @@ -137,7 +137,9 @@ "**/glob/minipass": "6.0.2", "nx": "16.7.0", "xml2js": "0.5.0", - "tar": "6.2.1", - "glob@^10.0.0": "10.3.10" + "tar": "6.2.1" + }, + "overrides": { + "tar": "6.2.1" } } diff --git a/packages/adapter-nextjs/CHANGELOG.md b/packages/adapter-nextjs/CHANGELOG.md index e75880a7435..f6189b7fd38 100644 --- a/packages/adapter-nextjs/CHANGELOG.md +++ b/packages/adapter-nextjs/CHANGELOG.md @@ -3,6 +3,24 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.17](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.16...@aws-amplify/adapter-nextjs@1.2.17) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/adapter-nextjs + +## [1.2.16](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.15...@aws-amplify/adapter-nextjs@1.2.16) (2024-09-03) + +### Bug Fixes + +- **adapter-nextjs:** duplicate response Set-Cookie headers in pages router ([#13765](https://github.com/aws-amplify/amplify-js/issues/13765)) ([3fedf63](https://github.com/aws-amplify/amplify-js/commit/3fedf6347823611ef5e28554911cf65c1419fce5)) + +## [1.2.15](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.14...@aws-amplify/adapter-nextjs@1.2.15) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/adapter-nextjs + +## [1.2.14](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.13...@aws-amplify/adapter-nextjs@1.2.14) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/adapter-nextjs + ## [1.2.13](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.12...@aws-amplify/adapter-nextjs@1.2.13) (2024-08-15) **Note:** Version bump only for package @aws-amplify/adapter-nextjs diff --git a/packages/adapter-nextjs/__tests__/utils/createCookieStorageAdapterFromNextServerContext.test.ts b/packages/adapter-nextjs/__tests__/utils/createCookieStorageAdapterFromNextServerContext.test.ts index e27b4243511..a42ec085e9c 100644 --- a/packages/adapter-nextjs/__tests__/utils/createCookieStorageAdapterFromNextServerContext.test.ts +++ b/packages/adapter-nextjs/__tests__/utils/createCookieStorageAdapterFromNextServerContext.test.ts @@ -412,6 +412,41 @@ describe('createCookieStorageAdapterFromNextServerContext', () => { 'key3=;Expires=Thu, 01 Jan 1970 00:00:00 GMT', ]); }); + + it('does not add duplicate cookies when the cookies are defined in the response Set-Cookie headers', () => { + const mockExistingSetCookieValues = [ + 'CognitoIdentityServiceProvider.1234.accessToken=1234;Path=/', + 'CognitoIdentityServiceProvider.1234.refreshToken=1234;Path=/', + 'CognitoIdentityServiceProvider.1234.identityId=;Expires=Thu, 01 Jan 1970 00:00:00 GMT', + ]; + + const request = new IncomingMessage(new Socket()); + const response = new ServerResponse(request); + const appendHeaderSpy = jest.spyOn(response, 'appendHeader'); + const getHeaderSpy = jest.spyOn(response, 'getHeader'); + + Object.defineProperty(request, 'cookies', { + get() { + return {}; + }, + }); + + getHeaderSpy.mockReturnValue(mockExistingSetCookieValues); + + const result = createCookieStorageAdapterFromNextServerContext({ + request: request as any, + response, + }); + + result.set('CognitoIdentityServiceProvider.1234.accessToken', '5678'); + expect(appendHeaderSpy).not.toHaveBeenCalled(); + + result.set('CognitoIdentityServiceProvider.1234.refreshToken', '5678'); + expect(appendHeaderSpy).not.toHaveBeenCalled(); + + result.delete('CognitoIdentityServiceProvider.1234.identityId'); + expect(appendHeaderSpy).not.toHaveBeenCalled(); + }); }); it('should throw error when no cookie storage adapter is created from the context', () => { diff --git a/packages/adapter-nextjs/package.json b/packages/adapter-nextjs/package.json index fda15ce00f9..ca1d9909000 100644 --- a/packages/adapter-nextjs/package.json +++ b/packages/adapter-nextjs/package.json @@ -1,7 +1,7 @@ { "author": "Amazon Web Services", "name": "@aws-amplify/adapter-nextjs", - "version": "1.2.13", + "version": "1.2.17", "description": "The adapter for the supporting of using Amplify APIs in Next.js.", "peerDependencies": { "aws-amplify": "^6.0.7", @@ -16,7 +16,7 @@ "@types/node": "^20.3.1", "@types/react": "^18.2.13", "@types/react-dom": "^18.2.6", - "aws-amplify": "6.5.1", + "aws-amplify": "6.6.0", "jest-fetch-mock": "3.0.3", "next": ">= 13.5.0 < 15.0.0", "typescript": "5.0.2" diff --git a/packages/adapter-nextjs/src/utils/createCookieStorageAdapterFromNextServerContext.ts b/packages/adapter-nextjs/src/utils/createCookieStorageAdapterFromNextServerContext.ts index 843235b7288..e3f99cbf96c 100644 --- a/packages/adapter-nextjs/src/utils/createCookieStorageAdapterFromNextServerContext.ts +++ b/packages/adapter-nextjs/src/utils/createCookieStorageAdapterFromNextServerContext.ts @@ -171,20 +171,44 @@ const createCookieStorageAdapterFromGetServerSidePropsContext = ( return allCookies; }, set(name, value, options) { + const encodedName = ensureEncodedForJSCookie(name); + + const existingValues = getExistingSetCookieValues( + response.getHeader('Set-Cookie'), + ); + + // if the cookies have already been set, we don't need to set them again. + if ( + existingValues.findIndex( + cookieValue => + cookieValue.startsWith(`${encodedName}=`) && + !cookieValue.startsWith(`${encodedName}=;`), + ) > -1 + ) { + return; + } + response.appendHeader( 'Set-Cookie', - `${ensureEncodedForJSCookie(name)}=${value};${ + `${encodedName}=${value};${ options ? serializeSetCookieOptions(options) : '' }`, ); }, delete(name) { - response.appendHeader( - 'Set-Cookie', - `${ensureEncodedForJSCookie( - name, - )}=;Expires=${DATE_IN_THE_PAST.toUTCString()}`, + const encodedName = ensureEncodedForJSCookie(name); + const setCookieValue = `${encodedName}=;Expires=${DATE_IN_THE_PAST.toUTCString()}`; + const existingValues = getExistingSetCookieValues( + response.getHeader('Set-Cookie'), ); + + // if the value for cookie deletion is already in the Set-Cookie header, we + // don't need to add the deletion value again. + if (existingValues.includes(setCookieValue)) { + return; + } + + response.appendHeader('Set-Cookie', setCookieValue); }, }; }; @@ -250,3 +274,8 @@ const serializeSetCookieOptions = ( // we are not using those chars in the auth keys. const ensureEncodedForJSCookie = (name: string): string => encodeURIComponent(name).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent); + +const getExistingSetCookieValues = ( + values: number | string | string[] | undefined, +): string[] => + values === undefined ? [] : Array.isArray(values) ? values : [String(values)]; diff --git a/packages/analytics/CHANGELOG.md b/packages/analytics/CHANGELOG.md index 548488213f2..18dfc9a627c 100644 --- a/packages/analytics/CHANGELOG.md +++ b/packages/analytics/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [7.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.46...@aws-amplify/analytics@7.0.47) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/analytics + +## [7.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.45...@aws-amplify/analytics@7.0.46) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/analytics + +## [7.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.44...@aws-amplify/analytics@7.0.45) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/analytics + +## [7.0.44](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.43...@aws-amplify/analytics@7.0.44) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/analytics + ## [7.0.43](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.42...@aws-amplify/analytics@7.0.43) (2024-08-15) **Note:** Version bump only for package @aws-amplify/analytics diff --git a/packages/analytics/package.json b/packages/analytics/package.json index 4f18a70955d..49e5b49d96d 100644 --- a/packages/analytics/package.json +++ b/packages/analytics/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/analytics", - "version": "7.0.43", + "version": "7.0.47", "description": "Analytics category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -103,8 +103,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", - "@aws-amplify/react-native": "1.1.4", + "@aws-amplify/core": "6.4.0", + "@aws-amplify/react-native": "1.1.5", "@aws-sdk/types": "3.398.0", "typescript": "5.0.2" } diff --git a/packages/api-graphql/CHANGELOG.md b/packages/api-graphql/CHANGELOG.md index 8d4f758aff9..2635af8b137 100644 --- a/packages/api-graphql/CHANGELOG.md +++ b/packages/api-graphql/CHANGELOG.md @@ -3,6 +3,26 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.3.0](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.2.1...@aws-amplify/api-graphql@4.3.0) (2024-09-04) + +### Features + +- **api-graphql:** pass authToken via subprotocol ([#13727](https://github.com/aws-amplify/amplify-js/issues/13727)) ([ced891c](https://github.com/aws-amplify/amplify-js/commit/ced891c2e4f6b0f1fdeaf44ab80cae9d585b6d15)) + +## [4.2.1](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.2.0...@aws-amplify/api-graphql@4.2.1) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/api-graphql + +# [4.2.0](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.1.15...@aws-amplify/api-graphql@4.2.0) (2024-08-26) + +### Features + +- **api-graphql:** AppSync realtime - include custom headers as query string params ([#13735](https://github.com/aws-amplify/amplify-js/issues/13735)) ([5647497](https://github.com/aws-amplify/amplify-js/commit/56474971f45821d5049f9e8bc7ecbfc7810ea093)) + +## [4.1.15](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.1.14...@aws-amplify/api-graphql@4.1.15) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/api-graphql + ## [4.1.14](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.1.13...@aws-amplify/api-graphql@4.1.14) (2024-08-15) **Note:** Version bump only for package @aws-amplify/api-graphql diff --git a/packages/api-graphql/__tests__/AWSAppSyncRealTimeProvider.test.ts b/packages/api-graphql/__tests__/AWSAppSyncRealTimeProvider.test.ts index 29563594a30..d8456f5b373 100644 --- a/packages/api-graphql/__tests__/AWSAppSyncRealTimeProvider.test.ts +++ b/packages/api-graphql/__tests__/AWSAppSyncRealTimeProvider.test.ts @@ -245,8 +245,8 @@ describe('AWSAppSyncRealTimeProvider', () => { expect(newSocketSpy).toHaveBeenNthCalledWith( 1, - 'ws://localhost:8080/realtime?header=&payload=e30=', - 'graphql-ws', + 'ws://localhost:8080/realtime', + ['graphql-ws', 'header-'], ); }); @@ -271,8 +271,8 @@ describe('AWSAppSyncRealTimeProvider', () => { expect(newSocketSpy).toHaveBeenNthCalledWith( 1, - 'wss://localhost:8080/realtime?header=&payload=e30=', - 'graphql-ws', + 'wss://localhost:8080/realtime', + ['graphql-ws', 'header-'], ); }); @@ -298,8 +298,84 @@ describe('AWSAppSyncRealTimeProvider', () => { expect(newSocketSpy).toHaveBeenNthCalledWith( 1, - 'wss://testaccounturl123456789123.appsync-realtime-api.us-east-1.amazonaws.com/graphql?header=&payload=e30=', - 'graphql-ws', + 'wss://testaccounturl123456789123.appsync-realtime-api.us-east-1.amazonaws.com/graphql', + ['graphql-ws', 'header-'], + ); + }); + + test('subscription generates expected auth token', async () => { + expect.assertions(1); + + const newSocketSpy = jest + .spyOn(provider, 'getNewWebSocket') + .mockImplementation(() => { + fakeWebSocketInterface.newWebSocket(); + return fakeWebSocketInterface.webSocket; + }); + + provider + .subscribe({ + appSyncGraphqlEndpoint: + 'https://testaccounturl123456789123.appsync-api.us-east-1.amazonaws.com/graphql', + // using custom auth instead of apiKey, because the latter inserts a timestamp header => expected value changes + authenticationType: 'lambda', + additionalHeaders: { + Authorization: 'my-custom-auth-token', + }, + }) + .subscribe({ error: () => {} }); + + // Wait for the socket to be initialize + await fakeWebSocketInterface.readyForUse; + + /* + Regular base64 encoding of auth header {"Authorization":"my-custom-auth-token","host":"testaccounturl123456789123.appsync-api.us-east-1.amazonaws.com"} + Is: `eyJBdXRob3JpemF0aW9uIjoibXktY3VzdG9tLWF1dGgtdG9rZW4iLCJob3N0IjoidGVzdGFjY291bnR1cmwxMjM0NTY3ODkxMjMuYXBwc3luYy1hcGkudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20ifQ==` + (note `==` at the end of the string) + base64url encoding is expected to drop padding chars `=` + */ + + expect(newSocketSpy).toHaveBeenNthCalledWith( + 1, + 'wss://testaccounturl123456789123.appsync-realtime-api.us-east-1.amazonaws.com/graphql', + [ + 'graphql-ws', + 'header-eyJBdXRob3JpemF0aW9uIjoibXktY3VzdG9tLWF1dGgtdG9rZW4iLCJob3N0IjoidGVzdGFjY291bnR1cmwxMjM0NTY3ODkxMjMuYXBwc3luYy1hcGkudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20ifQ', + ], + ); + }); + + test('subscription generates expected auth token - custom domain', async () => { + expect.assertions(1); + + const newSocketSpy = jest + .spyOn(provider, 'getNewWebSocket') + .mockImplementation(() => { + fakeWebSocketInterface.newWebSocket(); + return fakeWebSocketInterface.webSocket; + }); + + provider + .subscribe({ + appSyncGraphqlEndpoint: 'https://unit-test.testurl.com', + // using custom auth instead of apiKey, because the latter inserts a timestamp header => expected value changes + authenticationType: 'lambda', + additionalHeaders: { + Authorization: 'my-custom-auth-token', + }, + }) + .subscribe({ error: () => {} }); + + // Wait for the socket to be initialize + await fakeWebSocketInterface.readyForUse; + + expect(newSocketSpy).toHaveBeenNthCalledWith( + 1, + 'wss://unit-test.testurl.com/realtime', + [ + 'graphql-ws', + 'header-eyJBdXRob3JpemF0aW9uIjoibXktY3VzdG9tLWF1dGgtdG9rZW4iLCJob3N0IjoidW5pdC10ZXN0LnRlc3R1cmwuY29tIn0', + ], ); }); diff --git a/packages/api-graphql/__tests__/GraphQLAPI.test.ts b/packages/api-graphql/__tests__/GraphQLAPI.test.ts index 43779fee5d6..dd88a7e056b 100644 --- a/packages/api-graphql/__tests__/GraphQLAPI.test.ts +++ b/packages/api-graphql/__tests__/GraphQLAPI.test.ts @@ -1558,4 +1558,60 @@ describe('API test', () => { ); }); }); + + test('request level custom headers are applied to query string', async () => { + Amplify.configure({ + API: { + GraphQL: { + defaultAuthMode: 'lambda', + endpoint: + 'https://testaccounturl123456789123.appsync-api.us-east-1.amazonaws.com/graphql', + region: 'local-host-h4x', + }, + }, + }); + + let done: Function; + const mockedFnHasBeenCalled = new Promise(res => (done = res)); + + const spyon_appsync_realtime = jest + .spyOn( + AWSAppSyncRealTimeProvider.prototype as any, + '_initializeRetryableHandshake', + ) + .mockImplementation( + jest.fn(() => { + done(); // resolve promise when called + }) as any, + ); + + const query = /* GraphQL */ ` + subscription SubscribeToEventComments { + subscribeToEventComments { + eventId + } + } + `; + + const resolvedUrl = + 'wss://testaccounturl123456789123.appsync-realtime-api.us-east-1.amazonaws.com/graphql?x-amz-user-agent=aws-amplify%2F6.4.0+api%2F1+framework%2F2&ex-machina=is+a+good+movie'; + + ( + client.graphql( + { query }, + { + 'x-amz-user-agent': 'aws-amplify/6.4.0 api/1 framework/2', + 'ex-machina': 'is a good movie', + // This should NOT get included in the querystring + Authorization: 'abc12345', + }, + ) as unknown as Observable + ).subscribe(); + + await mockedFnHasBeenCalled; + + expect(spyon_appsync_realtime).toHaveBeenCalledTimes(1); + const subscribeOptions = spyon_appsync_realtime.mock.calls[0][0]; + expect(subscribeOptions).toBe(resolvedUrl); + }); }); diff --git a/packages/api-graphql/__tests__/internals/generateClient.test.ts b/packages/api-graphql/__tests__/internals/generateClient.test.ts index c5104997df1..94ba7bcafe4 100644 --- a/packages/api-graphql/__tests__/internals/generateClient.test.ts +++ b/packages/api-graphql/__tests__/internals/generateClient.test.ts @@ -3,7 +3,7 @@ import { Amplify, AmplifyClassV6 } from '@aws-amplify/core'; import { generateClient } from '../../src/internals'; import configFixture from '../fixtures/modeled/amplifyconfiguration'; import { Schema } from '../fixtures/modeled/schema'; -import { from } from 'rxjs'; +import { Observable, from } from 'rxjs'; import { normalizePostGraphqlCalls, expectSubWithHeaders, @@ -11,6 +11,7 @@ import { expectSubWithlibraryConfigHeaders, mockApiResponse, } from '../utils/index'; +import { AWSAppSyncRealTimeProvider } from '../../src/Providers/AWSAppSyncRealTimeProvider'; const serverManagedFields = { id: 'some-id', @@ -332,6 +333,30 @@ describe('generateClient', () => { expect(normalizePostGraphqlCalls(spy)).toMatchSnapshot(); }); + test('with custom client headers - graphql', async () => { + const headers = { + 'client-header': 'should exist', + }; + + const client = generateClient({ + amplify: Amplify, + headers, + }); + + await client.graphql({ + query: /* GraphQL */ ` + query listPosts { + id + } + `, + }); + + const receivedArgs = normalizePostGraphqlCalls(spy)[0][1]; + const receivedHeaders = receivedArgs.options.headers; + + expect(receivedHeaders).toEqual(expect.objectContaining(headers)); + }); + test('with custom client header functions', async () => { const client = generateClient({ amplify: Amplify, @@ -495,6 +520,39 @@ describe('generateClient', () => { }); }); + test('with client-level custom headers', done => { + const customHeaders = { + 'subscription-header': 'should-exist', + }; + + const client = generateClient({ + amplify: Amplify, + headers: customHeaders, + }); + + const spy = jest.fn(() => from([graphqlMessage])); + (raw.GraphQLAPI as any).appSyncRealTime = { subscribe: spy }; + + client.models.Note.onCreate({ + filter: graphqlVariables.filter, + }).subscribe({ + next(value) { + expectSubWithHeaders( + spy, + 'onCreateNote', + graphqlVariables, + customHeaders, + ); + expect(value).toEqual(expect.objectContaining(noteToSend)); + done(); + }, + error(error) { + expect(error).toBeUndefined(); + done('bad news!'); + }, + }); + }); + test('with a custom header function', done => { const customHeaders = { 'subscription-header-function': 'should-return-this-header', diff --git a/packages/api-graphql/package.json b/packages/api-graphql/package.json index e8dd4c108e5..ae98edafa95 100644 --- a/packages/api-graphql/package.json +++ b/packages/api-graphql/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/api-graphql", - "version": "4.1.14", + "version": "4.3.0", "description": "Api-graphql category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -84,8 +84,8 @@ "server" ], "dependencies": { - "@aws-amplify/api-rest": "4.0.43", - "@aws-amplify/core": "6.3.10", + "@aws-amplify/api-rest": "4.0.47", + "@aws-amplify/core": "6.4.0", "@aws-amplify/data-schema": "^1.0.0", "@aws-sdk/types": "3.387.0", "graphql": "15.8.0", diff --git a/packages/api-graphql/src/Providers/AWSAppSyncRealTimeProvider/index.ts b/packages/api-graphql/src/Providers/AWSAppSyncRealTimeProvider/index.ts index 37cafbf719e..61a1f6149bc 100644 --- a/packages/api-graphql/src/Providers/AWSAppSyncRealTimeProvider/index.ts +++ b/packages/api-graphql/src/Providers/AWSAppSyncRealTimeProvider/index.ts @@ -11,6 +11,7 @@ import { import { signRequest } from '@aws-amplify/core/internals/aws-client-utils'; import { AmplifyUrl, + AmplifyUrlSearchParams, CustomUserAgentDetails, DocumentType, GraphQLAuthMode, @@ -181,7 +182,7 @@ export class AWSAppSyncRealTimeProvider { this.reconnectionMonitor.close(); } - getNewWebSocket(url: string, protocol: string) { + getNewWebSocket(url: string, protocol: string[]) { return new WebSocket(url, protocol); } @@ -712,6 +713,87 @@ export class AWSAppSyncRealTimeProvider { } } + /** + * Strips out `Authorization` header if present + */ + private _extractNonAuthHeaders( + headers?: AWSAppSyncRealTimeProviderOptions['additionalCustomHeaders'], + ): Record { + if (!headers) { + return {}; + } + + if ('Authorization' in headers) { + const { Authorization: _, ...nonAuthHeaders } = headers; + + return nonAuthHeaders; + } + + return headers; + } + + /** + * + * @param headers - http headers + * @returns uri-encoded query parameters derived from custom headers + */ + private _queryParamsFromCustomHeaders( + headers?: AWSAppSyncRealTimeProviderOptions['additionalCustomHeaders'], + ): URLSearchParams { + const nonAuthHeaders = this._extractNonAuthHeaders(headers); + + const params = new AmplifyUrlSearchParams(); + + Object.entries(nonAuthHeaders).forEach(([k, v]) => { + params.append(k, v); + }); + + return params; + } + + /** + * Normalizes AppSync realtime endpoint URL + * + * @param appSyncGraphqlEndpoint - AppSync endpointUri from config + * @param urlParams - URLSearchParams + * @returns fully resolved string realtime endpoint URL + */ + private _realtimeUrlWithQueryString( + appSyncGraphqlEndpoint: string | undefined, + urlParams: URLSearchParams, + ): string { + const protocol = 'wss://'; + + let realtimeEndpoint = appSyncGraphqlEndpoint ?? ''; + + if (this.isCustomDomain(realtimeEndpoint)) { + realtimeEndpoint = realtimeEndpoint.concat(customDomainPath); + } else { + realtimeEndpoint = realtimeEndpoint + .replace('appsync-api', 'appsync-realtime-api') + .replace('gogi-beta', 'grt-beta'); + } + + realtimeEndpoint = realtimeEndpoint + .replace('https://', protocol) + .replace('http://', protocol); + + const realtimeEndpointUrl = new AmplifyUrl(realtimeEndpoint); + + // preserves any query params a customer might manually set in the configuration + const existingParams = new AmplifyUrlSearchParams( + realtimeEndpointUrl.search, + ); + + for (const [k, v] of urlParams.entries()) { + existingParams.append(k, v); + } + + realtimeEndpointUrl.search = existingParams.toString(); + + return realtimeEndpointUrl.toString(); + } + private _initializeWebSocketConnection({ appSyncGraphqlEndpoint, authenticationType, @@ -745,30 +827,27 @@ export class AWSAppSyncRealTimeProvider { }); const headerString = authHeader ? JSON.stringify(authHeader) : ''; - const headerQs = base64Encoder.convert(headerString); - - const payloadQs = base64Encoder.convert(payloadString); - - let discoverableEndpoint = appSyncGraphqlEndpoint ?? ''; + // base64url-encoded string + const encodedHeader = base64Encoder.convert(headerString, { + urlSafe: true, + skipPadding: true, + }); - if (this.isCustomDomain(discoverableEndpoint)) { - discoverableEndpoint = - discoverableEndpoint.concat(customDomainPath); - } else { - discoverableEndpoint = discoverableEndpoint - .replace('appsync-api', 'appsync-realtime-api') - .replace('gogi-beta', 'grt-beta'); - } + const authTokenSubprotocol = `header-${encodedHeader}`; - // Creating websocket url with required query strings - const protocol = 'wss://'; - discoverableEndpoint = discoverableEndpoint - .replace('https://', protocol) - .replace('http://', protocol); + const queryParams = this._queryParamsFromCustomHeaders( + additionalCustomHeaders, + ); - const awsRealTimeUrl = `${discoverableEndpoint}?header=${headerQs}&payload=${payloadQs}`; + const awsRealTimeUrl = this._realtimeUrlWithQueryString( + appSyncGraphqlEndpoint, + queryParams, + ); - await this._initializeRetryableHandshake(awsRealTimeUrl); + await this._initializeRetryableHandshake( + awsRealTimeUrl, + authTokenSubprotocol, + ); this.promiseArray.forEach(({ res }) => { logger.debug('Notifying connection successful'); @@ -795,23 +874,37 @@ export class AWSAppSyncRealTimeProvider { }); } - private async _initializeRetryableHandshake(awsRealTimeUrl: string) { + private async _initializeRetryableHandshake( + awsRealTimeUrl: string, + subprotocol: string, + ) { logger.debug(`Initializaling retryable Handshake`); await jitteredExponentialRetry( this._initializeHandshake.bind(this), - [awsRealTimeUrl], + [awsRealTimeUrl, subprotocol], MAX_DELAY_MS, ); } - private async _initializeHandshake(awsRealTimeUrl: string) { + /** + * + * @param subprotocol - + */ + private async _initializeHandshake( + awsRealTimeUrl: string, + subprotocol: string, + ) { logger.debug(`Initializing handshake ${awsRealTimeUrl}`); // Because connecting the socket is async, is waiting until connection is open // Step 1: connect websocket try { await (() => { return new Promise((resolve, reject) => { - const newSocket = this.getNewWebSocket(awsRealTimeUrl, 'graphql-ws'); + const newSocket = this.getNewWebSocket(awsRealTimeUrl, [ + 'graphql-ws', + subprotocol, + ]); + newSocket.onerror = () => { logger.debug(`WebSocket connection error`); }; diff --git a/packages/api-graphql/src/internals/v6.ts b/packages/api-graphql/src/internals/v6.ts index 0cdcf483927..c5d362908c8 100644 --- a/packages/api-graphql/src/internals/v6.ts +++ b/packages/api-graphql/src/internals/v6.ts @@ -106,6 +106,7 @@ export function graphql< const internals = getInternals(this as any); options.authMode = options.authMode || internals.authMode; options.authToken = options.authToken || internals.authToken; + const headers = additionalHeaders || internals.headers; /** * The correctness of these typings depends on correct string branding or overrides. @@ -116,7 +117,7 @@ export function graphql< // TODO: move V6Client back into this package? internals.amplify as any, options, - additionalHeaders, + headers, ); return result as any; diff --git a/packages/api-rest/CHANGELOG.md b/packages/api-rest/CHANGELOG.md index 25425526f94..378344c8fe6 100644 --- a/packages/api-rest/CHANGELOG.md +++ b/packages/api-rest/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.46...@aws-amplify/api-rest@4.0.47) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/api-rest + +## [4.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.45...@aws-amplify/api-rest@4.0.46) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/api-rest + +## [4.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.44...@aws-amplify/api-rest@4.0.45) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/api-rest + +## [4.0.44](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.43...@aws-amplify/api-rest@4.0.44) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/api-rest + ## [4.0.43](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.42...@aws-amplify/api-rest@4.0.43) (2024-08-15) **Note:** Version bump only for package @aws-amplify/api-rest diff --git a/packages/api-rest/__tests__/apis/common/internalPost.test.ts b/packages/api-rest/__tests__/apis/common/internalPost.test.ts index acfd9ae4530..f4887e9d2ad 100644 --- a/packages/api-rest/__tests__/apis/common/internalPost.test.ts +++ b/packages/api-rest/__tests__/apis/common/internalPost.test.ts @@ -91,6 +91,47 @@ describe('internal post', () => { expect.objectContaining({ region: 'us-west-2', service: 'lambda' }), ); }); + + it('should call authenticatedHandler for appsync-api service with default signing name', async () => { + const appsyncApiEndpoint = new URL( + 'https://123.appsync-api.us-west-2.amazonaws.com/graphql', + ); + await post(mockAmplifyInstance, { + url: appsyncApiEndpoint, + options: { + signingServiceInfo: { region: 'us-east-1' }, + }, + }); + expect(mockAuthenticatedHandler).toHaveBeenCalledWith( + { + url: appsyncApiEndpoint, + method: 'POST', + headers: {}, + }, + expect.objectContaining({ region: 'us-east-1', service: 'appsync' }), + ); + }); + + it('should call authenticatedHandler for appsync-api with specified service from signingServiceInfo', async () => { + const appsyncApiEndpoint = new URL( + 'https://123.appsync-api.us-west-2.amazonaws.com/graphql', + ); + await post(mockAmplifyInstance, { + url: appsyncApiEndpoint, + options: { + signingServiceInfo: { service: 'appsync', region: 'us-east-1' }, + }, + }); + expect(mockAuthenticatedHandler).toHaveBeenCalledWith( + { + url: appsyncApiEndpoint, + method: 'POST', + headers: {}, + }, + expect.objectContaining({ region: 'us-east-1', service: 'appsync' }), + ); + }); + it('should call authenticatedHandler with empty signingServiceInfo', async () => { await post(mockAmplifyInstance, { url: apiGatewayUrl, diff --git a/packages/api-rest/__tests__/utils/isIamAuthApplicable.test.ts b/packages/api-rest/__tests__/utils/isIamAuthApplicable.test.ts new file mode 100644 index 00000000000..a75733f738a --- /dev/null +++ b/packages/api-rest/__tests__/utils/isIamAuthApplicable.test.ts @@ -0,0 +1,74 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { HttpRequest } from '@aws-amplify/core/internals/aws-client-utils'; + +import { + isIamAuthApplicableForGraphQL, + isIamAuthApplicableForRest, +} from '../../src/utils/isIamAuthApplicable'; + +describe('iamAuthApplicable', () => { + const url = new URL('https://url'); + const baseRequest: HttpRequest = { + headers: {}, + url, + method: 'put', + }; + + describe('iamAuthApplicableForGraphQL', () => { + it('should return true if there is no authorization header, no x-api-key header, and signingServiceInfo is provided', () => { + const signingServiceInfo = {}; + expect( + isIamAuthApplicableForGraphQL(baseRequest, signingServiceInfo), + ).toBe(true); + }); + + it('should return false if there is an authorization header', () => { + const request = { + ...baseRequest, + headers: { authorization: 'SampleToken' }, + }; + const signingServiceInfo = {}; + expect(isIamAuthApplicableForGraphQL(request, signingServiceInfo)).toBe( + false, + ); + }); + + it('should return false if there is an x-api-key header', () => { + const request = { ...baseRequest, headers: { 'x-api-key': 'key' } }; + const signingServiceInfo = {}; + expect(isIamAuthApplicableForGraphQL(request, signingServiceInfo)).toBe( + false, + ); + }); + + it('should return false if signingServiceInfo is not provided', () => { + expect(isIamAuthApplicableForGraphQL(baseRequest)).toBe(false); + }); + }); + + describe('iamAuthApplicableForPublic', () => { + it('should return true if there is no authorization header and signingServiceInfo is provided', () => { + const signingServiceInfo = {}; + expect(isIamAuthApplicableForRest(baseRequest, signingServiceInfo)).toBe( + true, + ); + }); + + it('should return false if there is an authorization header', () => { + const request = { + ...baseRequest, + headers: { authorization: 'SampleToken' }, + }; + const signingServiceInfo = {}; + expect(isIamAuthApplicableForRest(request, signingServiceInfo)).toBe( + false, + ); + }); + + it('should return false if signingServiceInfo is not provided', () => { + expect(isIamAuthApplicableForRest(baseRequest)).toBe(false); + }); + }); +}); diff --git a/packages/api-rest/package.json b/packages/api-rest/package.json index db16386e5e0..8a7874ad183 100644 --- a/packages/api-rest/package.json +++ b/packages/api-rest/package.json @@ -1,7 +1,7 @@ { "name": "@aws-amplify/api-rest", "private": false, - "version": "4.0.43", + "version": "4.0.47", "description": "Api-rest category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -87,8 +87,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", - "@aws-amplify/react-native": "1.1.4", + "@aws-amplify/core": "6.4.0", + "@aws-amplify/react-native": "1.1.5", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/api-rest/src/apis/common/handler.ts b/packages/api-rest/src/apis/common/handler.ts index 9ae021e4e4e..d17a8c72b6a 100644 --- a/packages/api-rest/src/apis/common/handler.ts +++ b/packages/api-rest/src/apis/common/handler.ts @@ -20,7 +20,7 @@ import { parseSigningInfo, } from '../../utils'; import { resolveHeaders } from '../../utils/resolveHeaders'; -import { RestApiResponse } from '../../types'; +import { RestApiResponse, SigningServiceInfo } from '../../types'; type HandlerOptions = Omit & { body?: DocumentType | FormData; @@ -28,11 +28,6 @@ type HandlerOptions = Omit & { withCredentials?: boolean; }; -interface SigningServiceInfo { - service?: string; - region?: string; -} - /** * Make REST API call with best-effort IAM auth. * @param amplify Amplify instance to to resolve credentials and tokens. Should use different instance in client-side @@ -40,12 +35,17 @@ interface SigningServiceInfo { * @param options Options accepted from public API options when calling the handlers. * @param signingServiceInfo Internal-only options enable IAM auth as well as to to overwrite the IAM signing service * and region. If specified, and NONE of API Key header or Auth header is present, IAM auth will be used. + * @param iamAuthApplicable Callback function that is used to determine if IAM Auth should be used or not. * * @internal */ export const transferHandler = async ( amplify: AmplifyClassV6, options: HandlerOptions & { abortSignal: AbortSignal }, + iamAuthApplicable: ( + { headers }: HttpRequest, + signingServiceInfo?: SigningServiceInfo, + ) => boolean, signingServiceInfo?: SigningServiceInfo, ): Promise => { const { url, method, headers, body, withCredentials, abortSignal } = options; @@ -69,6 +69,7 @@ export const transferHandler = async ( }; const isIamAuthApplicable = iamAuthApplicable(request, signingServiceInfo); + let response: RestApiResponse; const credentials = await resolveCredentials(amplify); if (isIamAuthApplicable && credentials) { @@ -97,11 +98,6 @@ export const transferHandler = async ( }; }; -const iamAuthApplicable = ( - { headers }: HttpRequest, - signingServiceInfo?: SigningServiceInfo, -) => !headers.authorization && !headers['x-api-key'] && !!signingServiceInfo; - const resolveCredentials = async ( amplify: AmplifyClassV6, ): Promise => { diff --git a/packages/api-rest/src/apis/common/internalPost.ts b/packages/api-rest/src/apis/common/internalPost.ts index 835c3581d56..6dabea22072 100644 --- a/packages/api-rest/src/apis/common/internalPost.ts +++ b/packages/api-rest/src/apis/common/internalPost.ts @@ -6,6 +6,7 @@ import { AmplifyClassV6 } from '@aws-amplify/core'; import { InternalPostInput, RestApiResponse } from '../../types'; import { createCancellableOperation } from '../../utils'; import { CanceledError } from '../../errors'; +import { isIamAuthApplicableForGraphQL } from '../../utils/isIamAuthApplicable'; import { transferHandler } from './handler'; @@ -46,7 +47,7 @@ const cancelTokenMap = new WeakMap, AbortController>(); * @param postInput.abortController The abort controller used to cancel the POST request * @returns a {@link RestApiResponse} * - * @throws an {@link Error} with `Network error` as the `message` when the external resource is unreachable due to one + * @throws an {@link AmplifyError} with `Network Error` as the `message` when the external resource is unreachable due to one * of the following reasons: * 1. no network connection * 2. CORS error @@ -66,6 +67,7 @@ export const post = ( ...options, abortSignal: controller.signal, }, + isIamAuthApplicableForGraphQL, options?.signingServiceInfo, ); diff --git a/packages/api-rest/src/apis/common/publicApis.ts b/packages/api-rest/src/apis/common/publicApis.ts index 6a132a6b277..8c7a58cb6fc 100644 --- a/packages/api-rest/src/apis/common/publicApis.ts +++ b/packages/api-rest/src/apis/common/publicApis.ts @@ -25,6 +25,7 @@ import { parseSigningInfo, resolveApiUrl, } from '../../utils'; +import { isIamAuthApplicableForRest } from '../../utils/isIamAuthApplicable'; import { transferHandler } from './handler'; @@ -71,6 +72,7 @@ const publicHandler = ( headers, abortSignal, }, + isIamAuthApplicableForRest, signingServiceInfo, ); }); diff --git a/packages/api-rest/src/errors/CanceledError.ts b/packages/api-rest/src/errors/CanceledError.ts index ce4082212e0..67278d62a7c 100644 --- a/packages/api-rest/src/errors/CanceledError.ts +++ b/packages/api-rest/src/errors/CanceledError.ts @@ -29,6 +29,9 @@ export class CanceledError extends RestApiError { * * @note This function works **ONLY** for errors thrown by REST API. For GraphQL APIs, use `client.isCancelError(error)` * instead. `client` is generated from `generateClient()` API from `aws-amplify/api`. + * + * @param {unknown} error The unknown exception to be checked. + * @returns - A boolean indicating if the error was from an upload cancellation */ export const isCancelError = (error: unknown): error is CanceledError => !!error && error instanceof CanceledError; diff --git a/packages/api-rest/src/types/index.ts b/packages/api-rest/src/types/index.ts index f2f3c214b17..7e0ecb61e7c 100644 --- a/packages/api-rest/src/types/index.ts +++ b/packages/api-rest/src/types/index.ts @@ -112,3 +112,12 @@ export interface InternalPostInput { */ abortController?: AbortController; } + +/** + * Type for signingServiceInfo which enable IAM auth as well as overwrite the IAM signing info. + * @internal + */ +export interface SigningServiceInfo { + service?: string; + region?: string; +} diff --git a/packages/api-rest/src/utils/isIamAuthApplicable.ts b/packages/api-rest/src/utils/isIamAuthApplicable.ts new file mode 100644 index 00000000000..ba48e7be3de --- /dev/null +++ b/packages/api-rest/src/utils/isIamAuthApplicable.ts @@ -0,0 +1,44 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { HttpRequest } from '@aws-amplify/core/internals/aws-client-utils'; + +import { SigningServiceInfo } from '../types'; + +/** + * Determines if IAM authentication should be applied for a GraphQL request. + * + * This function checks the `headers` of the HTTP request to determine if IAM authentication + * is applicable. IAM authentication is considered applicable if there is no `authorization` + * header, no `x-api-key` header, and `signingServiceInfo` is provided. + * + * @param request - The HTTP request object containing headers. + * @param signingServiceInfo - Optional signing service information, + * including service and region. + * @returns A boolean `true` if IAM authentication should be applied. + * + * @internal + */ +export const isIamAuthApplicableForGraphQL = ( + { headers }: HttpRequest, + signingServiceInfo?: SigningServiceInfo, +) => !headers.authorization && !headers['x-api-key'] && !!signingServiceInfo; + +/** + * Determines if IAM authentication should be applied for a REST request. + * + * This function checks the `headers` of the HTTP request to determine if IAM authentication + * is applicable. IAM authentication is considered applicable if there is no `authorization` + * header and `signingServiceInfo` is provided. + * + * @param request - The HTTP request object containing headers. + * @param signingServiceInfo - Optional signing service information, + * including service and region. + * @returns A boolean `true` if IAM authentication should be applied. + * + * @internal + */ +export const isIamAuthApplicableForRest = ( + { headers }: HttpRequest, + signingServiceInfo?: SigningServiceInfo, +) => !headers.authorization && !!signingServiceInfo; diff --git a/packages/api/CHANGELOG.md b/packages/api/CHANGELOG.md index 1747e039922..e58e7bbd920 100644 --- a/packages/api/CHANGELOG.md +++ b/packages/api/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.0.49](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.48...@aws-amplify/api@6.0.49) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/api + +## [6.0.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.47...@aws-amplify/api@6.0.48) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/api + +## [6.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.46...@aws-amplify/api@6.0.47) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/api + +## [6.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.45...@aws-amplify/api@6.0.46) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/api + ## [6.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.44...@aws-amplify/api@6.0.45) (2024-08-15) **Note:** Version bump only for package @aws-amplify/api diff --git a/packages/api/package.json b/packages/api/package.json index de745c1df01..35451cfa83a 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/api", - "version": "6.0.45", + "version": "6.0.49", "description": "Api category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -79,8 +79,8 @@ "server" ], "dependencies": { - "@aws-amplify/api-graphql": "4.1.14", - "@aws-amplify/api-rest": "4.0.43", + "@aws-amplify/api-graphql": "4.3.0", + "@aws-amplify/api-rest": "4.0.47", "tslib": "^2.5.0" } } diff --git a/packages/api/src/API.ts b/packages/api/src/API.ts index db0559e4477..8aee0fc3334 100644 --- a/packages/api/src/API.ts +++ b/packages/api/src/API.ts @@ -6,6 +6,9 @@ import { Amplify } from '@aws-amplify/core'; /** * Generates an API client that can work with models or raw GraphQL + * + * @returns {@link V6Client} + * @throws {@link Error} - Throws error when client cannot be generated due to configuration issues. */ export function generateClient = never>( options: CommonPublicClientOptions = {}, diff --git a/packages/auth/CHANGELOG.md b/packages/auth/CHANGELOG.md index ad1962463d9..9441a03a56a 100644 --- a/packages/auth/CHANGELOG.md +++ b/packages/auth/CHANGELOG.md @@ -3,6 +3,24 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.4.0](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.3.17...@aws-amplify/auth@6.4.0) (2024-09-04) + +### Features + +- **auth:** HostedUI oidc signout ([#13512](https://github.com/aws-amplify/amplify-js/issues/13512)) ([e8fb997](https://github.com/aws-amplify/amplify-js/commit/e8fb9973f8e3e3490619416a778ec1460cafaf9a)), closes [#13712](https://github.com/aws-amplify/amplify-js/issues/13712) [#13736](https://github.com/aws-amplify/amplify-js/issues/13736) + +## [6.3.17](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.3.16...@aws-amplify/auth@6.3.17) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/auth + +## [6.3.16](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.3.15...@aws-amplify/auth@6.3.16) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/auth + +## [6.3.15](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.3.14...@aws-amplify/auth@6.3.15) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/auth + ## [6.3.14](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.3.13...@aws-amplify/auth@6.3.14) (2024-08-15) **Note:** Version bump only for package @aws-amplify/auth diff --git a/packages/auth/__tests__/providers/cognito/signOut.test.ts b/packages/auth/__tests__/providers/cognito/signOut.test.ts index adae8c494cc..4992b4a3a5c 100644 --- a/packages/auth/__tests__/providers/cognito/signOut.test.ts +++ b/packages/auth/__tests__/providers/cognito/signOut.test.ts @@ -220,6 +220,8 @@ describe('signOut', () => { expect(mockHandleOAuthSignOut).toHaveBeenCalledWith( cognitoConfigWithOauth, mockDefaultOAuthStoreInstance, + mockTokenOrchestrator, + undefined, ); // In cases of OAuth, token removal and Hub dispatch should be performed by the OAuth handling since // these actions can be deferred or canceled out of altogether. diff --git a/packages/auth/__tests__/providers/cognito/tokenOrchestrator.test.ts b/packages/auth/__tests__/providers/cognito/tokenOrchestrator.test.ts index 5a31dbf0c74..8906d8d7eed 100644 --- a/packages/auth/__tests__/providers/cognito/tokenOrchestrator.test.ts +++ b/packages/auth/__tests__/providers/cognito/tokenOrchestrator.test.ts @@ -25,6 +25,8 @@ const mockAuthTokenStore = { setKeyValueStorage: jest.fn(), getDeviceMetadata: jest.fn(), clearDeviceMetadata: jest.fn(), + setOAuthMetadata: jest.fn(), + getOAuthMetadata: jest.fn(), }; const mockTokenRefresher = jest.fn(); const validAuthConfig: ResourcesConfig = { diff --git a/packages/auth/__tests__/providers/cognito/tokenProvider/tokenOrchestrator.test.ts b/packages/auth/__tests__/providers/cognito/tokenProvider/tokenOrchestrator.test.ts index e1c25ec86f7..c0853b51f23 100644 --- a/packages/auth/__tests__/providers/cognito/tokenProvider/tokenOrchestrator.test.ts +++ b/packages/auth/__tests__/providers/cognito/tokenProvider/tokenOrchestrator.test.ts @@ -24,6 +24,8 @@ describe('tokenOrchestrator', () => { setKeyValueStorage: jest.fn(), getDeviceMetadata: jest.fn(), clearDeviceMetadata: jest.fn(), + getOAuthMetadata: jest.fn(), + setOAuthMetadata: jest.fn(), }; beforeAll(() => { diff --git a/packages/auth/__tests__/providers/cognito/utils/oauth/completeOAuthFlow.test.ts b/packages/auth/__tests__/providers/cognito/utils/oauth/completeOAuthFlow.test.ts index 78e95120977..8d62c014a94 100644 --- a/packages/auth/__tests__/providers/cognito/utils/oauth/completeOAuthFlow.test.ts +++ b/packages/auth/__tests__/providers/cognito/utils/oauth/completeOAuthFlow.test.ts @@ -13,6 +13,7 @@ import { AuthErrorTypes } from '../../../../../src/types/Auth'; import { OAuthStore } from '../../../../../src/providers/cognito/utils/types'; import { completeOAuthFlow } from '../../../../../src/providers/cognito/utils/oauth/completeOAuthFlow'; +jest.mock('../../../../../src/providers/cognito/tokenProvider'); jest.mock('@aws-amplify/core', () => ({ Hub: { dispatch: jest.fn(), diff --git a/packages/auth/__tests__/providers/cognito/utils/oauth/getRedirectUrl.native.test.ts b/packages/auth/__tests__/providers/cognito/utils/oauth/getRedirectUrl.native.test.ts new file mode 100644 index 00000000000..248bc00814a --- /dev/null +++ b/packages/auth/__tests__/providers/cognito/utils/oauth/getRedirectUrl.native.test.ts @@ -0,0 +1,35 @@ +import { invalidAppSchemeException } from '../../../../../src/errors/constants'; +import { getRedirectUrl } from '../../../../../src/providers/cognito/utils/oauth/getRedirectUrl.native'; + +describe('getRedirectUrl (native)', () => { + const mockRedirectUrls = [ + 'myDevApp://', + 'myProdApp://', + 'https://intermidiateSite.com', + ]; + + it('should return the first non http/s url from the array when redirectUrl is not provided', () => { + expect(getRedirectUrl(mockRedirectUrls)).toStrictEqual(mockRedirectUrls[0]); + }); + + it('should return redirectUrl if it matches at least one of the redirect urls from config', () => { + const configRedirectUrl = mockRedirectUrls[2]; + + expect(getRedirectUrl(mockRedirectUrls, configRedirectUrl)).toStrictEqual( + configRedirectUrl, + ); + }); + + it('should throw an exception when there is no url with no http nor https as prefix irrespective of a redirectUrl is given or not', () => { + const mockRedirectUrlsWithNoAppScheme = ['https://intermidiateSite.com']; + expect(() => + getRedirectUrl( + mockRedirectUrlsWithNoAppScheme, + mockRedirectUrlsWithNoAppScheme[0], + ), + ).toThrow(invalidAppSchemeException); + expect(() => getRedirectUrl(mockRedirectUrlsWithNoAppScheme)).toThrow( + invalidAppSchemeException, + ); + }); +}); diff --git a/packages/auth/__tests__/providers/cognito/utils/oauth/getRedirectUrl.test.ts b/packages/auth/__tests__/providers/cognito/utils/oauth/getRedirectUrl.test.ts new file mode 100644 index 00000000000..0f75d28c640 --- /dev/null +++ b/packages/auth/__tests__/providers/cognito/utils/oauth/getRedirectUrl.test.ts @@ -0,0 +1,66 @@ +import { getRedirectUrl } from '../../../../../src/providers/cognito/utils/oauth'; +import { + invalidOriginException, + invalidPreferredRedirectUrlException, + invalidRedirectException, +} from '../../../../../src/errors/constants'; + +describe('getRedirectUrl', () => { + const mockRedirectUrls = ['https://example.com/app']; + let windowSpy: jest.SpyInstance; + + beforeEach(() => { + windowSpy = jest.spyOn(window, 'window', 'get'); + }); + + afterEach(() => { + windowSpy.mockRestore(); + }); + + it('should return the redirect url that has the same origin and same pathName', () => { + windowSpy.mockReturnValue({ + location: { + origin: 'https://example.com/', + pathname: 'app', + }, + }); + expect(getRedirectUrl(mockRedirectUrls)).toStrictEqual(mockRedirectUrls[0]); + }); + + it('should throw an invalid origin exception if there is no url that is the same origin and pathname', () => { + windowSpy.mockReturnValue({ + location: { + origin: 'https://differentOrigin.com/', + pathname: 'differentApp', + }, + }); + expect(() => getRedirectUrl(mockRedirectUrls)).toThrow( + invalidOriginException, + ); + }); + + it('should throw an invalid redirect exception if there is no url that is the same origin/pathname and is also not http or https', () => { + const mockNonHttpRedirectUrls = ['test-non-http-string']; + windowSpy.mockReturnValue({ + location: { + origin: 'https://differentOrigin.com/', + pathname: 'differentApp', + }, + }); + expect(() => getRedirectUrl(mockNonHttpRedirectUrls)).toThrow( + invalidRedirectException, + ); + }); + + it('should return the redirectUrl if it is provided and matches one of the redirectUrls from config', () => { + expect(getRedirectUrl(mockRedirectUrls, mockRedirectUrls[0])).toStrictEqual( + mockRedirectUrls[0], + ); + }); + + it('should throw an exception if redirectUrl is given but does not match any of the redirectUrls from config', () => { + expect(() => + getRedirectUrl(mockRedirectUrls, 'https://unknownOrigin.com'), + ).toThrow(invalidPreferredRedirectUrlException); + }); +}); diff --git a/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.native.test.ts b/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.native.test.ts index 3d56cca1b90..bd056ccdf23 100644 --- a/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.native.test.ts +++ b/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.native.test.ts @@ -1,6 +1,7 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 +import { tokenOrchestrator } from '../../../../../src/providers/cognito/tokenProvider'; import { completeOAuthSignOut } from '../../../../../src/providers/cognito/utils/oauth/completeOAuthSignOut'; import { handleOAuthSignOut } from '../../../../../src/providers/cognito/utils/oauth/handleOAuthSignOut.native'; import { oAuthSignOutRedirect } from '../../../../../src/providers/cognito/utils/oauth/oAuthSignOutRedirect'; @@ -23,6 +24,9 @@ describe('handleOAuthSignOut (native)', () => { // assert mocks const mockCompleteOAuthSignOut = completeOAuthSignOut as jest.Mock; const mockOAuthSignOutRedirect = oAuthSignOutRedirect as jest.Mock; + const mockTokenOrchestrator = tokenOrchestrator as jest.Mocked< + typeof tokenOrchestrator + >; // create mocks const mockStore = { loadOAuthSignIn: jest.fn(), @@ -43,33 +47,51 @@ describe('handleOAuthSignOut (native)', () => { }); it('should complete OAuth sign out and redirect', async () => { mockOAuthSignOutRedirect.mockResolvedValue({ type: 'success' }); - await handleOAuthSignOut(cognitoConfig, mockStore); + await handleOAuthSignOut( + cognitoConfig, + mockStore, + mockTokenOrchestrator, + undefined, + ); expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith( cognitoConfig, false, + undefined, ); expect(mockCompleteOAuthSignOut).toHaveBeenCalledWith(mockStore); }); it('should not complete OAuth sign out if redirect is canceled', async () => { mockOAuthSignOutRedirect.mockResolvedValue({ type: 'canceled' }); - await handleOAuthSignOut(cognitoConfig, mockStore); + await handleOAuthSignOut( + cognitoConfig, + mockStore, + mockTokenOrchestrator, + undefined, + ); expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith( cognitoConfig, false, + undefined, ); expect(mockCompleteOAuthSignOut).not.toHaveBeenCalled(); }); it('should not complete OAuth sign out if redirect failed', async () => { mockOAuthSignOutRedirect.mockResolvedValue({ type: 'error' }); - await handleOAuthSignOut(cognitoConfig, mockStore); + await handleOAuthSignOut( + cognitoConfig, + mockStore, + mockTokenOrchestrator, + undefined, + ); expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith( cognitoConfig, false, + undefined, ); expect(mockCompleteOAuthSignOut).not.toHaveBeenCalled(); }); @@ -81,9 +103,18 @@ describe('handleOAuthSignOut (native)', () => { preferPrivateSession: true, }); mockOAuthSignOutRedirect.mockResolvedValue({ type: 'error' }); - await handleOAuthSignOut(cognitoConfig, mockStore); + await handleOAuthSignOut( + cognitoConfig, + mockStore, + mockTokenOrchestrator, + undefined, + ); - expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith(cognitoConfig, true); + expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith( + cognitoConfig, + true, + undefined, + ); expect(mockCompleteOAuthSignOut).toHaveBeenCalledWith(mockStore); }); @@ -92,7 +123,12 @@ describe('handleOAuthSignOut (native)', () => { isOAuthSignIn: false, preferPrivateSession: false, }); - await handleOAuthSignOut(cognitoConfig, mockStore); + await handleOAuthSignOut( + cognitoConfig, + mockStore, + mockTokenOrchestrator, + undefined, + ); expect(mockOAuthSignOutRedirect).not.toHaveBeenCalled(); expect(mockCompleteOAuthSignOut).toHaveBeenCalledWith(mockStore); diff --git a/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.test.ts b/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.test.ts index f6fab30158f..6109b2e68e7 100644 --- a/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.test.ts +++ b/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.test.ts @@ -1,6 +1,7 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 +import { TokenOrchestrator } from '../../../../../src/providers/cognito'; import { completeOAuthSignOut } from '../../../../../src/providers/cognito/utils/oauth/completeOAuthSignOut'; import { handleOAuthSignOut } from '../../../../../src/providers/cognito/utils/oauth/handleOAuthSignOut'; import { oAuthSignOutRedirect } from '../../../../../src/providers/cognito/utils/oauth/oAuthSignOutRedirect'; @@ -12,6 +13,7 @@ jest.mock( jest.mock( '../../../../../src/providers/cognito/utils/oauth/oAuthSignOutRedirect', ); +jest.mock('../../../../../src/providers/cognito/tokenProvider'); describe('handleOAuthSignOut', () => { const region = 'us-west-2'; @@ -27,9 +29,13 @@ describe('handleOAuthSignOut', () => { const mockStore = { loadOAuthSignIn: jest.fn(), } as unknown as jest.Mocked; + const mockTokenOrchestrator = { + getOAuthMetadata: jest.fn(), + } as unknown as jest.Mocked; afterEach(() => { mockStore.loadOAuthSignIn.mockReset(); + mockTokenOrchestrator.getOAuthMetadata.mockReset(); mockCompleteOAuthSignOut.mockClear(); mockOAuthSignOutRedirect.mockClear(); }); @@ -39,10 +45,42 @@ describe('handleOAuthSignOut', () => { isOAuthSignIn: true, preferPrivateSession: false, }); - await handleOAuthSignOut(cognitoConfig, mockStore); + await handleOAuthSignOut( + cognitoConfig, + mockStore, + mockTokenOrchestrator, + undefined, + ); expect(mockCompleteOAuthSignOut).toHaveBeenCalledWith(mockStore); - expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith(cognitoConfig); + expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith( + cognitoConfig, + false, + undefined, + ); + }); + + it('should complete OAuth sign out and redirect when there oauth metadata in tokenOrchestrator', async () => { + mockTokenOrchestrator.getOAuthMetadata.mockResolvedValue({ + oauthSignIn: true, + }); + mockStore.loadOAuthSignIn.mockResolvedValue({ + isOAuthSignIn: false, + preferPrivateSession: false, + }); + await handleOAuthSignOut( + cognitoConfig, + mockStore, + mockTokenOrchestrator, + undefined, + ); + + expect(mockCompleteOAuthSignOut).toHaveBeenCalledWith(mockStore); + expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith( + cognitoConfig, + false, + undefined, + ); }); it('should complete OAuth sign out but not redirect', async () => { @@ -50,7 +88,12 @@ describe('handleOAuthSignOut', () => { isOAuthSignIn: false, preferPrivateSession: false, }); - await handleOAuthSignOut(cognitoConfig, mockStore); + await handleOAuthSignOut( + cognitoConfig, + mockStore, + mockTokenOrchestrator, + undefined, + ); expect(mockCompleteOAuthSignOut).toHaveBeenCalledWith(mockStore); expect(mockOAuthSignOutRedirect).not.toHaveBeenCalled(); diff --git a/packages/auth/__tests__/providers/cognito/utils/oauth/oAuthSignOutRedirect.test.ts b/packages/auth/__tests__/providers/cognito/utils/oauth/oAuthSignOutRedirect.test.ts index a16bbb54eb1..97cde00e5a0 100644 --- a/packages/auth/__tests__/providers/cognito/utils/oauth/oAuthSignOutRedirect.test.ts +++ b/packages/auth/__tests__/providers/cognito/utils/oauth/oAuthSignOutRedirect.test.ts @@ -47,6 +47,7 @@ describe('oAuthSignOutRedirect', () => { expect(mockGetRedirectUrl).toHaveBeenCalledWith( authConfig.loginWith.oauth.redirectSignOut, + undefined, ); expect(mockOpenAuthSession).toHaveBeenCalledWith( `https://${domain}/logout?client_id=${userPoolClientId}&logout_uri=${encodedSignOutRedirectUrl}`, diff --git a/packages/auth/package.json b/packages/auth/package.json index d8b852f9657..81032ed1b5e 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/auth", - "version": "6.3.14", + "version": "6.4.0", "description": "Auth category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -97,8 +97,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", - "@aws-amplify/react-native": "1.1.4", + "@aws-amplify/core": "6.4.0", + "@aws-amplify/react-native": "1.1.5", "@jest/test-sequencer": "^29.7.0", "typescript": "5.0.2" } diff --git a/packages/auth/src/errors/constants.ts b/packages/auth/src/errors/constants.ts index 18ae41d71a6..faf1ceba375 100644 --- a/packages/auth/src/errors/constants.ts +++ b/packages/auth/src/errors/constants.ts @@ -10,6 +10,10 @@ export const DEVICE_METADATA_NOT_FOUND_EXCEPTION = 'DeviceMetadataNotFoundException'; export const AUTO_SIGN_IN_EXCEPTION = 'AutoSignInException'; export const INVALID_REDIRECT_EXCEPTION = 'InvalidRedirectException'; +export const INVALID_APP_SCHEME_EXCEPTION = 'InvalidAppSchemeException'; +export const INVALID_PREFERRED_REDIRECT_EXCEPTION = + 'InvalidPreferredRedirectUrlException'; + export const invalidRedirectException = new AuthError({ name: INVALID_REDIRECT_EXCEPTION, message: @@ -17,6 +21,19 @@ export const invalidRedirectException = new AuthError({ recoverySuggestion: 'Please make sure the signIn/Out redirect in your oauth config is valid.', }); +export const invalidAppSchemeException = new AuthError({ + name: INVALID_APP_SCHEME_EXCEPTION, + message: 'A valid non-http app scheme was not found in the config.', + recoverySuggestion: + 'Please make sure a valid custom app scheme is present in the config.', +}); +export const invalidPreferredRedirectUrlException = new AuthError({ + name: INVALID_PREFERRED_REDIRECT_EXCEPTION, + message: + 'The given preferredRedirectUrl does not match any items in the redirectSignOutUrls array from the config.', + recoverySuggestion: + 'Please make sure a matching preferredRedirectUrl is provided.', +}); export const INVALID_ORIGIN_EXCEPTION = 'InvalidOriginException'; export const invalidOriginException = new AuthError({ name: INVALID_ORIGIN_EXCEPTION, diff --git a/packages/auth/src/providers/cognito/apis/signOut.ts b/packages/auth/src/providers/cognito/apis/signOut.ts index 65be0162927..e073129ca10 100644 --- a/packages/auth/src/providers/cognito/apis/signOut.ts +++ b/packages/auth/src/providers/cognito/apis/signOut.ts @@ -60,17 +60,20 @@ export async function signOut(input?: SignOutInput): Promise { } catch (err) { hasOAuthConfig = false; } - if (hasOAuthConfig) { const oAuthStore = new DefaultOAuthStore(defaultStorage); oAuthStore.setAuthConfig(cognitoConfig); const { type } = - (await handleOAuthSignOut(cognitoConfig, oAuthStore)) ?? {}; + (await handleOAuthSignOut( + cognitoConfig, + oAuthStore, + tokenOrchestrator, + input?.oauth?.redirectUrl, + )) ?? {}; if (type === 'error') { throw new AuthError({ name: OAUTH_SIGNOUT_EXCEPTION, - message: - 'An error occurred when attempting to log out from OAuth provider.', + message: `An error occurred when attempting to log out from OAuth provider.`, }); } } else { diff --git a/packages/auth/src/providers/cognito/tokenProvider/TokenOrchestrator.ts b/packages/auth/src/providers/cognito/tokenProvider/TokenOrchestrator.ts index 0e16a021969..121875013e2 100644 --- a/packages/auth/src/providers/cognito/tokenProvider/TokenOrchestrator.ts +++ b/packages/auth/src/providers/cognito/tokenProvider/TokenOrchestrator.ts @@ -25,6 +25,7 @@ import { AuthTokenStore, CognitoAuthTokens, DeviceMetadata, + OAuthMetadata, TokenRefresher, } from './types'; @@ -203,4 +204,12 @@ export class TokenOrchestrator implements AuthTokenOrchestrator { clearDeviceMetadata(username?: string): Promise { return this.getTokenStore().clearDeviceMetadata(username); } + + setOAuthMetadata(metadata: OAuthMetadata): Promise { + return this.getTokenStore().setOAuthMetadata(metadata); + } + + getOAuthMetadata(): Promise { + return this.getTokenStore().getOAuthMetadata(); + } } diff --git a/packages/auth/src/providers/cognito/tokenProvider/TokenStore.ts b/packages/auth/src/providers/cognito/tokenProvider/TokenStore.ts index 53ac3228d85..74d6b9400c6 100644 --- a/packages/auth/src/providers/cognito/tokenProvider/TokenStore.ts +++ b/packages/auth/src/providers/cognito/tokenProvider/TokenStore.ts @@ -14,6 +14,7 @@ import { AuthTokenStore, CognitoAuthTokens, DeviceMetadata, + OAuthMetadata, } from './types'; import { TokenProviderErrorCode, assert } from './errorHelpers'; @@ -163,6 +164,7 @@ export class DefaultTokenStore implements AuthTokenStore { this.getKeyValueStorage().removeItem(authKeys.refreshToken), this.getKeyValueStorage().removeItem(authKeys.signInDetails), this.getKeyValueStorage().removeItem(this.getLastAuthUserKey()), + this.getKeyValueStorage().removeItem(authKeys.oauthMetadata), ]); } @@ -222,6 +224,22 @@ export class DefaultTokenStore implements AuthTokenStore { return lastAuthUser; } + + async setOAuthMetadata(metadata: OAuthMetadata): Promise { + const { oauthMetadata: oauthMetadataKey } = await this.getAuthKeys(); + await this.getKeyValueStorage().setItem( + oauthMetadataKey, + JSON.stringify(metadata), + ); + } + + async getOAuthMetadata(): Promise { + const { oauthMetadata: oauthMetadataKey } = await this.getAuthKeys(); + const oauthMetadata = + await this.getKeyValueStorage().getItem(oauthMetadataKey); + + return oauthMetadata && JSON.parse(oauthMetadata); + } } export const createKeysForAuthStorage = ( diff --git a/packages/auth/src/providers/cognito/tokenProvider/types.ts b/packages/auth/src/providers/cognito/tokenProvider/types.ts index f58483a334b..5db7c62f012 100644 --- a/packages/auth/src/providers/cognito/tokenProvider/types.ts +++ b/packages/auth/src/providers/cognito/tokenProvider/types.ts @@ -34,6 +34,7 @@ export const AuthTokenStorageKeys = { randomPasswordKey: 'randomPasswordKey', deviceGroupKey: 'deviceGroupKey', signInDetails: 'signInDetails', + oauthMetadata: 'oauthMetadata', }; export interface AuthTokenStore { @@ -44,6 +45,8 @@ export interface AuthTokenStore { setKeyValueStorage(keyValueStorage: KeyValueStorageInterface): void; getDeviceMetadata(username?: string): Promise; clearDeviceMetadata(username?: string): Promise; + setOAuthMetadata(metadata: OAuthMetadata): Promise; + getOAuthMetadata(): Promise; } export interface AuthTokenOrchestrator { @@ -58,6 +61,8 @@ export interface AuthTokenOrchestrator { clearTokens(): Promise; getDeviceMetadata(username?: string): Promise; clearDeviceMetadata(username?: string): Promise; + setOAuthMetadata(metadata: OAuthMetadata): Promise; + getOAuthMetadata(): Promise; } export interface CognitoUserPoolTokenProviderType extends TokenProvider { @@ -78,3 +83,7 @@ export interface DeviceMetadata { deviceGroupKey?: string; randomPassword: string; } + +export interface OAuthMetadata { + oauthSignIn: boolean; +} diff --git a/packages/auth/src/providers/cognito/utils/oauth/completeOAuthFlow.ts b/packages/auth/src/providers/cognito/utils/oauth/completeOAuthFlow.ts index d9ebc5976a8..f374ed98156 100644 --- a/packages/auth/src/providers/cognito/utils/oauth/completeOAuthFlow.ts +++ b/packages/auth/src/providers/cognito/utils/oauth/completeOAuthFlow.ts @@ -11,6 +11,7 @@ import { Hub, decodeJWT } from '@aws-amplify/core'; import { cacheCognitoTokens } from '../../tokenProvider/cacheTokens'; import { dispatchSignedInHubEvent } from '../dispatchSignedInHubEvent'; +import { tokenOrchestrator } from '../../tokenProvider'; import { createOAuthError } from './createOAuthError'; import { resolveAndClearInflightPromises } from './inflightPromise'; @@ -227,6 +228,9 @@ const completeFlow = async ({ redirectUri: string; state: string; }) => { + await tokenOrchestrator.setOAuthMetadata({ + oauthSignIn: true, + }); await oAuthStore.clearOAuthData(); await oAuthStore.storeOAuthSignIn(true, preferPrivateSession); diff --git a/packages/auth/src/providers/cognito/utils/oauth/getRedirectUrl.native.ts b/packages/auth/src/providers/cognito/utils/oauth/getRedirectUrl.native.ts index 315074aa69d..9719b5071cd 100644 --- a/packages/auth/src/providers/cognito/utils/oauth/getRedirectUrl.native.ts +++ b/packages/auth/src/providers/cognito/utils/oauth/getRedirectUrl.native.ts @@ -1,17 +1,34 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -import { invalidRedirectException } from '../../../../errors/constants'; +import { + invalidAppSchemeException, + invalidPreferredRedirectUrlException, +} from '../../../../errors/constants'; -/** @internal */ -export function getRedirectUrl(redirects: string[]): string { - const redirectUrl = redirects?.find( +/** +* - Validate there is always an appScheme (required), if not throw invalidAppSchemeException. +* - If a preferredRedirectUrl is given, validate it's in the configured list, if not throw invalidPreferredRedirectUrlException. +* - If preferredRedirectUrl is not given, use the appScheme which is present in the configured list. +@internal */ +export function getRedirectUrl( + redirects: string[], + preferredRedirectUrl?: string, +): string { + // iOS always requires a non http/s url (appScheme) to be registered so we validate it's existence here. + const appSchemeRedirectUrl = redirects?.find( redirect => !redirect.startsWith('http://') && !redirect.startsWith('https://'), ); - if (!redirectUrl) { - throw invalidRedirectException; + if (!appSchemeRedirectUrl) { + throw invalidAppSchemeException; + } + if (preferredRedirectUrl) { + if (redirects?.includes(preferredRedirectUrl)) { + return preferredRedirectUrl; + } + throw invalidPreferredRedirectUrlException; } - return redirectUrl; + return appSchemeRedirectUrl; } diff --git a/packages/auth/src/providers/cognito/utils/oauth/getRedirectUrl.ts b/packages/auth/src/providers/cognito/utils/oauth/getRedirectUrl.ts index 63c343b0e00..6becf884230 100644 --- a/packages/auth/src/providers/cognito/utils/oauth/getRedirectUrl.ts +++ b/packages/auth/src/providers/cognito/utils/oauth/getRedirectUrl.ts @@ -2,22 +2,38 @@ // SPDX-License-Identifier: Apache-2.0 import { invalidOriginException, + invalidPreferredRedirectUrlException, invalidRedirectException, } from '../../../../errors/constants'; /** @internal */ -export function getRedirectUrl(redirects: string[]): string { - const redirectUrlFromTheSameOrigin = - redirects?.find(isSameOriginAndPathName) ?? - redirects?.find(isTheSameDomain); - const redirectUrlFromDifferentOrigin = - redirects?.find(isHttps) ?? redirects?.find(isHttp); - if (redirectUrlFromTheSameOrigin) { - return redirectUrlFromTheSameOrigin; - } else if (redirectUrlFromDifferentOrigin) { - throw invalidOriginException; +export function getRedirectUrl( + redirects: string[], + preferredRedirectUrl?: string, +): string { + if (preferredRedirectUrl) { + const redirectUrl = redirects?.find( + redirect => redirect === preferredRedirectUrl, + ); + if (!redirectUrl) { + throw invalidPreferredRedirectUrlException; + } + + return redirectUrl; + } else { + const redirectUrlFromTheSameOrigin = + redirects?.find(isSameOriginAndPathName) ?? + redirects?.find(isTheSameDomain); + const redirectUrlFromDifferentOrigin = + redirects?.find(isHttps) ?? redirects?.find(isHttp); + + if (redirectUrlFromTheSameOrigin) { + return redirectUrlFromTheSameOrigin; + } else if (redirectUrlFromDifferentOrigin) { + throw invalidOriginException; + } + throw invalidRedirectException; } - throw invalidRedirectException; } // origin + pathname => https://example.com/app diff --git a/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.native.ts b/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.native.ts index bd9c8416b55..e67c8a255ef 100644 --- a/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.native.ts +++ b/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.native.ts @@ -5,6 +5,7 @@ import { CognitoUserPoolConfig } from '@aws-amplify/core'; import { OpenAuthSessionResult } from '../../../../utils/types'; import { DefaultOAuthStore } from '../../utils/signInWithRedirectStore'; +import { TokenOrchestrator } from '../../tokenProvider'; import { completeOAuthSignOut } from './completeOAuthSignOut'; import { oAuthSignOutRedirect } from './oAuthSignOutRedirect'; @@ -12,13 +13,16 @@ import { oAuthSignOutRedirect } from './oAuthSignOutRedirect'; export const handleOAuthSignOut = async ( cognitoConfig: CognitoUserPoolConfig, store: DefaultOAuthStore, + // No-op here as it's only used in the non-native implementation + tokenOrchestrator: TokenOrchestrator, + redirectUrl: string | undefined, ): Promise => { const { isOAuthSignIn, preferPrivateSession } = await store.loadOAuthSignIn(); - if (isOAuthSignIn) { const result = await oAuthSignOutRedirect( cognitoConfig, preferPrivateSession, + redirectUrl, ); // If this was a private session, clear data and tokens regardless of what happened with logout // endpoint. Otherwise, only do so if the logout endpoint was succesfully visited. diff --git a/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.ts b/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.ts index 0e16008e752..da4f7eb380a 100644 --- a/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.ts +++ b/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.ts @@ -5,6 +5,7 @@ import { CognitoUserPoolConfig } from '@aws-amplify/core'; import { OpenAuthSessionResult } from '../../../../utils/types'; import { DefaultOAuthStore } from '../../utils/signInWithRedirectStore'; +import { TokenOrchestrator } from '../../tokenProvider'; import { completeOAuthSignOut } from './completeOAuthSignOut'; import { oAuthSignOutRedirect } from './oAuthSignOutRedirect'; @@ -12,15 +13,24 @@ import { oAuthSignOutRedirect } from './oAuthSignOutRedirect'; export const handleOAuthSignOut = async ( cognitoConfig: CognitoUserPoolConfig, store: DefaultOAuthStore, + tokenOrchestrator: TokenOrchestrator, + redirectUrl: string | undefined, ): Promise => { const { isOAuthSignIn } = await store.loadOAuthSignIn(); + const oauthMetadata = await tokenOrchestrator.getOAuthMetadata(); // Clear everything before attempting to visted logout endpoint since the current application // state could be wiped away on redirect await completeOAuthSignOut(store); - if (isOAuthSignIn) { + // The isOAuthSignIn flag is propagated by the oAuthToken store which manages oauth keys in local storage only. + // These keys are used to determine if a user is in an inflight or signedIn oauth states. + // However, this behavior represents an issue when 2 apps share the same set of tokens in Cookie storage because the app that didn't + // start the OAuth will not have access to the oauth keys. + // A heuristic solution is to add oauth metadata to the tokenOrchestrator which will have access to the underlying + // storage mechanism that is used by Amplify. + if (isOAuthSignIn || oauthMetadata?.oauthSignIn) { // On web, this will always end up being a void action - return oAuthSignOutRedirect(cognitoConfig); + return oAuthSignOutRedirect(cognitoConfig, false, redirectUrl); } }; diff --git a/packages/auth/src/providers/cognito/utils/oauth/oAuthSignOutRedirect.ts b/packages/auth/src/providers/cognito/utils/oauth/oAuthSignOutRedirect.ts index 2dd1eda520a..f86c0686df6 100644 --- a/packages/auth/src/providers/cognito/utils/oauth/oAuthSignOutRedirect.ts +++ b/packages/auth/src/providers/cognito/utils/oauth/oAuthSignOutRedirect.ts @@ -12,11 +12,12 @@ import { getRedirectUrl } from './getRedirectUrl'; export const oAuthSignOutRedirect = async ( authConfig: CognitoUserPoolConfig, preferPrivateSession = false, + redirectUrl?: string, ): Promise => { assertOAuthConfig(authConfig); const { loginWith, userPoolClientId } = authConfig; const { domain, redirectSignOut } = loginWith.oauth; - const signoutUri = getRedirectUrl(redirectSignOut); + const signoutUri = getRedirectUrl(redirectSignOut, redirectUrl); const oAuthLogoutEndpoint = `https://${domain}/logout?${Object.entries({ client_id: userPoolClientId, logout_uri: encodeURIComponent(signoutUri), diff --git a/packages/auth/src/types/inputs.ts b/packages/auth/src/types/inputs.ts index 437f5e398f4..6e152cdc1e5 100644 --- a/packages/auth/src/types/inputs.ts +++ b/packages/auth/src/types/inputs.ts @@ -47,6 +47,9 @@ export interface AuthSignInInput< } export interface AuthSignOutInput { global: boolean; + oauth?: { + redirectUrl?: string; + }; } export type AuthProvider = 'Amazon' | 'Apple' | 'Facebook' | 'Google'; diff --git a/packages/aws-amplify/CHANGELOG.md b/packages/aws-amplify/CHANGELOG.md index b12e99b983b..50cf7bd31d8 100644 --- a/packages/aws-amplify/CHANGELOG.md +++ b/packages/aws-amplify/CHANGELOG.md @@ -3,6 +3,25 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.6.0](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.5.4...aws-amplify@6.6.0) (2024-09-04) + +### Features + +- **api-graphql:** pass authToken via subprotocol ([#13727](https://github.com/aws-amplify/amplify-js/issues/13727)) ([ced891c](https://github.com/aws-amplify/amplify-js/commit/ced891c2e4f6b0f1fdeaf44ab80cae9d585b6d15)) +- **auth:** HostedUI oidc signout ([#13512](https://github.com/aws-amplify/amplify-js/issues/13512)) ([e8fb997](https://github.com/aws-amplify/amplify-js/commit/e8fb9973f8e3e3490619416a778ec1460cafaf9a)), closes [#13712](https://github.com/aws-amplify/amplify-js/issues/13712) [#13736](https://github.com/aws-amplify/amplify-js/issues/13736) + +## [6.5.4](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.5.3...aws-amplify@6.5.4) (2024-09-03) + +**Note:** Version bump only for package aws-amplify + +## [6.5.3](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.5.2...aws-amplify@6.5.3) (2024-08-26) + +**Note:** Version bump only for package aws-amplify + +## [6.5.2](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.5.1...aws-amplify@6.5.2) (2024-08-21) + +**Note:** Version bump only for package aws-amplify + ## [6.5.1](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.5.0...aws-amplify@6.5.1) (2024-08-15) **Note:** Version bump only for package aws-amplify diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index 914bb57b867..3798dba643f 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -1,6 +1,6 @@ { "name": "aws-amplify", - "version": "6.5.1", + "version": "6.6.0", "description": "AWS Amplify is a JavaScript library for Frontend and mobile developers building cloud-enabled applications.", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -276,13 +276,13 @@ "utils" ], "dependencies": { - "@aws-amplify/analytics": "7.0.43", - "@aws-amplify/api": "6.0.45", - "@aws-amplify/auth": "6.3.14", - "@aws-amplify/core": "6.3.10", - "@aws-amplify/datastore": "5.0.45", - "@aws-amplify/notifications": "2.0.43", - "@aws-amplify/storage": "6.6.1", + "@aws-amplify/analytics": "7.0.47", + "@aws-amplify/api": "6.0.49", + "@aws-amplify/auth": "6.4.0", + "@aws-amplify/core": "6.4.0", + "@aws-amplify/datastore": "5.0.49", + "@aws-amplify/notifications": "2.0.47", + "@aws-amplify/storage": "6.6.5", "tslib": "^2.5.0" }, "devDependencies": { @@ -293,7 +293,7 @@ "name": "[Analytics] record (Pinpoint)", "path": "./dist/esm/analytics/index.mjs", "import": "{ record }", - "limit": "17.28 kB" + "limit": "17.34 kB" }, { "name": "[Analytics] record (Kinesis)", @@ -317,7 +317,7 @@ "name": "[Analytics] identifyUser (Pinpoint)", "path": "./dist/esm/analytics/index.mjs", "import": "{ identifyUser }", - "limit": "15.79 kB" + "limit": "15.84 kB" }, { "name": "[Analytics] enable", @@ -335,7 +335,7 @@ "name": "[API] generateClient (AppSync)", "path": "./dist/esm/api/index.mjs", "import": "{ generateClient }", - "limit": "41 kB" + "limit": "41.5 kB" }, { "name": "[API] REST API handlers", @@ -353,13 +353,13 @@ "name": "[Auth] resetPassword (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ resetPassword }", - "limit": "12.62 kB" + "limit": "12.66 kB" }, { "name": "[Auth] confirmResetPassword (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ confirmResetPassword }", - "limit": "12.56 kB" + "limit": "12.60 kB" }, { "name": "[Auth] signIn (Cognito)", @@ -371,7 +371,7 @@ "name": "[Auth] resendSignUpCode (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ resendSignUpCode }", - "limit": "12.57 kB" + "limit": "12.61 kB" }, { "name": "[Auth] confirmSignUp (Cognito)", @@ -389,25 +389,25 @@ "name": "[Auth] updateMFAPreference (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ updateMFAPreference }", - "limit": "11.92 kB" + "limit": "12.07 kB" }, { "name": "[Auth] fetchMFAPreference (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ fetchMFAPreference }", - "limit": "11.94 kB" + "limit": "12.1 kB" }, { "name": "[Auth] verifyTOTPSetup (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ verifyTOTPSetup }", - "limit": "12.78 kB" + "limit": "12.94 kB" }, { "name": "[Auth] updatePassword (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ updatePassword }", - "limit": "12.80 kB" + "limit": "12.96 kB" }, { "name": "[Auth] setUpTOTP (Cognito)", @@ -419,19 +419,19 @@ "name": "[Auth] updateUserAttributes (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ updateUserAttributes }", - "limit": "12.03 kB" + "limit": "12.19 kB" }, { "name": "[Auth] getCurrentUser (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ getCurrentUser }", - "limit": "7.86 kB" + "limit": "7.99 kB" }, { "name": "[Auth] confirmUserAttribute (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ confirmUserAttribute }", - "limit": "12.79 kB" + "limit": "12.93 kB" }, { "name": "[Auth] signInWithRedirect (Cognito)", @@ -443,7 +443,7 @@ "name": "[Auth] fetchUserAttributes (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ fetchUserAttributes }", - "limit": "11.86 kB" + "limit": "12.01 kB" }, { "name": "[Auth] Basic Auth Flow (Cognito)", @@ -461,37 +461,37 @@ "name": "[Storage] copy (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ copy }", - "limit": "15.42 kB" + "limit": "15.52 kB" }, { "name": "[Storage] downloadData (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ downloadData }", - "limit": "15.93 kB" + "limit": "16.03 kB" }, { "name": "[Storage] getProperties (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ getProperties }", - "limit": "15.20 kB" + "limit": "15.29 kB" }, { "name": "[Storage] getUrl (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ getUrl }", - "limit": "16.43 kB" + "limit": "16.51 kB" }, { "name": "[Storage] list (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ list }", - "limit": "15.82 kB" + "limit": "15.91 kB" }, { "name": "[Storage] remove (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ remove }", - "limit": "15.05 kB" + "limit": "15.16 kB" }, { "name": "[Storage] uploadData (S3)", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 5a670ccd726..a067fe29edd 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -3,6 +3,24 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.4.0](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.3.13...@aws-amplify/core@6.4.0) (2024-09-04) + +### Features + +- **api-graphql:** pass authToken via subprotocol ([#13727](https://github.com/aws-amplify/amplify-js/issues/13727)) ([ced891c](https://github.com/aws-amplify/amplify-js/commit/ced891c2e4f6b0f1fdeaf44ab80cae9d585b6d15)) + +## [6.3.13](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.3.12...@aws-amplify/core@6.3.13) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/core + +## [6.3.12](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.3.11...@aws-amplify/core@6.3.12) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/core + +## [6.3.11](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.3.10...@aws-amplify/core@6.3.11) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/core + ## [6.3.10](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.3.9...@aws-amplify/core@6.3.10) (2024-08-15) **Note:** Version bump only for package @aws-amplify/core diff --git a/packages/core/__tests__/utils/convert/base64Encoder.test.ts b/packages/core/__tests__/utils/convert/base64Encoder.test.ts index 14ffb0064b0..c1d1aeb203a 100644 --- a/packages/core/__tests__/utils/convert/base64Encoder.test.ts +++ b/packages/core/__tests__/utils/convert/base64Encoder.test.ts @@ -43,4 +43,12 @@ describe('base64Encoder (non-native)', () => { 'test-test_test', ); }); + + it('makes the result a base64url string with no padding chars', () => { + const mockResult = 'test+test/test=='; // = is the base64 padding char + mockBtoa.mockReturnValue(mockResult); + expect( + base64Encoder.convert('test', { urlSafe: true, skipPadding: true }), + ).toBe('test-test_test'); + }); }); diff --git a/packages/core/metadata b/packages/core/metadata index 041bf1756dc..2243de0562d 100644 --- a/packages/core/metadata +++ b/packages/core/metadata @@ -1 +1 @@ -2258de69f +af85cb83f diff --git a/packages/core/package.json b/packages/core/package.json index 4fdbe7c02df..44e700c068d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/core", - "version": "6.3.10", + "version": "6.4.0", "description": "Core category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -60,7 +60,7 @@ "uuid": "^9.0.0" }, "devDependencies": { - "@aws-amplify/react-native": "1.1.4", + "@aws-amplify/react-native": "1.1.5", "@types/js-cookie": "3.0.2", "genversion": "^2.2.0", "typescript": "5.0.2" @@ -82,13 +82,13 @@ "name": "Custom clients (fetch handler)", "path": "./dist/esm/clients/handlers/fetch.mjs", "import": "{ fetchTransferHandler }", - "limit": "500 B" + "limit": "575 B" }, { "name": "Custom clients (unauthenticated handler)", "path": "./dist/esm/clients/handlers/unauthenticated.mjs", "import": "{ unauthenticatedHandler }", - "limit": "1 kB" + "limit": "1.15 kB" }, { "name": "Custom clients (request signer)", diff --git a/packages/core/src/clients/handlers/fetch.ts b/packages/core/src/clients/handlers/fetch.ts index be8e5ac9520..30a37f210e2 100644 --- a/packages/core/src/clients/handlers/fetch.ts +++ b/packages/core/src/clients/handlers/fetch.ts @@ -3,7 +3,9 @@ import { HttpRequest, HttpResponse, HttpTransferOptions } from '../types/http'; import { TransferHandler } from '../types/core'; +import { AmplifyError } from '../../errors'; import { withMemoization } from '../utils/memoization'; +import { AmplifyErrorCode } from '../../types'; const shouldSendBody = (method: string) => !['HEAD', 'GET', 'DELETE'].includes(method.toUpperCase()); @@ -28,11 +30,12 @@ export const fetchTransferHandler: TransferHandler< credentials: withCrossDomainCredentials ? 'include' : 'same-origin', }); } catch (e) { - // TODO: needs to revise error handling in v6 - // For now this is a thin wrapper over original fetch error similar to cognito-identity-js package. - // Ref: https://github.com/aws-amplify/amplify-js/blob/4fbc8c0a2be7526aab723579b4c95b552195a80b/packages/amazon-cognito-identity-js/src/Client.js#L103-L108 if (e instanceof TypeError) { - throw new Error('Network error'); + throw new AmplifyError({ + name: AmplifyErrorCode.NetworkError, + message: 'A network error has occurred.', + underlyingError: e, + }); } throw e; } diff --git a/packages/core/src/errors/errorHelpers.ts b/packages/core/src/errors/errorHelpers.ts index a343c51f3f2..cb78f5534c9 100644 --- a/packages/core/src/errors/errorHelpers.ts +++ b/packages/core/src/errors/errorHelpers.ts @@ -15,6 +15,9 @@ const amplifyErrorMap: AmplifyErrorMap = { [AmplifyErrorCode.Unknown]: { message: 'An unknown error occurred.', }, + [AmplifyErrorCode.NetworkError]: { + message: 'A network error has occurred.', + }, }; export const assert: AssertionFunction = diff --git a/packages/core/src/singleton/Auth/utils/index.ts b/packages/core/src/singleton/Auth/utils/index.ts index c710e64a1ee..496d28db68d 100644 --- a/packages/core/src/singleton/Auth/utils/index.ts +++ b/packages/core/src/singleton/Auth/utils/index.ts @@ -66,6 +66,12 @@ export function assertIdentityPoolIdConfig( ); } +/** + * Decodes payload of JWT token + * + * @param {String} token A string representing a token to be decoded + * @throws {@link Error} - Throws error when token is invalid or payload malformed. + */ export function decodeJWT(token: string): JWT { const tokenParts = token.split('.'); diff --git a/packages/core/src/singleton/apis/fetchAuthSession.ts b/packages/core/src/singleton/apis/fetchAuthSession.ts index f7e1248ae54..1e7d4aa5f04 100644 --- a/packages/core/src/singleton/apis/fetchAuthSession.ts +++ b/packages/core/src/singleton/apis/fetchAuthSession.ts @@ -6,6 +6,15 @@ import { AuthSession, FetchAuthSessionOptions } from '../Auth/types'; import { fetchAuthSession as fetchAuthSessionInternal } from './internal/fetchAuthSession'; +/** + * Fetch the auth session including the tokens and credentials if they are available. By default it + * does not refresh the auth tokens or credentials if they are loaded in storage already. You can force a refresh + * with `{ forceRefresh: true }` input. + * + * @param options - Options configuring the fetch behavior. + * @throws {@link AuthError} - Throws error when session information cannot be refreshed. + * @returns Promise + */ export const fetchAuthSession = ( options?: FetchAuthSessionOptions, ): Promise => { diff --git a/packages/core/src/types/errors.ts b/packages/core/src/types/errors.ts index 19ecec76935..3401616074f 100644 --- a/packages/core/src/types/errors.ts +++ b/packages/core/src/types/errors.ts @@ -5,6 +5,7 @@ export enum AmplifyErrorCode { NoEndpointId = 'NoEndpointId', PlatformNotSupported = 'PlatformNotSupported', Unknown = 'Unknown', + NetworkError = 'NetworkError', } export interface AmplifyErrorParams { diff --git a/packages/core/src/utils/convert/base64/base64Encoder.ts b/packages/core/src/utils/convert/base64/base64Encoder.ts index 05f01ab1a95..43184997819 100644 --- a/packages/core/src/utils/convert/base64/base64Encoder.ts +++ b/packages/core/src/utils/convert/base64/base64Encoder.ts @@ -2,18 +2,37 @@ // SPDX-License-Identifier: Apache-2.0 import { getBtoa } from '../../globalHelpers'; -import { Base64Encoder } from '../types'; +import type { Base64Encoder, Base64EncoderConvertOptions } from '../types'; import { bytesToString } from './bytesToString'; export const base64Encoder: Base64Encoder = { - convert(input, { urlSafe } = { urlSafe: false }) { + /** + * Convert input to base64-encoded string + * @param input - string to convert to base64 + * @param options - encoding options that can optionally produce a base64url string + * @returns base64-encoded string + */ + convert( + input, + options: Base64EncoderConvertOptions = { + urlSafe: false, + skipPadding: false, + }, + ) { const inputStr = typeof input === 'string' ? input : bytesToString(input); - const encodedStr = getBtoa()(inputStr); + let encodedStr = getBtoa()(inputStr); - // see details about the char replacing at https://datatracker.ietf.org/doc/html/rfc4648#section-5 - return urlSafe - ? encodedStr.replace(/\+/g, '-').replace(/\//g, '_') - : encodedStr; + // urlSafe char replacement and skipPadding options conform to the base64url spec + // https://datatracker.ietf.org/doc/html/rfc4648#section-5 + if (options.urlSafe) { + encodedStr = encodedStr.replace(/\+/g, '-').replace(/\//g, '_'); + } + + if (options.skipPadding) { + encodedStr = encodedStr.replace(/=/g, ''); + } + + return encodedStr; }, }; diff --git a/packages/core/src/utils/convert/types.ts b/packages/core/src/utils/convert/types.ts index ed53d507b81..7a1c4d4d86d 100644 --- a/packages/core/src/utils/convert/types.ts +++ b/packages/core/src/utils/convert/types.ts @@ -3,6 +3,7 @@ export interface Base64EncoderConvertOptions { urlSafe: boolean; + skipPadding?: boolean; } export interface Base64Encoder { diff --git a/packages/datastore-storage-adapter/CHANGELOG.md b/packages/datastore-storage-adapter/CHANGELOG.md index 40b028d9a50..938a74baa18 100644 --- a/packages/datastore-storage-adapter/CHANGELOG.md +++ b/packages/datastore-storage-adapter/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.49](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.48...@aws-amplify/datastore-storage-adapter@2.1.49) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/datastore-storage-adapter + +## [2.1.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.47...@aws-amplify/datastore-storage-adapter@2.1.48) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/datastore-storage-adapter + +## [2.1.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.46...@aws-amplify/datastore-storage-adapter@2.1.47) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/datastore-storage-adapter + +## [2.1.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.45...@aws-amplify/datastore-storage-adapter@2.1.46) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/datastore-storage-adapter + ## [2.1.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.44...@aws-amplify/datastore-storage-adapter@2.1.45) (2024-08-15) **Note:** Version bump only for package @aws-amplify/datastore-storage-adapter diff --git a/packages/datastore-storage-adapter/package.json b/packages/datastore-storage-adapter/package.json index 7f89c7c56a7..cdfb7b16dfe 100644 --- a/packages/datastore-storage-adapter/package.json +++ b/packages/datastore-storage-adapter/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/datastore-storage-adapter", - "version": "2.1.45", + "version": "2.1.49", "description": "SQLite storage adapter for Amplify DataStore ", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -36,8 +36,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", - "@aws-amplify/datastore": "5.0.45", + "@aws-amplify/core": "6.4.0", + "@aws-amplify/datastore": "5.0.49", "@types/react-native-sqlite-storage": "5.0.1", "expo-file-system": "13.1.4", "expo-sqlite": "10.1.0", diff --git a/packages/datastore/CHANGELOG.md b/packages/datastore/CHANGELOG.md index a0e827ac973..4ed6212011c 100644 --- a/packages/datastore/CHANGELOG.md +++ b/packages/datastore/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.0.49](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.48...@aws-amplify/datastore@5.0.49) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/datastore + +## [5.0.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.47...@aws-amplify/datastore@5.0.48) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/datastore + +## [5.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.46...@aws-amplify/datastore@5.0.47) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/datastore + +## [5.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.45...@aws-amplify/datastore@5.0.46) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/datastore + ## [5.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.44...@aws-amplify/datastore@5.0.45) (2024-08-15) **Note:** Version bump only for package @aws-amplify/datastore diff --git a/packages/datastore/package.json b/packages/datastore/package.json index 86b1328a942..a5f9e320ba0 100644 --- a/packages/datastore/package.json +++ b/packages/datastore/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/datastore", - "version": "5.0.45", + "version": "5.0.49", "description": "AppSyncLocal support for aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -44,7 +44,7 @@ "src" ], "dependencies": { - "@aws-amplify/api": "6.0.45", + "@aws-amplify/api": "6.0.49", "buffer": "4.9.2", "idb": "5.0.6", "immer": "9.0.6", @@ -55,8 +55,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", - "@aws-amplify/react-native": "1.1.4", + "@aws-amplify/core": "6.4.0", + "@aws-amplify/react-native": "1.1.5", "@types/uuid-validate": "^0.0.1", "dexie": "3.2.2", "dexie-export-import": "1.0.3", diff --git a/packages/datastore/src/types.ts b/packages/datastore/src/types.ts index 75e0b9ff27e..5cd8c6085c0 100644 --- a/packages/datastore/src/types.ts +++ b/packages/datastore/src/types.ts @@ -71,10 +71,20 @@ export interface SchemaModel { syncable?: boolean; } +/** + * @private + * @param obj + * @returns `true` if the given object likely represents a model in a schema. + */ export function isSchemaModel(obj: any): obj is SchemaModel { return obj && (obj as SchemaModel).pluralName !== undefined; } +/** + * @private + * @param m + * @returns `true` if the given schema entry defines Schema Model attributes. + */ export function isSchemaModelWithAttributes( m: SchemaModel | SchemaNonModel, ): m is SchemaModel { @@ -104,6 +114,11 @@ interface AssociatedWith { targetNames?: string[]; } +/** + * @private + * @param obj + * @returns `true` if the object is an `AssociatedWith` definition. + */ export function isAssociatedWith(obj: any): obj is AssociatedWith { return obj && obj.associatedWith; } @@ -114,6 +129,11 @@ interface TargetNameAssociation { targetNames?: string[]; } +/** + * @private + * @param obj + * @returns `true` if the given object specifies either `targetName` or `targetNames`. + */ export function isTargetNameAssociation( obj: any, ): obj is TargetNameAssociation { @@ -123,6 +143,13 @@ export function isTargetNameAssociation( interface FieldAssociation { connectionType: 'HAS_ONE' | 'BELONGS_TO' | 'HAS_MANY'; } + +/** + * @private + * @param obj + * @param fieldName + * @returns Truthy if the object has a `FieldAssociation` for the given `fieldName`. + */ export function isFieldAssociation( obj: any, fieldName: string, @@ -154,6 +181,11 @@ export interface ModelAttributeAuth { }; } +/** + * @private + * @param attr + * @returns `true` if the given attribute is an auth attribute with rules. + */ export function isModelAttributeAuth( attr: ModelAttribute, ): attr is ModelAttributeAuth { @@ -189,6 +221,11 @@ interface ModelAttributeCompositeKey { }; } +/** + * @private + * @param attr + * @returns `true` if the given attribute is a key field. + */ export function isModelAttributeKey( attr: ModelAttribute, ): attr is ModelAttributeKey { @@ -200,12 +237,22 @@ export function isModelAttributeKey( ); } +/** + * @private + * @param attr + * @returns `true` if the given attribute is a primary key, indicated by the key being unnamed. + */ export function isModelAttributePrimaryKey( attr: ModelAttribute, ): attr is ModelAttributePrimaryKey { return isModelAttributeKey(attr) && attr.properties.name === undefined; } +/** + * @private + * @param attr + * @returns `true` if the given attribute represents a composite key with multiple fields. + */ export function isModelAttributeCompositeKey( attr: ModelAttribute, ): attr is ModelAttributeCompositeKey { @@ -334,6 +381,10 @@ export interface AuthorizationRule { areSubscriptionsPublic: boolean; } +/** + * @private + * @returns `true` if the given field specifies a scalar type. + */ export function isGraphQLScalarType( obj: any, ): obj is keyof Omit< @@ -347,6 +398,12 @@ export interface ModelFieldType { model: string; modelConstructor?: ModelMeta; } + +/** + * @private + * @param obj + * @returns `true` if the given field specifies a Model. + */ export function isModelFieldType<_ extends PersistentModel>( obj: any, ): obj is ModelFieldType { @@ -359,6 +416,12 @@ export function isModelFieldType<_ extends PersistentModel>( export interface NonModelFieldType { nonModel: string; } + +/** + * @private + * @param obj + * @returns `true` if the given field specifies a custom non-model type. + */ export function isNonModelFieldType(obj: any): obj is NonModelFieldType { const typeField: keyof NonModelFieldType = 'nonModel'; if (obj && obj[typeField]) return true; @@ -369,6 +432,12 @@ export function isNonModelFieldType(obj: any): obj is NonModelFieldType { interface EnumFieldType { enum: string; } + +/** + * @private + * @param obj + * @returns `true` if the object is an `EnumFieldType`. + */ export function isEnumFieldType(obj: any): obj is EnumFieldType { const modelField: keyof EnumFieldType = 'enum'; if (obj && obj[modelField]) return true; @@ -648,6 +717,12 @@ export type IdentifierFieldOrIdentifierObject< M extends PersistentModelMetaData, > = Pick> | IdentifierFieldValue; +/** + * @private + * @param obj + * @param modelDefinition + * @returns `true` if the given item is an object that has all identifier fields populated. + */ export function isIdentifierObject( obj: any, modelDefinition: SchemaModel, @@ -772,12 +847,22 @@ export interface PredicatesGroup { predicates: (PredicateObject | PredicatesGroup)[]; } +/** + * @private + * @param obj + * @returns `true` if the given predicate field object, specifying an [in-]equality test against a field. + */ export function isPredicateObj( obj: any, ): obj is PredicateObject { return obj && (obj as PredicateObject).field !== undefined; } +/** + * @private + * @param obj + * @returns `true` if the given predicate object is a "group" like "and", "or", or "not". + */ export function isPredicateGroup( obj: any, ): obj is PredicatesGroup { @@ -1032,6 +1117,34 @@ type ConditionProducer> = ( ...args: A ) => A['length'] extends keyof Lookup ? Lookup[A['length']] : never; +/** + * Build an expression that can be used to filter which items of a given Model + * are synchronized down from the GraphQL service. E.g., + * + * ```ts + * import { DataStore, syncExpression } from 'aws-amplify/datastore'; + * import { Post, Comment } from './models'; + * + * + * DataStore.configure({ + * syncExpressions: [ + * syncExpression(Post, () => { + * return (post) => post.rating.gt(5); + * }), + * syncExpression(Comment, () => { + * return (comment) => comment.status.eq('active'); + * }) + * ] + * }); + * ``` + * + * When DataStore starts syncing, only Posts with `rating > 5` and Comments with + * `status === 'active'` will be synced down to the user's local store. + * + * @param modelConstructor The Model from the schema. + * @param conditionProducer A function that builds a condition object that can describe how to filter the model. + * @returns An sync expression object that can be attached to the DataStore `syncExpressions` configuration property. + */ export async function syncExpression< T extends PersistentModel, A extends Option, diff --git a/packages/geo/CHANGELOG.md b/packages/geo/CHANGELOG.md index fa91c8a9580..a0ec1fda10c 100644 --- a/packages/geo/CHANGELOG.md +++ b/packages/geo/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.46...@aws-amplify/geo@3.0.47) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/geo + +## [3.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.45...@aws-amplify/geo@3.0.46) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/geo + +## [3.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.44...@aws-amplify/geo@3.0.45) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/geo + +## [3.0.44](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.43...@aws-amplify/geo@3.0.44) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/geo + ## [3.0.43](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.42...@aws-amplify/geo@3.0.43) (2024-08-15) **Note:** Version bump only for package @aws-amplify/geo diff --git a/packages/geo/package.json b/packages/geo/package.json index 8381d2fcde9..517bd975c51 100644 --- a/packages/geo/package.json +++ b/packages/geo/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/geo", - "version": "3.0.43", + "version": "3.0.47", "description": "Geo category for aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -76,7 +76,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", + "@aws-amplify/core": "6.4.0", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/interactions/CHANGELOG.md b/packages/interactions/CHANGELOG.md index feff5def1a3..4ec6748dccc 100644 --- a/packages/interactions/CHANGELOG.md +++ b/packages/interactions/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.45...@aws-amplify/interactions@6.0.46) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/interactions + +## [6.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.44...@aws-amplify/interactions@6.0.45) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/interactions + +## [6.0.44](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.43...@aws-amplify/interactions@6.0.44) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/interactions + +## [6.0.43](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.42...@aws-amplify/interactions@6.0.43) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/interactions + ## [6.0.42](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.41...@aws-amplify/interactions@6.0.42) (2024-08-15) **Note:** Version bump only for package @aws-amplify/interactions diff --git a/packages/interactions/package.json b/packages/interactions/package.json index 0627e71722c..80606ac6e14 100644 --- a/packages/interactions/package.json +++ b/packages/interactions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/interactions", - "version": "6.0.42", + "version": "6.0.46", "description": "Interactions category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -81,7 +81,7 @@ "uuid": "^9.0.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", + "@aws-amplify/core": "6.4.0", "typescript": "^5.0.2" }, "size-limit": [ diff --git a/packages/notifications/CHANGELOG.md b/packages/notifications/CHANGELOG.md index 5d799ca9684..ed1872cad49 100644 --- a/packages/notifications/CHANGELOG.md +++ b/packages/notifications/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.46...@aws-amplify/notifications@2.0.47) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/notifications + +## [2.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.45...@aws-amplify/notifications@2.0.46) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/notifications + +## [2.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.44...@aws-amplify/notifications@2.0.45) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/notifications + +## [2.0.44](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.43...@aws-amplify/notifications@2.0.44) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/notifications + ## [2.0.43](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.42...@aws-amplify/notifications@2.0.43) (2024-08-15) **Note:** Version bump only for package @aws-amplify/notifications diff --git a/packages/notifications/package.json b/packages/notifications/package.json index 27cc8e3b67b..176dd2da556 100644 --- a/packages/notifications/package.json +++ b/packages/notifications/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/notifications", - "version": "2.0.43", + "version": "2.0.47", "description": "Notifications category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -98,8 +98,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", - "@aws-amplify/react-native": "1.1.4", + "@aws-amplify/core": "6.4.0", + "@aws-amplify/react-native": "1.1.5", "typescript": "5.0.2" } } diff --git a/packages/predictions/CHANGELOG.md b/packages/predictions/CHANGELOG.md index c3223244fc4..ca05ca840e3 100644 --- a/packages/predictions/CHANGELOG.md +++ b/packages/predictions/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.22](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.21...@aws-amplify/predictions@6.1.22) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/predictions + +## [6.1.21](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.20...@aws-amplify/predictions@6.1.21) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/predictions + +## [6.1.20](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.19...@aws-amplify/predictions@6.1.20) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/predictions + +## [6.1.19](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.18...@aws-amplify/predictions@6.1.19) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/predictions + ## [6.1.18](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.17...@aws-amplify/predictions@6.1.18) (2024-08-15) **Note:** Version bump only for package @aws-amplify/predictions diff --git a/packages/predictions/package.json b/packages/predictions/package.json index 6746909e1ef..4d605881b28 100644 --- a/packages/predictions/package.json +++ b/packages/predictions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/predictions", - "version": "6.1.18", + "version": "6.1.22", "description": "Machine learning category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -43,7 +43,7 @@ "src" ], "dependencies": { - "@aws-amplify/storage": "6.6.1", + "@aws-amplify/storage": "6.6.5", "@aws-sdk/client-comprehend": "3.621.0", "@aws-sdk/client-polly": "3.621.0", "@aws-sdk/client-rekognition": "3.621.0", @@ -59,7 +59,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", + "@aws-amplify/core": "6.4.0", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/pubsub/CHANGELOG.md b/packages/pubsub/CHANGELOG.md index 3898302af49..c76f43577f2 100644 --- a/packages/pubsub/CHANGELOG.md +++ b/packages/pubsub/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.22](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.21...@aws-amplify/pubsub@6.1.22) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/pubsub + +## [6.1.21](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.20...@aws-amplify/pubsub@6.1.21) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/pubsub + +## [6.1.20](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.19...@aws-amplify/pubsub@6.1.20) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/pubsub + +## [6.1.19](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.18...@aws-amplify/pubsub@6.1.19) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/pubsub + ## [6.1.18](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.17...@aws-amplify/pubsub@6.1.18) (2024-08-15) **Note:** Version bump only for package @aws-amplify/pubsub diff --git a/packages/pubsub/package.json b/packages/pubsub/package.json index 476d00daa09..043eba118a2 100644 --- a/packages/pubsub/package.json +++ b/packages/pubsub/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/pubsub", - "version": "6.1.18", + "version": "6.1.22", "description": "Pubsub category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -73,7 +73,7 @@ "mqtt" ], "dependencies": { - "@aws-amplify/auth": "6.3.14", + "@aws-amplify/auth": "6.4.0", "buffer": "4.9.2", "graphql": "15.8.0", "rxjs": "^7.8.1", @@ -84,7 +84,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", + "@aws-amplify/core": "6.4.0", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/react-native/CHANGELOG.md b/packages/react-native/CHANGELOG.md index 9798ff01dbc..b0781ff55cd 100644 --- a/packages/react-native/CHANGELOG.md +++ b/packages/react-native/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.5](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/react-native@1.1.4...@aws-amplify/react-native@1.1.5) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/react-native + ## [1.1.4](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/react-native@1.1.3...@aws-amplify/react-native@1.1.4) (2024-07-23) **Note:** Version bump only for package @aws-amplify/react-native diff --git a/packages/react-native/package.json b/packages/react-native/package.json index b347135b43a..a8f470b33e1 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/react-native", - "version": "1.1.4", + "version": "1.1.5", "description": "React Native core module for aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -34,7 +34,7 @@ }, "devDependencies": { "@aws-amplify/rtn-push-notification": "1.2.31", - "@aws-amplify/rtn-web-browser": "1.0.31", + "@aws-amplify/rtn-web-browser": "1.1.0", "@react-native-async-storage/async-storage": "^1.17.12", "@react-native-community/netinfo": "4.7.0", "@types/base-64": "1.0.0", diff --git a/packages/rtn-web-browser/CHANGELOG.md b/packages/rtn-web-browser/CHANGELOG.md index 22f6623f5a2..468990e929c 100644 --- a/packages/rtn-web-browser/CHANGELOG.md +++ b/packages/rtn-web-browser/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.1.0](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/rtn-web-browser@1.0.31...@aws-amplify/rtn-web-browser@1.1.0) (2024-09-04) + +### Features + +- **auth:** HostedUI oidc signout ([#13512](https://github.com/aws-amplify/amplify-js/issues/13512)) ([e8fb997](https://github.com/aws-amplify/amplify-js/commit/e8fb9973f8e3e3490619416a778ec1460cafaf9a)), closes [#13712](https://github.com/aws-amplify/amplify-js/issues/13712) [#13736](https://github.com/aws-amplify/amplify-js/issues/13736) + ## [1.0.31](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/rtn-web-browser@1.0.30...@aws-amplify/rtn-web-browser@1.0.31) (2024-07-23) ### Bug Fixes diff --git a/packages/rtn-web-browser/package.json b/packages/rtn-web-browser/package.json index e1b0366cef3..f9230a22232 100644 --- a/packages/rtn-web-browser/package.json +++ b/packages/rtn-web-browser/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/rtn-web-browser", - "version": "1.0.31", + "version": "1.1.0", "description": "React Native module for aws-amplify web browser", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -25,7 +25,7 @@ }, "devDependencies": { "@types/react-native": "0.70.0", - "react-native": "0.72.3", + "react-native": "0.72.15", "typescript": "5.1.6" }, "repository": { diff --git a/packages/storage/CHANGELOG.md b/packages/storage/CHANGELOG.md index 64563604a5e..0abef255db5 100644 --- a/packages/storage/CHANGELOG.md +++ b/packages/storage/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.6.5](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.4...@aws-amplify/storage@6.6.5) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/storage + +## [6.6.4](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.3...@aws-amplify/storage@6.6.4) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/storage + +## [6.6.3](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.2...@aws-amplify/storage@6.6.3) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/storage + +## [6.6.2](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.1...@aws-amplify/storage@6.6.2) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/storage + ## [6.6.1](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.0...@aws-amplify/storage@6.6.1) (2024-08-15) **Note:** Version bump only for package @aws-amplify/storage diff --git a/packages/storage/__tests__/providers/s3/utils/client/S3/cases/getDataAccess.ts b/packages/storage/__tests__/providers/s3/utils/client/S3/cases/getDataAccess.ts index b0a0d174a7a..851bc993a7c 100644 --- a/packages/storage/__tests__/providers/s3/utils/client/S3/cases/getDataAccess.ts +++ b/packages/storage/__tests__/providers/s3/utils/client/S3/cases/getDataAccess.ts @@ -83,12 +83,14 @@ const getDataAccessErrorCase: ApiFunctionalTestCase = [ headers: DEFAULT_RESPONSE_HEADERS, body: ` - - AccessDenied - Access Denied + + + AccessDenied + Access Denied + 656c76696e6727732072657175657374 Uuag1LuByRx9e6j5Onimru9pO4ZVKnJ2Qz7/C1NPcfTWAtRPfTaOFg== - + `, }, { diff --git a/packages/storage/__tests__/providers/s3/utils/client/S3/cases/listCallerAccessGrants.ts b/packages/storage/__tests__/providers/s3/utils/client/S3/cases/listCallerAccessGrants.ts index f63c80bf4bc..961ef27b3bf 100644 --- a/packages/storage/__tests__/providers/s3/utils/client/S3/cases/listCallerAccessGrants.ts +++ b/packages/storage/__tests__/providers/s3/utils/client/S3/cases/listCallerAccessGrants.ts @@ -149,12 +149,14 @@ const listCallerAccessGrantsErrorCase: ApiFunctionalTestCase< headers: DEFAULT_RESPONSE_HEADERS, body: ` - - AccessDenied - Access Denied + + + AccessDenied + Access Denied + 656c76696e6727732072657175657374 Uuag1LuByRx9e6j5Onimru9pO4ZVKnJ2Qz7/C1NPcfTWAtRPfTaOFg== - + `, }, { diff --git a/packages/storage/__tests__/providers/s3/utils/client/S3/utils/retryDecider.test.ts b/packages/storage/__tests__/providers/s3/utils/client/S3/utils/createRetryDecider.test.ts similarity index 86% rename from packages/storage/__tests__/providers/s3/utils/client/S3/utils/retryDecider.test.ts rename to packages/storage/__tests__/providers/s3/utils/client/S3/utils/createRetryDecider.test.ts index 5e1801c07db..7f30a9f0cab 100644 --- a/packages/storage/__tests__/providers/s3/utils/client/S3/utils/retryDecider.test.ts +++ b/packages/storage/__tests__/providers/s3/utils/client/S3/utils/createRetryDecider.test.ts @@ -5,17 +5,13 @@ import { getRetryDecider as getDefaultRetryDecider, } from '@aws-amplify/core/internals/aws-client-utils'; -import { retryDecider } from '../../../../../../../src/providers/s3/utils/client/utils'; -import { parseXmlError } from '../../../../../../../src/providers/s3/utils/client/utils/parsePayload'; +import { createRetryDecider } from '../../../../../../../src/providers/s3/utils/client/utils'; -jest.mock( - '../../../../../../../src/providers/s3/utils/client/utils/parsePayload', -); jest.mock('@aws-amplify/core/internals/aws-client-utils'); -const mockErrorParser = jest.mocked(parseXmlError); +const mockErrorParser = jest.fn(); -describe('retryDecider', () => { +describe('createRetryDecider', () => { const mockHttpResponse: HttpResponse = { statusCode: 200, headers: {}, @@ -34,6 +30,7 @@ describe('retryDecider', () => { it('should invoke the default retry decider', async () => { expect.assertions(3); + const retryDecider = createRetryDecider(mockErrorParser); const { retryable, isCredentialsExpiredError } = await retryDecider( mockHttpResponse, undefined, @@ -56,6 +53,7 @@ describe('retryDecider', () => { $metadata: {}, }; mockErrorParser.mockResolvedValue(parsedError); + const retryDecider = createRetryDecider(mockErrorParser); const { retryable, isCredentialsExpiredError } = await retryDecider( { ...mockHttpResponse, statusCode: 400 }, undefined, @@ -74,6 +72,7 @@ describe('retryDecider', () => { $metadata: {}, }; mockErrorParser.mockResolvedValue(parsedError); + const retryDecider = createRetryDecider(mockErrorParser); const { retryable, isCredentialsExpiredError } = await retryDecider( { ...mockHttpResponse, statusCode: 400 }, undefined, @@ -91,6 +90,7 @@ describe('retryDecider', () => { $metadata: {}, }; mockErrorParser.mockResolvedValue(parsedError); + const retryDecider = createRetryDecider(mockErrorParser); const { retryable, isCredentialsExpiredError } = await retryDecider( { ...mockHttpResponse, statusCode: 400 }, undefined, diff --git a/packages/storage/__tests__/providers/s3/utils/client/testUtils/types.ts b/packages/storage/__tests__/providers/s3/utils/client/testUtils/types.ts index b47d2ec7695..a3754b41707 100644 --- a/packages/storage/__tests__/providers/s3/utils/client/testUtils/types.ts +++ b/packages/storage/__tests__/providers/s3/utils/client/testUtils/types.ts @@ -3,7 +3,7 @@ import { HttpRequest } from '@aws-amplify/core/internals/aws-client-utils'; -interface MockFetchResponse { +export interface MockFetchResponse { body: BodyInit; headers: HeadersInit; status: number; diff --git a/packages/storage/package.json b/packages/storage/package.json index 560be8bf799..9511ddceb5f 100644 --- a/packages/storage/package.json +++ b/packages/storage/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/storage", - "version": "6.6.1", + "version": "6.6.5", "description": "Storage category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -72,7 +72,7 @@ "@aws-sdk/types": "3.398.0", "@smithy/md5-js": "2.0.7", "buffer": "4.9.2", - "crc-32": "^1.2.2", + "crc-32": "1.2.2", "fast-xml-parser": "^4.4.1", "tslib": "^2.5.0" }, @@ -111,8 +111,8 @@ }, "devDependencies": { "@types/node": "20.14.12", - "@aws-amplify/core": "6.3.10", - "@aws-amplify/react-native": "1.1.4", + "@aws-amplify/core": "6.4.0", + "@aws-amplify/react-native": "1.1.5", "typescript": "5.0.2" } } diff --git a/packages/storage/src/errors/CanceledError.ts b/packages/storage/src/errors/CanceledError.ts index 9388653432a..da069ab1f13 100644 --- a/packages/storage/src/errors/CanceledError.ts +++ b/packages/storage/src/errors/CanceledError.ts @@ -28,6 +28,8 @@ export class CanceledError extends StorageError { /** * Check if an error is caused by user calling `cancel()` on a upload/download task. If an overwriting error is * supplied to `task.cancel(errorOverwrite)`, this function will return `false`. + * @param {unknown} error The unknown exception to be checked. + * @returns - A boolean indicating if the error was from an upload cancellation */ export const isCancelError = (error: unknown): error is CanceledError => !!error && error instanceof CanceledError; diff --git a/packages/storage/src/providers/s3/utils/client/runtime/xhrTransferHandler.ts b/packages/storage/src/providers/s3/utils/client/runtime/xhrTransferHandler.ts index 371b4d8efa6..eabb0865e04 100644 --- a/packages/storage/src/providers/s3/utils/client/runtime/xhrTransferHandler.ts +++ b/packages/storage/src/providers/s3/utils/client/runtime/xhrTransferHandler.ts @@ -12,6 +12,7 @@ import { ConsoleLogger } from '@aws-amplify/core'; import { TransferProgressEvent } from '../../../../../types/common'; import { CanceledError } from '../../../../../errors/CanceledError'; +import { StorageError } from '../../../../../errors/StorageError'; import { ABORT_ERROR_CODE, @@ -80,10 +81,10 @@ export const xhrTransferHandler: TransferHandler< } xhr.addEventListener('error', () => { - const networkError = buildHandlerError( - NETWORK_ERROR_MESSAGE, - NETWORK_ERROR_CODE, - ); + const networkError = new StorageError({ + message: NETWORK_ERROR_MESSAGE, + name: NETWORK_ERROR_CODE, + }); logger.error(NETWORK_ERROR_MESSAGE); reject(networkError); xhr = null; // clean up request diff --git a/packages/storage/src/providers/s3/utils/client/s3control/base.ts b/packages/storage/src/providers/s3/utils/client/s3control/base.ts index a40f9f6a5dd..590f2b26120 100644 --- a/packages/storage/src/providers/s3/utils/client/s3control/base.ts +++ b/packages/storage/src/providers/s3/utils/client/s3control/base.ts @@ -11,7 +11,7 @@ import { jitteredBackoff, } from '@aws-amplify/core/internals/aws-client-utils'; -import { retryDecider } from '../utils'; +import { createRetryDecider, createXmlErrorParser } from '../utils'; /** * The service name used to sign requests if the API requires authentication. @@ -57,6 +57,33 @@ const endpointResolver = ( return { url: endpoint }; }; +/** + * Error parser for the XML payload of S3 control plane error response. The + * error's `Code` and `Message` locates at the nested `Error` element instead of + * the XML root element. + * + * @example + * ``` + * + * + * + * AccessDenied + * Access Denied + * + * 656c76696e6727732072657175657374 + * Uuag1LuByRx9e6j5Onimru9pO4ZVKnJ2Qz7/C1NPcfTWAtRPfTaOFg== + * + * ``` + * + * @internal + */ +export const parseXmlError = createXmlErrorParser(); + +/** + * @internal + */ +export const retryDecider = createRetryDecider(parseXmlError); + /** * @internal */ diff --git a/packages/storage/src/providers/s3/utils/client/s3control/getDataAccess.ts b/packages/storage/src/providers/s3/utils/client/s3control/getDataAccess.ts index f1053d8ddd7..84adb14e8aa 100644 --- a/packages/storage/src/providers/s3/utils/client/s3control/getDataAccess.ts +++ b/packages/storage/src/providers/s3/utils/client/s3control/getDataAccess.ts @@ -7,11 +7,11 @@ import { HttpResponse, parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils'; +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; import { AmplifyUrl, AmplifyUrlSearchParams, } from '@aws-amplify/core/internals/utils'; -import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; import { assignStringVariables, @@ -19,7 +19,6 @@ import { deserializeTimestamp, map, parseXmlBody, - parseXmlError, s3TransferHandler, } from '../utils'; @@ -27,7 +26,7 @@ import type { GetDataAccessCommandInput, GetDataAccessCommandOutput, } from './types'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; export type GetDataAccessInput = GetDataAccessCommandInput; diff --git a/packages/storage/src/providers/s3/utils/client/s3control/listCallerAccessGrants.ts b/packages/storage/src/providers/s3/utils/client/s3control/listCallerAccessGrants.ts index a1e7038749d..81b0e62a9c8 100644 --- a/packages/storage/src/providers/s3/utils/client/s3control/listCallerAccessGrants.ts +++ b/packages/storage/src/providers/s3/utils/client/s3control/listCallerAccessGrants.ts @@ -19,7 +19,6 @@ import { emptyArrayGuard, map, parseXmlBody, - parseXmlError, s3TransferHandler, } from '../utils'; import { createStringEnumDeserializer } from '../utils/deserializeHelpers'; @@ -28,7 +27,7 @@ import type { ListCallerAccessGrantsCommandInput, ListCallerAccessGrantsCommandOutput, } from './types'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; export type ListCallerAccessGrantsInput = ListCallerAccessGrantsCommandInput; diff --git a/packages/storage/src/providers/s3/utils/client/s3data/abortMultipartUpload.ts b/packages/storage/src/providers/s3/utils/client/s3data/abortMultipartUpload.ts index fb541e803a0..fe2182e0c30 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/abortMultipartUpload.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/abortMultipartUpload.ts @@ -16,14 +16,13 @@ import { MetadataBearer } from '@aws-sdk/types'; import { buildStorageServiceError, - parseXmlError, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils'; import type { AbortMultipartUploadCommandInput } from './types'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; export type AbortMultipartUploadInput = Pick< AbortMultipartUploadCommandInput, diff --git a/packages/storage/src/providers/s3/utils/client/s3data/base.ts b/packages/storage/src/providers/s3/utils/client/s3data/base.ts index d51c3a18a11..c7aef5c033c 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/base.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/base.ts @@ -11,7 +11,7 @@ import { jitteredBackoff, } from '@aws-amplify/core/internals/aws-client-utils'; -import { retryDecider } from '../utils'; +import { createRetryDecider, createXmlErrorParser } from '../utils'; const DOMAIN_PATTERN = /^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$/; const IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/; @@ -99,6 +99,30 @@ export const isDnsCompatibleBucketName = (bucketName: string): boolean => !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName); +/** + * Error parser for the XML payload of S3 data plane error response. The error's + * `Code` and `Message` locates directly at the XML root element. + * + * @example + * ``` + * + * + * NoSuchKey + * The resource you requested does not exist + * /mybucket/myfoto.jpg + * 4442587FB7D0A2F9 + * + * ``` + * + * @internal + */ +export const parseXmlError = createXmlErrorParser({ noErrorWrapping: true }); + +/** + * @internal + */ +export const retryDecider = createRetryDecider(parseXmlError); + /** * @internal */ diff --git a/packages/storage/src/providers/s3/utils/client/s3data/completeMultipartUpload.ts b/packages/storage/src/providers/s3/utils/client/s3data/completeMultipartUpload.ts index d732044e953..00267d21172 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/completeMultipartUpload.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/completeMultipartUpload.ts @@ -20,8 +20,6 @@ import { buildStorageServiceError, map, parseXmlBody, - parseXmlError, - retryDecider, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, @@ -33,7 +31,7 @@ import type { CompletedMultipartUpload, CompletedPart, } from './types'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError, retryDecider } from './base'; const INVALID_PARAMETER_ERROR_MSG = 'Invalid parameter for ComplteMultipartUpload API'; diff --git a/packages/storage/src/providers/s3/utils/client/s3data/copyObject.ts b/packages/storage/src/providers/s3/utils/client/s3data/copyObject.ts index f56745680fa..612e650aabb 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/copyObject.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/copyObject.ts @@ -14,7 +14,6 @@ import { assignStringVariables, buildStorageServiceError, parseXmlBody, - parseXmlError, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, @@ -22,7 +21,7 @@ import { } from '../utils'; import type { CopyObjectCommandInput, CopyObjectCommandOutput } from './types'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; export type CopyObjectInput = Pick< CopyObjectCommandInput, diff --git a/packages/storage/src/providers/s3/utils/client/s3data/createMultipartUpload.ts b/packages/storage/src/providers/s3/utils/client/s3data/createMultipartUpload.ts index 45d755d2ef9..10549673a0e 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/createMultipartUpload.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/createMultipartUpload.ts @@ -15,7 +15,6 @@ import { buildStorageServiceError, map, parseXmlBody, - parseXmlError, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, @@ -27,7 +26,7 @@ import type { CreateMultipartUploadCommandOutput, } from './types'; import type { PutObjectInput } from './putObject'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; export type CreateMultipartUploadInput = Extract< CreateMultipartUploadCommandInput, diff --git a/packages/storage/src/providers/s3/utils/client/s3data/deleteObject.ts b/packages/storage/src/providers/s3/utils/client/s3data/deleteObject.ts index f8843881668..eb9c98b47ac 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/deleteObject.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/deleteObject.ts @@ -14,7 +14,6 @@ import { buildStorageServiceError, deserializeBoolean, map, - parseXmlError, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, @@ -24,7 +23,7 @@ import type { DeleteObjectCommandInput, DeleteObjectCommandOutput, } from './types'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; export type DeleteObjectInput = Pick< DeleteObjectCommandInput, diff --git a/packages/storage/src/providers/s3/utils/client/s3data/getObject.ts b/packages/storage/src/providers/s3/utils/client/s3data/getObject.ts index 4ef5afa6896..37ceade549d 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/getObject.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/getObject.ts @@ -11,8 +11,8 @@ import { parseMetadata, presignUrl, } from '@aws-amplify/core/internals/aws-client-utils'; -import { AmplifyUrl } from '@aws-amplify/core/internals/utils'; import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; +import { AmplifyUrl } from '@aws-amplify/core/internals/utils'; import { CONTENT_SHA256_HEADER, @@ -22,13 +22,16 @@ import { deserializeNumber, deserializeTimestamp, map, - parseXmlError, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils'; -import { S3EndpointResolverOptions, defaultConfig } from './base'; +import { + S3EndpointResolverOptions, + defaultConfig, + parseXmlError, +} from './base'; import type { CompatibleHttpResponse, GetObjectCommandInput, diff --git a/packages/storage/src/providers/s3/utils/client/s3data/headObject.ts b/packages/storage/src/providers/s3/utils/client/s3data/headObject.ts index 1ffdeedeb55..ebf0c374ff5 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/headObject.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/headObject.ts @@ -16,13 +16,12 @@ import { deserializeNumber, deserializeTimestamp, map, - parseXmlError, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; import type { HeadObjectCommandInput, HeadObjectCommandOutput } from './types'; export type HeadObjectInput = Pick; diff --git a/packages/storage/src/providers/s3/utils/client/s3data/listObjectsV2.ts b/packages/storage/src/providers/s3/utils/client/s3data/listObjectsV2.ts index 680111cf0e9..b5db2c04ae8 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/listObjectsV2.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/listObjectsV2.ts @@ -22,7 +22,6 @@ import { emptyArrayGuard, map, parseXmlBody, - parseXmlError, s3TransferHandler, } from '../utils'; @@ -30,7 +29,7 @@ import type { ListObjectsV2CommandInput, ListObjectsV2CommandOutput, } from './types'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; export type ListObjectsV2Input = ListObjectsV2CommandInput; diff --git a/packages/storage/src/providers/s3/utils/client/s3data/listParts.ts b/packages/storage/src/providers/s3/utils/client/s3data/listParts.ts index 392eff988d0..5c4583d1ed2 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/listParts.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/listParts.ts @@ -19,7 +19,6 @@ import { emptyArrayGuard, map, parseXmlBody, - parseXmlError, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, @@ -30,7 +29,7 @@ import type { ListPartsCommandInput, ListPartsCommandOutput, } from './types'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; export type ListPartsInput = Pick< ListPartsCommandInput, diff --git a/packages/storage/src/providers/s3/utils/client/s3data/putObject.ts b/packages/storage/src/providers/s3/utils/client/s3data/putObject.ts index 1a68062185a..8b2f56d0e78 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/putObject.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/putObject.ts @@ -14,7 +14,6 @@ import { assignStringVariables, buildStorageServiceError, map, - parseXmlError, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, @@ -22,7 +21,7 @@ import { } from '../utils'; import { validateObjectUrl } from '../../validateObjectUrl'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; import type { PutObjectCommandInput, PutObjectCommandOutput } from './types'; export type PutObjectInput = Pick< diff --git a/packages/storage/src/providers/s3/utils/client/s3data/uploadPart.ts b/packages/storage/src/providers/s3/utils/client/s3data/uploadPart.ts index 6a37e143f7e..2ddea0dd836 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/uploadPart.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/uploadPart.ts @@ -17,13 +17,12 @@ import { assignStringVariables, buildStorageServiceError, map, - parseXmlError, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; import type { UploadPartCommandInput, UploadPartCommandOutput } from './types'; // Content-length is ignored here because it's forbidden header diff --git a/packages/storage/src/providers/s3/utils/client/utils/retryDecider.ts b/packages/storage/src/providers/s3/utils/client/utils/createRetryDecider.ts similarity index 60% rename from packages/storage/src/providers/s3/utils/client/utils/retryDecider.ts rename to packages/storage/src/providers/s3/utils/client/utils/createRetryDecider.ts index 3e1e0fcc3da..0cfbc0eacde 100644 --- a/packages/storage/src/providers/s3/utils/client/utils/retryDecider.ts +++ b/packages/storage/src/providers/s3/utils/client/utils/createRetryDecider.ts @@ -1,6 +1,7 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import { + ErrorParser, HttpResponse, MiddlewareContext, RetryDeciderOutput, @@ -9,8 +10,6 @@ import { import { LocationCredentialsProvider } from '../../../types/options'; -import { parseXmlError } from './parsePayload'; - /** * Function to decide if the S3 request should be retried. For S3 APIs, we support forceRefresh option * for {@link LocationCredentialsProvider | LocationCredentialsProvider } option. It's set when S3 returns @@ -22,33 +21,49 @@ import { parseXmlError } from './parsePayload'; * @param middlewareContext Optional context object to store data between retries. * @returns True if the request should be retried. */ -export const retryDecider = async ( +export type RetryDecider = ( response?: HttpResponse, error?: unknown, middlewareContext?: MiddlewareContext, -): Promise => { - const defaultRetryDecider = getRetryDecider(parseXmlError); - const defaultRetryDecision = await defaultRetryDecider(response, error); - if (!response || response.statusCode < 300) { - return { retryable: false }; - } - const parsedError = await parseXmlError(response); - const errorCode = parsedError?.name; - const errorMessage = parsedError?.message; - const isCredentialsExpired = isCredentialsExpiredError( - errorCode, - errorMessage, - ); +) => Promise; + +/** + * Factory of a {@link RetryDecider} function. + * + * @param errorParser function to parse HTTP response wth XML payload to JS + * Error instance. + * @returns A structure indicating if the response is retryable; And if it is a + * CredentialsExpiredError + */ +export const createRetryDecider = + (errorParser: ErrorParser): RetryDecider => + async ( + response?: HttpResponse, + error?: unknown, + middlewareContext?: MiddlewareContext, + ): Promise => { + const defaultRetryDecider = getRetryDecider(errorParser); + const defaultRetryDecision = await defaultRetryDecider(response, error); + if (!response || response.statusCode < 300) { + return { retryable: false }; + } + const parsedError = await errorParser(response); + const errorCode = parsedError?.name; + const errorMessage = parsedError?.message; + const isCredentialsExpired = isCredentialsExpiredError( + errorCode, + errorMessage, + ); - return { - retryable: - defaultRetryDecision.retryable || - // If we know the previous retry attempt sets isCredentialsExpired in the - // middleware context, we don't want to retry anymore. - !!(isCredentialsExpired && !middlewareContext?.isCredentialsExpired), - isCredentialsExpiredError: isCredentialsExpired, + return { + retryable: + defaultRetryDecision.retryable || + // If we know the previous retry attempt sets isCredentialsExpired in the + // middleware context, we don't want to retry anymore. + !!(isCredentialsExpired && !middlewareContext?.isCredentialsExpired), + isCredentialsExpiredError: isCredentialsExpired, + }; }; -}; // Ref: https://github.com/aws/aws-sdk-js/blob/54829e341181b41573c419bd870dd0e0f8f10632/lib/event_listeners.js#L522-L541 const INVALID_TOKEN_ERROR_CODES = [ diff --git a/packages/storage/src/providers/s3/utils/client/utils/index.ts b/packages/storage/src/providers/s3/utils/client/utils/index.ts index 423987699f8..77042fafa0c 100644 --- a/packages/storage/src/providers/s3/utils/client/utils/index.ts +++ b/packages/storage/src/providers/s3/utils/client/utils/index.ts @@ -1,7 +1,7 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -export { parseXmlBody, parseXmlError } from './parsePayload'; +export { parseXmlBody, createXmlErrorParser } from './parsePayload'; export { SEND_DOWNLOAD_PROGRESS_EVENT, SEND_UPLOAD_PROGRESS_EVENT, @@ -25,4 +25,4 @@ export { serializePathnameObjectKey, validateS3RequiredParameter, } from './serializeHelpers'; -export { retryDecider } from './retryDecider'; +export { createRetryDecider } from './createRetryDecider'; diff --git a/packages/storage/src/providers/s3/utils/client/utils/parsePayload.ts b/packages/storage/src/providers/s3/utils/client/utils/parsePayload.ts index 9da44dcbdd0..f0284d573d2 100644 --- a/packages/storage/src/providers/s3/utils/client/utils/parsePayload.ts +++ b/packages/storage/src/providers/s3/utils/client/utils/parsePayload.ts @@ -9,25 +9,43 @@ import { import { parser } from '../runtime'; -export const parseXmlError: ErrorParser = async (response?: HttpResponse) => { - if (!response || response.statusCode < 300) { - return; - } - const { statusCode } = response; - const body = await parseXmlBody(response); - const code = body?.Code - ? (body.Code as string) - : statusCode === 404 - ? 'NotFound' - : statusCode.toString(); - const message = body?.message ?? body?.Message ?? code; - const error = new Error(message); +/** + * Factory creating a parser that parses the JS Error object from the XML + * response payload. + * + * @param input Input object + * @param input.noErrorWrapping Whether the error code and message are located + * directly in the root XML element, or in a nested `` element. + * See: https://smithy.io/2.0/aws/protocols/aws-restxml-protocol.html#restxml-errors + * + * Default to false. + * + * @internal + */ +export const createXmlErrorParser = + ({ + noErrorWrapping = false, + }: { noErrorWrapping?: boolean } = {}): ErrorParser => + async (response?: HttpResponse) => { + if (!response || response.statusCode < 300) { + return; + } + const { statusCode } = response; + const body = await parseXmlBody(response); + const errorLocation = noErrorWrapping ? body : body.Error; + const code = errorLocation?.Code + ? (errorLocation.Code as string) + : statusCode === 404 + ? 'NotFound' + : statusCode.toString(); + const message = errorLocation?.message ?? errorLocation?.Message ?? code; + const error = new Error(message); - return Object.assign(error, { - name: code, - $metadata: parseMetadata(response), - }); -}; + return Object.assign(error, { + name: code, + $metadata: parseMetadata(response), + }); + }; export const parseXmlBody = async (response: HttpResponse): Promise => { if (!response.body) { diff --git a/scripts/tsc-compliance-test/CHANGELOG.md b/scripts/tsc-compliance-test/CHANGELOG.md index 322093bb2e0..0ec07419208 100644 --- a/scripts/tsc-compliance-test/CHANGELOG.md +++ b/scripts/tsc-compliance-test/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.52](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.51...tsc-compliance-test@0.1.52) (2024-09-04) + +**Note:** Version bump only for package tsc-compliance-test + +## [0.1.51](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.50...tsc-compliance-test@0.1.51) (2024-09-03) + +**Note:** Version bump only for package tsc-compliance-test + +## [0.1.50](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.49...tsc-compliance-test@0.1.50) (2024-08-26) + +**Note:** Version bump only for package tsc-compliance-test + +## [0.1.49](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.48...tsc-compliance-test@0.1.49) (2024-08-21) + +**Note:** Version bump only for package tsc-compliance-test + ## [0.1.48](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.47...tsc-compliance-test@0.1.48) (2024-08-15) **Note:** Version bump only for package tsc-compliance-test diff --git a/scripts/tsc-compliance-test/package.json b/scripts/tsc-compliance-test/package.json index 276ad674243..85be6d5064a 100644 --- a/scripts/tsc-compliance-test/package.json +++ b/scripts/tsc-compliance-test/package.json @@ -1,11 +1,11 @@ { "name": "tsc-compliance-test", - "version": "0.1.48", + "version": "0.1.52", "license": "MIT", "private": true, "devDependencies": { "@types/node": "16.18.82", - "aws-amplify": "6.5.1", + "aws-amplify": "6.6.0", "typescript": "4.2.x" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index 0fb5ad99009..7c06d94b98c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1066,10 +1066,10 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.2": - version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.2.tgz#e41928bd33475305c586f6acbbb7e3ade7a6f7f5" - integrity sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ== +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.2", "@babel/compat-data@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.4.tgz#7d2a80ce229890edcf4cc259d4d696cb4dae2fcb" + integrity sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ== "@babel/core@7.17.2": version "7.17.2" @@ -1113,12 +1113,12 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.17.0", "@babel/generator@^7.20.0", "@babel/generator@^7.25.0", "@babel/generator@^7.7.2": - version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.0.tgz#f858ddfa984350bc3d3b7f125073c9af6988f18e" - integrity sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw== +"@babel/generator@^7.17.0", "@babel/generator@^7.20.0", "@babel/generator@^7.25.0", "@babel/generator@^7.25.4", "@babel/generator@^7.7.2": + version "7.25.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.5.tgz#b31cf05b3fe8c32d206b6dad03bb0aacbde73450" + integrity sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w== dependencies: - "@babel/types" "^7.25.0" + "@babel/types" "^7.25.4" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" @@ -1149,20 +1149,20 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0": - version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz#a109bf9c3d58dfed83aaf42e85633c89f43a6253" - integrity sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0", "@babel/helper-create-class-features-plugin@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz#57eaf1af38be4224a9d9dd01ddde05b741f50e14" + integrity sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" "@babel/helper-member-expression-to-functions" "^7.24.8" "@babel/helper-optimise-call-expression" "^7.24.7" "@babel/helper-replace-supers" "^7.25.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" - "@babel/traverse" "^7.25.0" + "@babel/traverse" "^7.25.4" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7", "@babel/helper-create-regexp-features-plugin@^7.25.0": +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7", "@babel/helper-create-regexp-features-plugin@^7.25.0", "@babel/helper-create-regexp-features-plugin@^7.25.2": version "7.25.2" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz#24c75974ed74183797ffd5f134169316cd1808d9" integrity sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g== @@ -1171,7 +1171,7 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.6.1", "@babel/helper-define-polyfill-provider@^0.6.2": +"@babel/helper-define-polyfill-provider@^0.6.2": version "0.6.2" resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz#18594f789c3594acb24cfdb4a7f7b7d2e8bd912d" integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== @@ -1303,12 +1303,12 @@ js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.17.0", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.0", "@babel/parser@^7.25.3": - version "7.25.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.3.tgz#91fb126768d944966263f0657ab222a642b82065" - integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw== +"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.17.0", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.0", "@babel/parser@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.4.tgz#af4f2df7d02440286b7de57b1c21acfb2a6f257a" + integrity sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA== dependencies: - "@babel/types" "^7.25.2" + "@babel/types" "^7.25.4" "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.3": version "7.25.3" @@ -1375,14 +1375,6 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-export-default-from" "^7.24.7" -"@babel/plugin-proposal-logical-assignment-operators@^7.18.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" - integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" @@ -1446,7 +1438,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== @@ -1502,7 +1494,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -1523,7 +1515,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -1537,7 +1529,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -1572,7 +1564,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-top-level-await@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== @@ -1580,11 +1572,11 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.24.7", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz#58d458271b4d3b6bb27ee6ac9525acbb259bad1c" - integrity sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA== + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz#04db9ce5a9043d9c635e75ae7969a2cd50ca97ff" + integrity sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" @@ -1601,15 +1593,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-async-generator-functions@^7.25.0": - version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz#b785cf35d73437f6276b1e30439a57a50747bddf" - integrity sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q== +"@babel/plugin-transform-async-generator-functions@^7.24.3", "@babel/plugin-transform-async-generator-functions@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz#2afd4e639e2d055776c9f091b6c0c180ed8cf083" + integrity sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg== dependencies: "@babel/helper-plugin-utils" "^7.24.8" "@babel/helper-remap-async-to-generator" "^7.25.0" "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/traverse" "^7.25.0" + "@babel/traverse" "^7.25.4" "@babel/plugin-transform-async-to-generator@^7.0.0", "@babel/plugin-transform-async-to-generator@^7.20.0", "@babel/plugin-transform-async-to-generator@^7.24.7": version "7.24.7" @@ -1634,13 +1626,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.8" -"@babel/plugin-transform-class-properties@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz#256879467b57b0b68c7ddfc5b76584f398cd6834" - integrity sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w== +"@babel/plugin-transform-class-properties@^7.24.1", "@babel/plugin-transform-class-properties@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz#bae7dbfcdcc2e8667355cd1fb5eda298f05189fd" + integrity sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g== dependencies: - "@babel/helper-create-class-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.25.4" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-transform-class-static-block@^7.24.7": version "7.24.7" @@ -1651,16 +1643,16 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.25.0": - version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz#63122366527d88e0ef61b612554fe3f8c793991e" - integrity sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw== +"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz#d29dbb6a72d79f359952ad0b66d88518d65ef89a" + integrity sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-compilation-targets" "^7.25.2" "@babel/helper-plugin-utils" "^7.24.8" "@babel/helper-replace-supers" "^7.25.0" - "@babel/traverse" "^7.25.0" + "@babel/traverse" "^7.25.4" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.24.7": @@ -1765,7 +1757,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.8" -"@babel/plugin-transform-logical-assignment-operators@^7.24.7": +"@babel/plugin-transform-logical-assignment-operators@^7.24.1", "@babel/plugin-transform-logical-assignment-operators@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz#a58fb6eda16c9dc8f9ff1c7b1ba6deb7f4694cb0" integrity sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw== @@ -1830,7 +1822,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-nullish-coalescing-operator@^7.24.7": +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.1", "@babel/plugin-transform-nullish-coalescing-operator@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz#1de4534c590af9596f53d67f52a92f12db984120" integrity sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ== @@ -1838,7 +1830,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-numeric-separator@^7.24.7": +"@babel/plugin-transform-numeric-separator@^7.24.1", "@babel/plugin-transform-numeric-separator@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz#bea62b538c80605d8a0fac9b40f48e97efa7de63" integrity sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA== @@ -1846,7 +1838,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.24.7": +"@babel/plugin-transform-object-rest-spread@^7.24.5", "@babel/plugin-transform-object-rest-spread@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz#d13a2b93435aeb8a197e115221cab266ba6e55d6" integrity sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q== @@ -1864,7 +1856,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/helper-replace-supers" "^7.24.7" -"@babel/plugin-transform-optional-catch-binding@^7.24.7": +"@babel/plugin-transform-optional-catch-binding@^7.24.1", "@babel/plugin-transform-optional-catch-binding@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz#00eabd883d0dd6a60c1c557548785919b6e717b4" integrity sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA== @@ -1872,7 +1864,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.24.7", "@babel/plugin-transform-optional-chaining@^7.24.8": +"@babel/plugin-transform-optional-chaining@^7.24.5", "@babel/plugin-transform-optional-chaining@^7.24.7", "@babel/plugin-transform-optional-chaining@^7.24.8": version "7.24.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz#bb02a67b60ff0406085c13d104c99a835cdf365d" integrity sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw== @@ -1888,13 +1880,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-private-methods@^7.22.5", "@babel/plugin-transform-private-methods@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz#e6318746b2ae70a59d023d5cc1344a2ba7a75f5e" - integrity sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ== +"@babel/plugin-transform-private-methods@^7.22.5", "@babel/plugin-transform-private-methods@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz#9bbefbe3649f470d681997e0b64a4b254d877242" + integrity sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.25.4" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-transform-private-property-in-object@^7.22.11", "@babel/plugin-transform-private-property-in-object@^7.24.7": version "7.24.7" @@ -1960,7 +1952,7 @@ "@babel/helper-annotate-as-pure" "^7.24.7" "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-regenerator@^7.24.7": +"@babel/plugin-transform-regenerator@^7.20.0", "@babel/plugin-transform-regenerator@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz#021562de4534d8b4b1851759fd7af4e05d2c47f8" integrity sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA== @@ -1976,14 +1968,14 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-runtime@^7.0.0": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz#00a5bfaf8c43cf5c8703a8a6e82b59d9c58f38ca" - integrity sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw== + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.4.tgz#96e4ad7bfbbe0b4a7b7e6f2a533ca326cf204963" + integrity sha512-8hsyG+KUYGY0coX6KUCDancA0Vw225KJ2HJO0yCNr1vq5r+lJTleDaJf0K7iOhjw4SWhu03TMBzYTJ9krmzULQ== dependencies: "@babel/helper-module-imports" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.1" + babel-plugin-polyfill-corejs3 "^0.10.6" babel-plugin-polyfill-regenerator "^0.6.1" semver "^6.3.1" @@ -2057,20 +2049,20 @@ "@babel/helper-create-regexp-features-plugin" "^7.24.7" "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-unicode-sets-regex@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz#d40705d67523803a576e29c63cef6e516b858ed9" - integrity sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg== +"@babel/plugin-transform-unicode-sets-regex@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz#be664c2a0697ffacd3423595d5edef6049e8946c" + integrity sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-regexp-features-plugin" "^7.25.2" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/preset-env@^7.0.0", "@babel/preset-env@^7.20.0": - version "7.25.3" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.25.3.tgz#0bf4769d84ac51d1073ab4a86f00f30a3a83c67c" - integrity sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g== + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.25.4.tgz#be23043d43a34a2721cd0f676c7ba6f1481f6af6" + integrity sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw== dependencies: - "@babel/compat-data" "^7.25.2" + "@babel/compat-data" "^7.25.4" "@babel/helper-compilation-targets" "^7.25.2" "@babel/helper-plugin-utils" "^7.24.8" "@babel/helper-validator-option" "^7.24.8" @@ -2099,13 +2091,13 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.24.7" - "@babel/plugin-transform-async-generator-functions" "^7.25.0" + "@babel/plugin-transform-async-generator-functions" "^7.25.4" "@babel/plugin-transform-async-to-generator" "^7.24.7" "@babel/plugin-transform-block-scoped-functions" "^7.24.7" "@babel/plugin-transform-block-scoping" "^7.25.0" - "@babel/plugin-transform-class-properties" "^7.24.7" + "@babel/plugin-transform-class-properties" "^7.25.4" "@babel/plugin-transform-class-static-block" "^7.24.7" - "@babel/plugin-transform-classes" "^7.25.0" + "@babel/plugin-transform-classes" "^7.25.4" "@babel/plugin-transform-computed-properties" "^7.24.7" "@babel/plugin-transform-destructuring" "^7.24.8" "@babel/plugin-transform-dotall-regex" "^7.24.7" @@ -2133,7 +2125,7 @@ "@babel/plugin-transform-optional-catch-binding" "^7.24.7" "@babel/plugin-transform-optional-chaining" "^7.24.8" "@babel/plugin-transform-parameters" "^7.24.7" - "@babel/plugin-transform-private-methods" "^7.24.7" + "@babel/plugin-transform-private-methods" "^7.25.4" "@babel/plugin-transform-private-property-in-object" "^7.24.7" "@babel/plugin-transform-property-literals" "^7.24.7" "@babel/plugin-transform-regenerator" "^7.24.7" @@ -2146,10 +2138,10 @@ "@babel/plugin-transform-unicode-escapes" "^7.24.7" "@babel/plugin-transform-unicode-property-regex" "^7.24.7" "@babel/plugin-transform-unicode-regex" "^7.24.7" - "@babel/plugin-transform-unicode-sets-regex" "^7.24.7" + "@babel/plugin-transform-unicode-sets-regex" "^7.25.4" "@babel/preset-modules" "0.1.6-no-external-plugins" babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.4" + babel-plugin-polyfill-corejs3 "^0.10.6" babel-plugin-polyfill-regenerator "^0.6.1" core-js-compat "^3.37.1" semver "^6.3.1" @@ -2212,9 +2204,9 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.20.0", "@babel/runtime@^7.8.4": - version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.0.tgz#3af9a91c1b739c569d5d80cc917280919c544ecb" - integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw== + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.4.tgz#6ef37d678428306e7d75f054d5b1bdb8cf8aa8ee" + integrity sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w== dependencies: regenerator-runtime "^0.14.0" @@ -2227,23 +2219,23 @@ "@babel/parser" "^7.25.0" "@babel/types" "^7.25.0" -"@babel/traverse@^7.14.0", "@babel/traverse@^7.17.0", "@babel/traverse@^7.20.0", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.3": - version "7.25.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.3.tgz#f1b901951c83eda2f3e29450ce92743783373490" - integrity sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ== +"@babel/traverse@^7.14.0", "@babel/traverse@^7.17.0", "@babel/traverse@^7.20.0", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.3", "@babel/traverse@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.4.tgz#648678046990f2957407e3086e97044f13c3e18e" + integrity sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg== dependencies: "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.25.0" - "@babel/parser" "^7.25.3" + "@babel/generator" "^7.25.4" + "@babel/parser" "^7.25.4" "@babel/template" "^7.25.0" - "@babel/types" "^7.25.2" + "@babel/types" "^7.25.4" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.17.0", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.2.tgz#55fb231f7dc958cd69ea141a4c2997e819646125" - integrity sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q== +"@babel/types@^7.0.0", "@babel/types@^7.17.0", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.25.4", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.4.tgz#6bcb46c72fdf1012a209d016c07f769e10adcb5f" + integrity sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ== dependencies: "@babel/helper-string-parser" "^7.24.8" "@babel/helper-validator-identifier" "^7.24.7" @@ -2867,55 +2859,55 @@ write-pkg "4.0.0" yargs "16.2.0" -"@next/env@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.5.tgz#1d9328ab828711d3517d0a1d505acb55e5ef7ad0" - integrity sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA== - -"@next/swc-darwin-arm64@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz#d0a160cf78c18731c51cc0bff131c706b3e9bb05" - integrity sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ== - -"@next/swc-darwin-x64@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.5.tgz#eb832a992407f6e6352eed05a073379f1ce0589c" - integrity sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA== - -"@next/swc-linux-arm64-gnu@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.5.tgz#098fdab57a4664969bc905f5801ef5a89582c689" - integrity sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA== - -"@next/swc-linux-arm64-musl@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.5.tgz#243a1cc1087fb75481726dd289c7b219fa01f2b5" - integrity sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA== - -"@next/swc-linux-x64-gnu@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.5.tgz#b8a2e436387ee4a52aa9719b718992e0330c4953" - integrity sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ== - -"@next/swc-linux-x64-musl@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.5.tgz#cb8a9adad5fb8df86112cfbd363aab5c6d32757b" - integrity sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ== - -"@next/swc-win32-arm64-msvc@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.5.tgz#81f996c1c38ea0900d4e7719cc8814be8a835da0" - integrity sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw== - -"@next/swc-win32-ia32-msvc@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.5.tgz#f61c74ce823e10b2bc150e648fc192a7056422e0" - integrity sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg== - -"@next/swc-win32-x64-msvc@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.5.tgz#ed199a920efb510cfe941cd75ed38a7be21e756f" - integrity sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g== +"@next/env@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.6.tgz#4f8ab1ca549a90bf0c83454b798b0ebae7098b15" + integrity sha512-bs5DFKV+08EjWrl8EB+KKqev1ZTNONH1vFCaHh911aaB362NnP32UDTbE9VQhyiAgbFqJsfDkSxFERNDDb3j0g== + +"@next/swc-darwin-arm64@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.6.tgz#38dfd8716e52dd1f52cfd3e461721d3e984887c6" + integrity sha512-BtJZb+hYXGaVJJivpnDoi3JFVn80SHKCiiRUW3kk1SY6UCUy5dWFFSbh+tGi5lHAughzeduMyxbLt3pspvXNSg== + +"@next/swc-darwin-x64@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.6.tgz#605a6fafbdd672d72728db86aae0fea67e3338f9" + integrity sha512-ZHRbGpH6KHarzm6qEeXKSElSXh8dS2DtDPjQt3IMwY8QVk7GbdDYjvV4NgSnDA9huGpGgnyy3tH8i5yHCqVkiQ== + +"@next/swc-linux-arm64-gnu@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.6.tgz#2a4d3c6d159c70ded6b415cbf6d7082bd823e37d" + integrity sha512-O4HqUEe3ZvKshXHcDUXn1OybN4cSZg7ZdwHJMGCXSUEVUqGTJVsOh17smqilIjooP/sIJksgl+1kcf2IWMZWHg== + +"@next/swc-linux-arm64-musl@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.6.tgz#db4850182cef343a6539d646d613f2f0333a4dc1" + integrity sha512-xUcdhr2hfalG8RDDGSFxQ75yOG894UlmFS4K2M0jLrUhauRBGOtUOxoDVwiIIuZQwZ3Y5hDsazNjdYGB0cQ9yQ== + +"@next/swc-linux-x64-gnu@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.6.tgz#dbd75f0c3b3b3fb5c4ace0b5b52b050409701b3e" + integrity sha512-InosKxw8UMcA/wEib5n2QttwHSKHZHNSbGcMepBM0CTcNwpxWzX32KETmwbhKod3zrS8n1vJ+DuJKbL9ZAB0Ag== + +"@next/swc-linux-x64-musl@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.6.tgz#b045235257e78c87878b3651cb9c7b553a20005b" + integrity sha512-d4QXfJmt5pGJ7cG8qwxKSBnO5AXuKAFYxV7qyDRHnUNvY/dgDh+oX292gATpB2AAHgjdHd5ks1wXxIEj6muLUQ== + +"@next/swc-win32-arm64-msvc@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.6.tgz#be6ec8b97db574d9c2625fd181b6fa3e4625c29d" + integrity sha512-AlgIhk4/G+PzOG1qdF1b05uKTMsuRatFlFzAi5G8RZ9h67CVSSuZSbqGHbJDlcV1tZPxq/d4G0q6qcHDKWf4aQ== + +"@next/swc-win32-ia32-msvc@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.6.tgz#bc215a8488f10042c21890a83e79eee9e84cff6d" + integrity sha512-hNukAxq7hu4o5/UjPp5jqoBEtrpCbOmnUqZSKNJG8GrUVzfq0ucdhQFVrHcLRMvQcwqqDh1a5AJN9ORnNDpgBQ== + +"@next/swc-win32-x64-msvc@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.6.tgz#6b63a7b4ff3b7b410a038e3ee839c951a3136dc9" + integrity sha512-NANtw+ead1rSDK1jxmzq3TYkl03UNK2KHqUYf1nIhNci6NkeqBD4s1njSzYGIlSHxCK+wSaL8RXZm4v+NF/pMw== "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": version "2.1.8-no-fsevents.3" @@ -2943,6 +2935,11 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@nolyfill/is-core-module@1.0.39": + version "1.0.39" + resolved "https://registry.yarnpkg.com/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz#3dc35ba0f1e66b403c00b39344f870298ebb1c8e" + integrity sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA== + "@npmcli/arborist@6.2.9": version "6.2.9" resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-6.2.9.tgz#9ac892e5444206bd9bb3cb1ff18232322ac0fe54" @@ -3334,22 +3331,22 @@ dependencies: merge-options "^3.0.4" -"@react-native-community/cli-clean@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-11.3.5.tgz#07c8a01e433ea6c6e32eb647908be48952888cdd" - integrity sha512-1+7BU962wKkIkHRp/uW3jYbQKKGtU7L+R3g59D8K6uLccuxJYUBJv18753ojMa6SD3SAq5Xh31bAre+YwVcOTA== +"@react-native-community/cli-clean@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-11.4.1.tgz#0155a02e4158c8a61ba3d7a2b08f3ebebed81906" + integrity sha512-cwUbY3c70oBGv3FvQJWe2Qkq6m1+/dcEBonMDTYyH6i+6OrkzI4RkIGpWmbG1IS5JfE9ISUZkNL3946sxyWNkw== dependencies: - "@react-native-community/cli-tools" "11.3.5" + "@react-native-community/cli-tools" "11.4.1" chalk "^4.1.2" execa "^5.0.0" prompts "^2.4.0" -"@react-native-community/cli-clean@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-13.6.9.tgz#b6754f39c2b877c9d730feb848945150e1d52209" - integrity sha512-7Dj5+4p9JggxuVNOjPbduZBAP1SUgNhLKVw5noBUzT/3ZpUZkDM+RCSwyoyg8xKWoE4OrdUAXwAFlMcFDPKykA== +"@react-native-community/cli-clean@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-14.0.0.tgz#37b53762e5f3d02f452a44fc32a7f88a7419ccad" + integrity sha512-kvHthZTNur/wLLx8WL5Oh+r04zzzFAX16r8xuaLhu9qGTE6Th1JevbsIuiQb5IJqD8G/uZDKgIZ2a0/lONcbJg== dependencies: - "@react-native-community/cli-tools" "13.6.9" + "@react-native-community/cli-tools" "14.0.0" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" @@ -3364,26 +3361,26 @@ execa "^1.0.0" prompts "^2.4.0" -"@react-native-community/cli-config@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-11.3.5.tgz#07e48bb6cdecaa2aafa20da9888b5f35383a4382" - integrity sha512-fMblIsHlUleKfGsgWyjFJYfx1SqrsnhS/QXfA8w7iT6GrNOOjBp5UWx8+xlMDFcmOb9e42g1ExFDKl3n8FWkxQ== +"@react-native-community/cli-config@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-11.4.1.tgz#c27f91d2753f0f803cc79bbf299f19648a5d5627" + integrity sha512-sLdv1HFVqu5xNpeaR1+std0t7FFZaobpmpR0lFCOzKV7H/l611qS2Vo8zssmMK+oQbCs5JsX3SFPciODeIlaWA== dependencies: - "@react-native-community/cli-tools" "11.3.5" + "@react-native-community/cli-tools" "11.4.1" chalk "^4.1.2" cosmiconfig "^5.1.0" deepmerge "^4.3.0" glob "^7.1.3" joi "^17.2.1" -"@react-native-community/cli-config@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-13.6.9.tgz#d609a64d40a173c89bd7d24e31807bb7dcba69f9" - integrity sha512-rFfVBcNojcMm+KKHE/xqpqXg8HoKl4EC7bFHUrahMJ+y/tZll55+oX/PGG37rzB8QzP2UbMQ19DYQKC1G7kXeg== +"@react-native-community/cli-config@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-14.0.0.tgz#641ec08ddb44c90ceb947d8fc8e35de1a4bcf4a4" + integrity sha512-2Nr8KR+dgn1z+HLxT8piguQ1SoEzgKJnOPQKE1uakxWaRFcQ4LOXgzpIAscYwDW6jmQxdNqqbg2cRUoOS7IMtQ== dependencies: - "@react-native-community/cli-tools" "13.6.9" + "@react-native-community/cli-tools" "14.0.0" chalk "^4.1.2" - cosmiconfig "^5.1.0" + cosmiconfig "^9.0.0" deepmerge "^4.3.0" fast-glob "^3.3.2" joi "^17.2.1" @@ -3400,17 +3397,24 @@ glob "^7.1.3" joi "^17.2.1" -"@react-native-community/cli-debugger-ui@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.5.tgz#0dbb27759b9f6e4ca8cfcaab4fabfe349f765356" - integrity sha512-o5JVCKEpPUXMX4r3p1cYjiy3FgdOEkezZcQ6owWEae2dYvV19lLYyJwnocm9Y7aG9PvpgI3PIMVh3KZbhS21eA== +"@react-native-community/cli-debugger-ui@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.4.1.tgz#783cc276e1360baf8235dc8c6ebbbce0fe01d944" + integrity sha512-+pgIjGNW5TrJF37XG3djIOzP+WNoPp67to/ggDhrshuYgpymfb9XpDVsURJugy0Sy3RViqb83kQNK765QzTIvw== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-debugger-ui@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.9.tgz#bc5727c51964206a00d417e5148b46331a81d5a5" - integrity sha512-TkN7IdFmGPPvTpAo3nCAH9uwGCPxWBEAwpqEZDrq0NWllI7Tdie8vDpGdrcuCcKalmhq6OYnkXzeBah7O1Ztpw== +"@react-native-community/cli-debugger-ui@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-14.0.0.tgz#ef02d531e70b86265d39773abc3b58ab5cb8f4b8" + integrity sha512-JpfzILfU7eKE9+7AMCAwNJv70H4tJGVv3ZGFqSVoK1YHg5QkVEGsHtoNW8AsqZRS6Fj4os+Fmh+r+z1L36sPmg== + dependencies: + serve-static "^1.13.1" + +"@react-native-community/cli-debugger-ui@14.0.0-alpha.11": + version "14.0.0-alpha.11" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-14.0.0-alpha.11.tgz#952bb7c162e136ebff1950e7e80706eb3155fe21" + integrity sha512-0wCNQxhCniyjyMXgR1qXliY180y/2QbvoiYpp2MleGQADr5M1b8lgI4GoyADh5kE+kX3VL0ssjgyxpmbpCD86A== dependencies: serve-static "^1.13.1" @@ -3421,46 +3425,44 @@ dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-11.3.5.tgz#f11e0651c53e0b58487837a272af725f046a5842" - integrity sha512-+4BuFHjoV4FFjX5y60l0s6nS0agidb1izTVwsFixeFKW73LUkOLu+Ae5HI94RAFEPE4ePEVNgYX3FynIau6K0g== +"@react-native-community/cli-doctor@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-11.4.1.tgz#516ef5932de3e12989695e7cb7aba82b81e7b2de" + integrity sha512-O6oPiRsl8pdkcyNktpzvJAXUqdocoY4jh7Tt7wA69B1JKCJA7aPCecwJgpUZb63ZYoxOtRtYM3BYQKzRMLIuUw== dependencies: - "@react-native-community/cli-config" "11.3.5" - "@react-native-community/cli-platform-android" "11.3.5" - "@react-native-community/cli-platform-ios" "11.3.5" - "@react-native-community/cli-tools" "11.3.5" + "@react-native-community/cli-config" "11.4.1" + "@react-native-community/cli-platform-android" "11.4.1" + "@react-native-community/cli-platform-ios" "11.4.1" + "@react-native-community/cli-tools" "11.4.1" chalk "^4.1.2" command-exists "^1.2.8" envinfo "^7.7.2" execa "^5.0.0" hermes-profile-transformer "^0.0.6" - ip "^1.1.5" node-stream-zip "^1.9.1" ora "^5.4.1" prompts "^2.4.0" - semver "^6.3.0" + semver "^7.5.2" strip-ansi "^5.2.0" sudo-prompt "^9.0.0" wcwidth "^1.0.1" yaml "^2.2.1" -"@react-native-community/cli-doctor@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-13.6.9.tgz#f1d4eeff427ddc8a9d19851042621c10939c35cb" - integrity sha512-5quFaLdWFQB+677GXh5dGU9I5eg2z6Vg4jOX9vKnc9IffwyIFAyJfCZHrxLSRPDGNXD7biDQUdoezXYGwb6P/A== - dependencies: - "@react-native-community/cli-config" "13.6.9" - "@react-native-community/cli-platform-android" "13.6.9" - "@react-native-community/cli-platform-apple" "13.6.9" - "@react-native-community/cli-platform-ios" "13.6.9" - "@react-native-community/cli-tools" "13.6.9" +"@react-native-community/cli-doctor@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-14.0.0.tgz#f6855495d5a53e9a2c206949958a8291ac3e326e" + integrity sha512-in6jylHjaPUaDzV+JtUblh8m9JYIHGjHOf6Xn57hrmE5Zwzwuueoe9rSMHF1P0mtDgRKrWPzAJVejElddfptWA== + dependencies: + "@react-native-community/cli-config" "14.0.0" + "@react-native-community/cli-platform-android" "14.0.0" + "@react-native-community/cli-platform-apple" "14.0.0" + "@react-native-community/cli-platform-ios" "14.0.0" + "@react-native-community/cli-tools" "14.0.0" chalk "^4.1.2" command-exists "^1.2.8" deepmerge "^4.3.0" - envinfo "^7.10.0" + envinfo "^7.13.0" execa "^5.0.0" - hermes-profile-transformer "^0.0.6" node-stream-zip "^1.9.1" ora "^5.4.1" semver "^7.5.2" @@ -3489,24 +3491,13 @@ sudo-prompt "^9.0.0" wcwidth "^1.0.1" -"@react-native-community/cli-hermes@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-11.3.5.tgz#fb557790a34f4354fa7a91b02217cdded26cafc4" - integrity sha512-+3m34hiaJpFel8BlJE7kJOaPzWR/8U8APZG2LXojbAdBAg99EGmQcwXIgsSVJFvH8h/nezf4DHbsPKigIe33zA== +"@react-native-community/cli-hermes@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-11.4.1.tgz#abf487ae8ab53c66f6f1178bcd37ecbbbac9fb5c" + integrity sha512-1VAjwcmv+i9BJTMMVn5Grw7AcgURhTyfHVghJ1YgBE2euEJxPuqPKSxP54wBOQKnWUwsuDQAtQf+jPJoCxJSSA== dependencies: - "@react-native-community/cli-platform-android" "11.3.5" - "@react-native-community/cli-tools" "11.3.5" - chalk "^4.1.2" - hermes-profile-transformer "^0.0.6" - ip "^1.1.5" - -"@react-native-community/cli-hermes@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-13.6.9.tgz#88c8dfe936a0d4272efc54429eda9ccc3fca3ad8" - integrity sha512-GvwiwgvFw4Ws+krg2+gYj8sR3g05evmNjAHkKIKMkDTJjZ8EdyxbkifRUs1ZCq3TMZy2oeblZBXCJVOH4W7ZbA== - dependencies: - "@react-native-community/cli-platform-android" "13.6.9" - "@react-native-community/cli-tools" "13.6.9" + "@react-native-community/cli-platform-android" "11.4.1" + "@react-native-community/cli-tools" "11.4.1" chalk "^4.1.2" hermes-profile-transformer "^0.0.6" @@ -3531,23 +3522,23 @@ glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-android@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.5.tgz#8be7ef382a3182fe63a698ed2edd4d90ab19246a" - integrity sha512-s4Lj7FKxJ/BofGi/ifjPfrA9MjFwIgYpHnHBSlqtbsvPoSYzmVCU2qlWM8fb3AmkXIwyYt4A6MEr3MmNT2UoBg== +"@react-native-community/cli-platform-android@11.4.1", "@react-native-community/cli-platform-android@^11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-11.4.1.tgz#ec5fc97e87834f2e33cb0d34dcef6c17b20f60fc" + integrity sha512-VMmXWIzk0Dq5RAd+HIEa3Oe7xl2jso7+gOr6E2HALF4A3fCKUjKZQ6iK2t6AfnY04zftvaiKw6zUXtrfl52AVQ== dependencies: - "@react-native-community/cli-tools" "11.3.5" + "@react-native-community/cli-tools" "11.4.1" chalk "^4.1.2" execa "^5.0.0" glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-android@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.9.tgz#b175b9b11334fc90da3f395432678bd53c30fae4" - integrity sha512-9KsYGdr08QhdvT3Ht7e8phQB3gDX9Fs427NJe0xnoBh+PDPTI2BD5ks5ttsH8CzEw8/P6H8tJCHq6hf2nxd9cw== +"@react-native-community/cli-platform-android@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-14.0.0.tgz#36f47999af9b386aaa8f8286923edd9a65101f28" + integrity sha512-nt7yVz3pGKQXnVa5MAk7zR+1n41kNKD3Hi2OgybH5tVShMBo7JQoL2ZVVH6/y/9wAwI/s7hXJgzf1OIP3sMq+Q== dependencies: - "@react-native-community/cli-tools" "13.6.9" + "@react-native-community/cli-tools" "14.0.0" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" @@ -3565,16 +3556,16 @@ glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-apple@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.9.tgz#02fb5dc47d62acd85f4d7a852e93216927a772fa" - integrity sha512-KoeIHfhxMhKXZPXmhQdl6EE+jGKWwoO9jUVWgBvibpVmsNjo7woaG/tfJMEWfWF3najX1EkQAoJWpCDBMYWtlA== +"@react-native-community/cli-platform-apple@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-14.0.0.tgz#7050af6fbc01b4ebe72e1bdcb48d188cbbf1b9ef" + integrity sha512-WniJL8vR4MeIsjqio2hiWWuUYUJEL3/9TDL5aXNwG68hH3tYgK3742+X9C+vRzdjTmf5IKc/a6PwLsdplFeiwQ== dependencies: - "@react-native-community/cli-tools" "13.6.9" + "@react-native-community/cli-tools" "14.0.0" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" - fast-xml-parser "^4.0.12" + fast-xml-parser "^4.2.4" ora "^5.4.1" "@react-native-community/cli-platform-ios@10.0.0": @@ -3588,24 +3579,24 @@ glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-platform-ios@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.5.tgz#12a8cbf2638400b9986709466653ce4e7c9eca2a" - integrity sha512-ytJC/YCFD7P+KuQHOT5Jzh1ho2XbJEjq71yHa1gJP2PG/Q/uB4h1x2XpxDqv5iXU6E250yjvKMmkReKTW4CTig== +"@react-native-community/cli-platform-ios@11.4.1", "@react-native-community/cli-platform-ios@^11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.4.1.tgz#12d72741273b684734d5ed021415b7f543a6f009" + integrity sha512-RPhwn+q3IY9MpWc9w/Qmzv03mo8sXdah2eSZcECgweqD5SHWtOoRCUt11zM8jASpAQ8Tm5Je7YE9bHvdwGl4hA== dependencies: - "@react-native-community/cli-tools" "11.3.5" + "@react-native-community/cli-tools" "11.4.1" chalk "^4.1.2" execa "^5.0.0" fast-xml-parser "^4.0.12" glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-platform-ios@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.9.tgz#f37ceab41c2302e8f0d4bcbd3bf58b3353db4306" - integrity sha512-CiUcHlGs8vE0CAB4oi1f+dzniqfGuhWPNrDvae2nm8dewlahTBwIcK5CawyGezjcJoeQhjBflh9vloska+nlnw== +"@react-native-community/cli-platform-ios@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-14.0.0.tgz#7c7c393a13415bf61aaad82f1a3583c30afb110e" + integrity sha512-8kxGv7mZ5nGMtueQDq+ndu08f0ikf3Zsqm3Ix8FY5KCXpSgP14uZloO2GlOImq/zFESij+oMhCkZJGggpWpfAw== dependencies: - "@react-native-community/cli-platform-apple" "13.6.9" + "@react-native-community/cli-platform-apple" "14.0.0" "@react-native-community/cli-platform-ios@^10.2.5": version "10.2.5" @@ -3619,21 +3610,21 @@ glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-plugin-metro@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.5.tgz#5614c7ef3bc83cf70bcb0e6d988ab9d84a76008a" - integrity sha512-r9AekfeLKdblB7LfWB71IrNy1XM03WrByQlUQajUOZAP2NmUUBLl9pMZscPjJeOSgLpHB9ixEFTIOhTabri/qg== +"@react-native-community/cli-plugin-metro@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.4.1.tgz#8d51c59a9a720f99150d4153e757d5d1d1dabd22" + integrity sha512-JxbIqknYcQ5Z4rWROtu5LNakLfMiKoWcMoPqIrBLrV5ILm1XUJj1/8fATCcotZqV3yzB3SCJ3RrhKx7dQ3YELw== dependencies: - "@react-native-community/cli-server-api" "11.3.5" - "@react-native-community/cli-tools" "11.3.5" + "@react-native-community/cli-server-api" "11.4.1" + "@react-native-community/cli-tools" "11.4.1" chalk "^4.1.2" execa "^5.0.0" - metro "0.76.7" - metro-config "0.76.7" - metro-core "0.76.7" - metro-react-native-babel-transformer "0.76.7" - metro-resolver "0.76.7" - metro-runtime "0.76.7" + metro "^0.76.9" + metro-config "^0.76.9" + metro-core "^0.76.9" + metro-react-native-babel-transformer "^0.76.9" + metro-resolver "^0.76.9" + metro-runtime "^0.76.9" readline "^1.3.0" "@react-native-community/cli-plugin-metro@^10.0.0": @@ -3653,13 +3644,13 @@ metro-runtime "0.73.10" readline "^1.3.0" -"@react-native-community/cli-server-api@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-11.3.5.tgz#6f43f5844bd1eb73166546b8fa8bfd32064b21e7" - integrity sha512-PM/jF13uD1eAKuC84lntNuM5ZvJAtyb+H896P1dBIXa9boPLa3KejfUvNVoyOUJ5s8Ht25JKbc3yieV2+GMBDA== +"@react-native-community/cli-server-api@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-11.4.1.tgz#3dda094c4ab2369db34fe991c320e3cd78f097b3" + integrity sha512-isxXE8X5x+C4kN90yilD08jaLWD34hfqTfn/Xbl1u/igtdTsCaQGvWe9eaFamrpWFWTpVtj6k+vYfy8AtYSiKA== dependencies: - "@react-native-community/cli-debugger-ui" "11.3.5" - "@react-native-community/cli-tools" "11.3.5" + "@react-native-community/cli-debugger-ui" "11.4.1" + "@react-native-community/cli-tools" "11.4.1" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.1" @@ -3668,20 +3659,35 @@ serve-static "^1.13.1" ws "^7.5.1" -"@react-native-community/cli-server-api@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-13.6.9.tgz#269e666bc26e9d0b2f42c7f6099559b5f9259e9d" - integrity sha512-W8FSlCPWymO+tlQfM3E0JmM8Oei5HZsIk5S0COOl0MRi8h0NmHI4WSTF2GCfbFZkcr2VI/fRsocoN8Au4EZAug== +"@react-native-community/cli-server-api@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-14.0.0.tgz#1b62b78e5ea7dead0ae4590465c977bc4af880fc" + integrity sha512-A0FIsj0QCcDl1rswaVlChICoNbfN+mkrKB5e1ab5tOYeZMMyCHqvU+eFvAvXjHUlIvVI+LbqCkf4IEdQ6H/2AQ== dependencies: - "@react-native-community/cli-debugger-ui" "13.6.9" - "@react-native-community/cli-tools" "13.6.9" + "@react-native-community/cli-debugger-ui" "14.0.0" + "@react-native-community/cli-tools" "14.0.0" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.1" nocache "^3.0.1" pretty-format "^26.6.2" serve-static "^1.13.1" - ws "^6.2.2" + ws "^6.2.3" + +"@react-native-community/cli-server-api@14.0.0-alpha.11": + version "14.0.0-alpha.11" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-14.0.0-alpha.11.tgz#505163e11d3a30ebc874950956f72f5b3b6c5fc1" + integrity sha512-I7YeYI7S5wSxnQAqeG8LNqhT99FojiGIk87DU0vTp6U8hIMLcA90fUuBAyJY38AuQZ12ZJpGa8ObkhIhWzGkvg== + dependencies: + "@react-native-community/cli-debugger-ui" "14.0.0-alpha.11" + "@react-native-community/cli-tools" "14.0.0-alpha.11" + compression "^1.7.1" + connect "^3.6.5" + errorhandler "^1.5.1" + nocache "^3.0.1" + pretty-format "^26.6.2" + serve-static "^1.13.1" + ws "^6.2.3" "@react-native-community/cli-server-api@^10.0.0", "@react-native-community/cli-server-api@^10.1.1": version "10.1.1" @@ -3698,10 +3704,10 @@ serve-static "^1.13.1" ws "^7.5.1" -"@react-native-community/cli-tools@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-11.3.5.tgz#3f9d23a4c961d963f85c254718636db8a5fa3bce" - integrity sha512-zDklE1+ah/zL4BLxut5XbzqCj9KTHzbYBKX7//cXw2/0TpkNCaY9c+iKx//gZ5m7U1OKbb86Fm2b0AKtKVRf6Q== +"@react-native-community/cli-tools@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-11.4.1.tgz#f6c69967e077b10cd8a884a83e53eb199dd9ee9f" + integrity sha512-GuQIuY/kCPfLeXB1aiPZ5HvF+e/wdO42AYuNEmT7FpH/0nAhdTxA9qjL8m3vatDD2/YK7WNOSVNsl2UBZuOISg== dependencies: appdirsjs "^1.2.4" chalk "^4.1.2" @@ -3710,20 +3716,35 @@ node-fetch "^2.6.0" open "^6.2.0" ora "^5.4.1" - semver "^6.3.0" + semver "^7.5.2" + shell-quote "^1.7.3" + +"@react-native-community/cli-tools@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-14.0.0.tgz#07b57a8942a131618c198e3b64fb1ec846cd631d" + integrity sha512-L7GX5hyYYv0ZWbAyIQKzhHuShnwDqlKYB0tqn57wa5riGCaxYuRPTK+u4qy+WRCye7+i8M4Xj6oQtSd4z0T9cA== + dependencies: + appdirsjs "^1.2.4" + chalk "^4.1.2" + execa "^5.0.0" + find-up "^5.0.0" + mime "^2.4.1" + open "^6.2.0" + ora "^5.4.1" + semver "^7.5.2" shell-quote "^1.7.3" + sudo-prompt "^9.0.0" -"@react-native-community/cli-tools@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-13.6.9.tgz#2baee279358ba1a863e737b2fa9f45659ad91929" - integrity sha512-OXaSjoN0mZVw3nrAwcY1PC0uMfyTd9fz7Cy06dh+EJc+h0wikABsVRzV8cIOPrVV+PPEEXE0DBrH20T2puZzgQ== +"@react-native-community/cli-tools@14.0.0-alpha.11": + version "14.0.0-alpha.11" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-14.0.0-alpha.11.tgz#95b148a3e65a4c2519af608b27ed7091e7e8b78a" + integrity sha512-HQCfVnX9aqRdKdLxmQy4fUAUo+YhNGlBV7ZjOayPbuEGWJ4RN+vSy0Cawk7epo7hXd6vKzc7P7y3HlU6Kxs7+w== dependencies: appdirsjs "^1.2.4" chalk "^4.1.2" execa "^5.0.0" find-up "^5.0.0" mime "^2.4.1" - node-fetch "^2.6.0" open "^6.2.0" ora "^5.4.1" semver "^7.5.2" @@ -3745,17 +3766,17 @@ semver "^6.3.0" shell-quote "^1.7.3" -"@react-native-community/cli-types@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-11.3.5.tgz#9051205e164d5585f1ae3869a3b3ca1f2f43b9ba" - integrity sha512-pf0kdWMEfPSV/+8rcViDCFzbLMtWIHMZ8ay7hKwqaoWegsJ0oprSF2tSTH+LSC/7X1Beb9ssIvHj1m5C4es5Xg== +"@react-native-community/cli-types@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-11.4.1.tgz#3842dc37ba3b09f929b485bcbd8218de19349ac2" + integrity sha512-B3q9A5BCneLDSoK/iSJ06MNyBn1qTxjdJeOgeS3MiCxgJpPcxyn/Yrc6+h0Cu9T9sgWj/dmectQPYWxtZeo5VA== dependencies: joi "^17.2.1" -"@react-native-community/cli-types@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-13.6.9.tgz#08bfb796eacf0daeb31e2de516e81e78a36a1a55" - integrity sha512-RLxDppvRxXfs3hxceW/mShi+6o5yS+kFPnPqZTaMKKR5aSg7LwDpLQW4K2D22irEG8e6RKDkZUeH9aL3vO2O0w== +"@react-native-community/cli-types@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-14.0.0.tgz#6cde2d2a93edd9b13238171edef30352d37e8dd2" + integrity sha512-CMUevd1pOWqvmvutkUiyQT2lNmMHUzSW7NKc1xvHgg39NjbS58Eh2pMzIUP85IwbYNeocfYc3PH19vA/8LnQtg== dependencies: joi "^17.2.1" @@ -3789,50 +3810,49 @@ prompts "^2.4.0" semver "^6.3.0" -"@react-native-community/cli@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-11.3.5.tgz#18ac20ba96182662cf1088cbed20b6065935ddba" - integrity sha512-wMXgKEWe6uesw7vyXKKjx5EDRog0QdXHxdgRguG14AjQRao1+4gXEWq2yyExOTi/GDY6dfJBUGTCwGQxhnk/Lg== - dependencies: - "@react-native-community/cli-clean" "11.3.5" - "@react-native-community/cli-config" "11.3.5" - "@react-native-community/cli-debugger-ui" "11.3.5" - "@react-native-community/cli-doctor" "11.3.5" - "@react-native-community/cli-hermes" "11.3.5" - "@react-native-community/cli-plugin-metro" "11.3.5" - "@react-native-community/cli-server-api" "11.3.5" - "@react-native-community/cli-tools" "11.3.5" - "@react-native-community/cli-types" "11.3.5" +"@react-native-community/cli@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-14.0.0.tgz#0c98d75ac55515d07972682c1053f46bfee93863" + integrity sha512-KwMKJB5jsDxqOhT8CGJ55BADDAYxlYDHv5R/ASQlEcdBEZxT0zZmnL0iiq2VqzETUy+Y/Nop+XDFgqyoQm0C2w== + dependencies: + "@react-native-community/cli-clean" "14.0.0" + "@react-native-community/cli-config" "14.0.0" + "@react-native-community/cli-debugger-ui" "14.0.0" + "@react-native-community/cli-doctor" "14.0.0" + "@react-native-community/cli-server-api" "14.0.0" + "@react-native-community/cli-tools" "14.0.0" + "@react-native-community/cli-types" "14.0.0" chalk "^4.1.2" commander "^9.4.1" + deepmerge "^4.3.0" execa "^5.0.0" - find-up "^4.1.0" + find-up "^5.0.0" fs-extra "^8.1.0" graceful-fs "^4.1.3" - prompts "^2.4.0" - semver "^6.3.0" + prompts "^2.4.2" + semver "^7.5.2" -"@react-native-community/cli@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-13.6.9.tgz#ba6360b94e0aba9c4001bda256cf7e57e2ecb02c" - integrity sha512-hFJL4cgLPxncJJd/epQ4dHnMg5Jy/7Q56jFvA3MHViuKpzzfTCJCB+pGY54maZbtym53UJON9WTGpM3S81UfjQ== - dependencies: - "@react-native-community/cli-clean" "13.6.9" - "@react-native-community/cli-config" "13.6.9" - "@react-native-community/cli-debugger-ui" "13.6.9" - "@react-native-community/cli-doctor" "13.6.9" - "@react-native-community/cli-hermes" "13.6.9" - "@react-native-community/cli-server-api" "13.6.9" - "@react-native-community/cli-tools" "13.6.9" - "@react-native-community/cli-types" "13.6.9" +"@react-native-community/cli@^11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-11.4.1.tgz#9a6346486622860dad721da406df70e29a45491f" + integrity sha512-NdAageVMtNhtvRsrq4NgJf5Ey2nA1CqmLvn7PhSawg+aIzMKmZuzWxGVwr9CoPGyjvNiqJlCWrLGR7NzOyi/sA== + dependencies: + "@react-native-community/cli-clean" "11.4.1" + "@react-native-community/cli-config" "11.4.1" + "@react-native-community/cli-debugger-ui" "11.4.1" + "@react-native-community/cli-doctor" "11.4.1" + "@react-native-community/cli-hermes" "11.4.1" + "@react-native-community/cli-plugin-metro" "11.4.1" + "@react-native-community/cli-server-api" "11.4.1" + "@react-native-community/cli-tools" "11.4.1" + "@react-native-community/cli-types" "11.4.1" chalk "^4.1.2" commander "^9.4.1" - deepmerge "^4.3.0" execa "^5.0.0" find-up "^4.1.0" fs-extra "^8.1.0" graceful-fs "^4.1.3" - prompts "^2.4.2" + prompts "^2.4.0" semver "^7.5.2" "@react-native-community/netinfo@4.7.0": @@ -3840,10 +3860,10 @@ resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-4.7.0.tgz#7482d36836cac69d0a0ae25581f65bc472639930" integrity sha512-a/sDB+AsLEUNmhAUlAaTYeXKyQdFGBUfatqKkX5jluBo2CB3OAuTHfm7rSjcaLB9EmG5iSq3fOTpync2E7EYTA== -"@react-native/assets-registry@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.74.86.tgz#5a9dc5d4c74346194a895b0be6b87a7e6022cf53" - integrity sha512-rNWSa1MTqG3Z7ZfACIDlED+T63tNlt0Lr/ruvxFJL5IX6DRC6sIrb2SrbLrlXgz7C0FbhO0ub9zfHXISgrJOsQ== +"@react-native/assets-registry@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.75.2.tgz#2c522c537fa86298987b8c877c167ac9b485d3da" + integrity sha512-P1dLHjpUeC0AIkDHRYcx0qLMr+p92IPWL3pmczzo6T76Qa9XzruQOYy0jittxyBK91Csn6HHQ/eit8TeXW8MVw== "@react-native/assets-registry@^0.72.0": version "0.72.0" @@ -3855,44 +3875,45 @@ resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e" integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ== -"@react-native/babel-plugin-codegen@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.86.tgz#4edbb8887c5cedefd52e8fda973b1da97c779db4" - integrity sha512-fO7exk0pdsOSsK3fvDz4YKe5nMeAMrsIGi525pft/L+dedjdeiWYmEoQVc9NElxwwNCldwRY6eNMw6IhKyjzLA== +"@react-native/babel-plugin-codegen@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.75.2.tgz#1d940df23ac4ca16b4bd3299f4a3c98081158960" + integrity sha512-BIKVh2ZJPkzluUGgCNgpoh6NTHgX8j04FCS0Z/rTmRJ66hir/EUBl8frMFKrOy/6i4VvZEltOWB5eWfHe1AYgw== dependencies: - "@react-native/codegen" "0.74.86" + "@react-native/codegen" "0.75.2" -"@react-native/babel-preset@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.74.86.tgz#8bb3fbd49ce11470eb8022dea2c1e51bfa8dedd4" - integrity sha512-6A+1NVAHugbBLFNU4iaYrq2lx8P7pINyqoyTtVAqd375PShRmLwu6GvuF3b/4avC97s6LmBljVTJ1xVHukA42g== +"@react-native/babel-preset@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.75.2.tgz#f66a762fd8e172e547eeebb25f2960a5144ea14f" + integrity sha512-mprpsas+WdCEMjQZnbDiAC4KKRmmLbMB+o/v4mDqKlH4Mcm7RdtP5t80MZGOVCHlceNp1uEIpXywx69DNwgbgg== dependencies: "@babel/core" "^7.20.0" - "@babel/plugin-proposal-async-generator-functions" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.18.0" "@babel/plugin-proposal-export-default-from" "^7.0.0" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0" - "@babel/plugin-proposal-numeric-separator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.20.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.0" "@babel/plugin-syntax-dynamic-import" "^7.8.0" "@babel/plugin-syntax-export-default-from" "^7.0.0" "@babel/plugin-syntax-flow" "^7.18.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" "@babel/plugin-syntax-optional-chaining" "^7.0.0" "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-async-generator-functions" "^7.24.3" "@babel/plugin-transform-async-to-generator" "^7.20.0" "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-class-properties" "^7.24.1" "@babel/plugin-transform-classes" "^7.0.0" "@babel/plugin-transform-computed-properties" "^7.0.0" "@babel/plugin-transform-destructuring" "^7.20.0" "@babel/plugin-transform-flow-strip-types" "^7.20.0" + "@babel/plugin-transform-for-of" "^7.0.0" "@babel/plugin-transform-function-name" "^7.0.0" "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.1" "@babel/plugin-transform-modules-commonjs" "^7.0.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.1" + "@babel/plugin-transform-numeric-separator" "^7.24.1" + "@babel/plugin-transform-object-rest-spread" "^7.24.5" + "@babel/plugin-transform-optional-catch-binding" "^7.24.1" + "@babel/plugin-transform-optional-chaining" "^7.24.5" "@babel/plugin-transform-parameters" "^7.0.0" "@babel/plugin-transform-private-methods" "^7.22.5" "@babel/plugin-transform-private-property-in-object" "^7.22.11" @@ -3900,6 +3921,7 @@ "@babel/plugin-transform-react-jsx" "^7.0.0" "@babel/plugin-transform-react-jsx-self" "^7.0.0" "@babel/plugin-transform-react-jsx-source" "^7.0.0" + "@babel/plugin-transform-regenerator" "^7.20.0" "@babel/plugin-transform-runtime" "^7.0.0" "@babel/plugin-transform-shorthand-properties" "^7.0.0" "@babel/plugin-transform-spread" "^7.0.0" @@ -3907,24 +3929,25 @@ "@babel/plugin-transform-typescript" "^7.5.0" "@babel/plugin-transform-unicode-regex" "^7.0.0" "@babel/template" "^7.0.0" - "@react-native/babel-plugin-codegen" "0.74.86" + "@react-native/babel-plugin-codegen" "0.75.2" babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.14.0" -"@react-native/codegen@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.74.86.tgz#90933f5ee555ffb95ca27372ba1e836f698c3192" - integrity sha512-BOwABta9035GJ/zLMkxQfgPMr47u1/1HqNIMk10FqmTe0jmROOxKEAeP4FbeS5L1voO4ug3dqr+mcuHrG+HNhA== +"@react-native/codegen@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.75.2.tgz#15674a9b21cf413eb37657fb045a06640bf54476" + integrity sha512-OkWdbtO2jTkfOXfj3ibIL27rM6LoaEuApOByU2G8X+HS6v9U87uJVJlMIRWBDmnxODzazuHwNVA2/wAmSbucaw== dependencies: "@babel/parser" "^7.20.0" glob "^7.1.1" - hermes-parser "0.19.1" + hermes-parser "0.22.0" invariant "^2.2.4" jscodeshift "^0.14.0" mkdirp "^0.5.1" nullthrows "^1.1.1" + yargs "^17.6.2" -"@react-native/codegen@^0.72.6": +"@react-native/codegen@^0.72.8": version "0.72.8" resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.72.8.tgz#0593f628e1310f430450a9479fbb4be35e7b63d6" integrity sha512-jQCcBlXV7B7ap5VlHhwIPieYz89yiRgwd2FPUBu+unz+kcJ6pAiB2U8RdLDmyIs8fiWd+Vq1xxaWs4TR329/ng== @@ -3937,15 +3960,15 @@ mkdirp "^0.5.1" nullthrows "^1.1.1" -"@react-native/community-cli-plugin@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.86.tgz#239592475b222e990ac3bb229d7cdfb8f9afcc39" - integrity sha512-q0fPDe6vx1vT5PdE3AiL+DNm0q7opzySiGle8B64bAKsa0ClIoRXAzZqolceiMHbSoCIhUbZxYtNGavrjuPyKw== +"@react-native/community-cli-plugin@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.75.2.tgz#f5943c22e6dd24fa8fc6151de8ba52b92e3cc61b" + integrity sha512-/tz0bzVja4FU0aAimzzQ7iYR43peaD6pzksArdrrGhlm8OvFYAQPOYSNeIQVMSarwnkNeg1naFKaeYf1o3++yA== dependencies: - "@react-native-community/cli-server-api" "13.6.9" - "@react-native-community/cli-tools" "13.6.9" - "@react-native/dev-middleware" "0.74.86" - "@react-native/metro-babel-transformer" "0.74.86" + "@react-native-community/cli-server-api" "14.0.0-alpha.11" + "@react-native-community/cli-tools" "14.0.0-alpha.11" + "@react-native/dev-middleware" "0.75.2" + "@react-native/metro-babel-transformer" "0.75.2" chalk "^4.0.0" execa "^5.1.1" metro "^0.80.3" @@ -3955,20 +3978,20 @@ querystring "^0.2.1" readline "^1.3.0" -"@react-native/debugger-frontend@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.74.86.tgz#87a3c7dfb12ee6e981165e304bbbe20e9b1fa009" - integrity sha512-Spq1kFX4qvPmT4HuTwpi1ALFtojlJ6s4GpWU2OnpevC/z7ks36lhD3J0rd0D9U5bkxtTYLcg31fPv7nGFC7XZg== +"@react-native/debugger-frontend@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.75.2.tgz#ead66eff1b0f8ad3c7a86b5845acc0c2cf69236e" + integrity sha512-qIC6mrlG8RQOPaYLZQiJwqnPchAVGnHWcVDeQxPMPLkM/D5+PC8tuKWYOwgLcEau3RZlgz7QQNk31Qj2/OJG6Q== -"@react-native/dev-middleware@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.74.86.tgz#b95f936c141dd44309a9ec558ed5ce034e270bc4" - integrity sha512-sc0tYxYt6dkUbNFI1IANzKO67M41BhjbJ6k/CHoFi/tGoNmHzg9IUZ89V4g3H8hn/VW9dETnPOFna1VO0sWrXg== +"@react-native/dev-middleware@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.75.2.tgz#feb325a9ec5a0fda640a0897957a43030801b1d3" + integrity sha512-fTC5m2uVjYp1XPaIJBFgscnQjPdGVsl96z/RfLgXDq0HBffyqbg29ttx6yTCx7lIa9Gdvf6nKQom+e+Oa4izSw== dependencies: "@isaacs/ttlcache" "^1.4.1" - "@react-native/debugger-frontend" "0.74.86" - "@rnx-kit/chromium-edge-launcher" "^1.0.0" + "@react-native/debugger-frontend" "0.75.2" chrome-launcher "^0.15.2" + chromium-edge-launcher "^0.2.0" connect "^3.6.5" debug "^2.2.0" node-fetch "^2.2.0" @@ -3976,37 +3999,36 @@ open "^7.0.3" selfsigned "^2.4.1" serve-static "^1.13.1" - temp-dir "^2.0.0" ws "^6.2.2" -"@react-native/gradle-plugin@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.74.86.tgz#5092d6023a4cefb1055fff251a8dae894379db9e" - integrity sha512-aoYeX7mjf3Efwc5t8AdcwC42oicMRKauGMZimvXY3xqfYV97G4foAYXrxQYZsMaxecFStdYMiXWyMFO/UFmEpA== +"@react-native/gradle-plugin@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.75.2.tgz#f5627aef8e7f17df089f4f8dae6373ea05c11854" + integrity sha512-AELeAOCZi3B2vE6SeN+mjpZjjqzqa76yfFBB3L3f3NWiu4dm/YClTGOj+5IVRRgbt8LDuRImhDoaj7ukheXr4Q== "@react-native/gradle-plugin@^0.72.11": version "0.72.11" resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.72.11.tgz#c063ef12778706611de7a1e42b74b14d9405fb9f" integrity sha512-P9iRnxiR2w7EHcZ0mJ+fmbPzMby77ZzV6y9sJI3lVLJzF7TLSdbwcQyD3lwMsiL+q5lKUHoZJS4sYmih+P2HXw== -"@react-native/js-polyfills@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.74.86.tgz#5c89c2febfb72930fee68d3eb04ba690f82a8403" - integrity sha512-Yrsj4a1rTkk618LUJJxOWFnyAZR3sHmXJwcj4qupkJs+ou3aDkixfXgVVrvQP39iBptaQvCpo7PSqs+LjSNYbA== +"@react-native/js-polyfills@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.75.2.tgz#0586fa51c043bcf9b99710ecb10982d851a0e358" + integrity sha512-AtLd3mbiE+FXK2Ru3l2NFOXDhUvzdUsCP4qspUw0haVaO/9xzV97RVD2zz0lur2f/LmZqQ2+KXyYzr7048b5iw== "@react-native/js-polyfills@^0.72.1": version "0.72.1" resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.72.1.tgz#905343ef0c51256f128256330fccbdb35b922291" integrity sha512-cRPZh2rBswFnGt5X5EUEPs0r+pAsXxYsifv/fgy9ZLQokuT52bPH+9xjDR+7TafRua5CttGW83wP4TntRcWNDA== -"@react-native/metro-babel-transformer@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.86.tgz#d67d3bf1699fcf834a70155635b30ae9f667b6dd" - integrity sha512-/9qN5zcnTHGDkC4jWibnoGmRnzDXiurl5wmkvspgnsdrJINN6eGpK8sdIn6nrHFOuPlp3Metqw3HkxbuAfNUXw== +"@react-native/metro-babel-transformer@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.75.2.tgz#bcb0d135c735b5cd50a7eb1ba4e51669c1f6224d" + integrity sha512-EygglCCuOub2sZ00CSIiEekCXoGL2XbOC6ssOB47M55QKvhdPG/0WBQXvmOmiN42uZgJK99Lj749v4rB0PlPIQ== dependencies: "@babel/core" "^7.20.0" - "@react-native/babel-preset" "0.74.86" - hermes-parser "0.19.1" + "@react-native/babel-preset" "0.75.2" + hermes-parser "0.22.0" nullthrows "^1.1.1" "@react-native/metro-config@^0.72.11": @@ -4024,12 +4046,12 @@ resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.1.0.tgz#939b87a9849e81687d3640c5efa2a486ac266f91" integrity sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA== -"@react-native/normalize-colors@*", "@react-native/normalize-colors@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.74.86.tgz#8dadd294565cdb70b333f790711a019f18bbdd8b" - integrity sha512-GGA+nhwrQ1umwnkv7tuGbGIk0oBTeNbG4cUxNQX/CbYW0R98RCNxSbXjfw1XnXZd3lCSFLDxzw154V4hum2pNQ== +"@react-native/normalize-colors@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.75.2.tgz#de095f4b985580748ffa239a70ae63fbaa93724e" + integrity sha512-nPwWJFtsqNFS/qSG9yDOiSJ64mjG7RCP4X/HXFfyWzCM1jq49h/DYBdr+c3e7AvTKGIdy0gGT3vgaRUHZFVdUQ== -"@react-native/normalize-colors@^0.72.0": +"@react-native/normalize-colors@<0.73.0", "@react-native/normalize-colors@^0.72.0": version "0.72.0" resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.72.0.tgz#14294b7ed3c1d92176d2a00df48456e8d7d62212" integrity sha512-285lfdqSXaqKuBbbtP9qL2tDrfxdOFtIMvkKadtleRQkdOxx+uzGvFr82KHmc/sSiMtfXGp7JnFYWVh4sFl7Yw== @@ -4039,15 +4061,15 @@ resolved "https://registry.yarnpkg.com/@react-native/polyfills/-/polyfills-2.0.0.tgz#4c40b74655c83982c8cf47530ee7dc13d957b6aa" integrity sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ== -"@react-native/virtualized-lists@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.74.86.tgz#bcf99fa54de3b58c354afb77d5171afd0a0dbf05" - integrity sha512-f5wZpQvlGeWcyfK3Low0tOft9ounAaVQHpa4fiHjh9x3d2EPLwoaQe7sxS0q8/5pMISjddbF9S3ofpNuDxxoeA== +"@react-native/virtualized-lists@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.75.2.tgz#6832fb0745a93e42dbda659426cc14a38a493282" + integrity sha512-pD5SVCjxc8k+JdoyQ+IlulBTEqJc3S4KUKsmv5zqbNCyETB0ZUvd4Su7bp+lLF6ALxx6KKmbGk8E3LaWEjUFFQ== dependencies: invariant "^2.2.4" nullthrows "^1.1.1" -"@react-native/virtualized-lists@^0.72.6": +"@react-native/virtualized-lists@^0.72.8": version "0.72.8" resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.72.8.tgz#a2c6a91ea0f1d40eb5a122fb063daedb92ed1dc3" integrity sha512-J3Q4Bkuo99k7mu+jPS9gSUSgq+lLRSI/+ahXNwV92XgJ/8UgOTxu2LPwhJnBk/sQKxq7E8WkZBnBiozukQMqrw== @@ -4055,18 +4077,6 @@ invariant "^2.2.4" nullthrows "^1.1.1" -"@rnx-kit/chromium-edge-launcher@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@rnx-kit/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz#c0df8ea00a902c7a417cd9655aab06de398b939c" - integrity sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg== - dependencies: - "@types/node" "^18.0.0" - escape-string-regexp "^4.0.0" - is-wsl "^2.2.0" - lighthouse-logger "^1.0.0" - mkdirp "^1.0.4" - rimraf "^3.0.2" - "@rollup/plugin-typescript@11.1.5": version "11.1.5" resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.5.tgz#039c763bf943a5921f3f42be255895e75764cb91" @@ -4092,85 +4102,85 @@ estree-walker "^2.0.2" picomatch "^2.3.1" -"@rollup/rollup-android-arm-eabi@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.2.tgz#6b991cb44bf69e50163528ea85bed545330ba821" - integrity sha512-OHflWINKtoCFSpm/WmuQaWW4jeX+3Qt3XQDepkkiFTsoxFc5BpF3Z5aDxFZgBqRjO6ATP5+b1iilp4kGIZVWlA== - -"@rollup/rollup-android-arm64@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.2.tgz#5d3c8c2f9742d62ba258cc378bd2d4720f0c431c" - integrity sha512-k0OC/b14rNzMLDOE6QMBCjDRm3fQOHAL8Ldc9bxEWvMo4Ty9RY6rWmGetNTWhPo+/+FNd1lsQYRd0/1OSix36A== - -"@rollup/rollup-darwin-arm64@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.2.tgz#8eac8682a34a705bb6a57eb3e739fd6bbedfabed" - integrity sha512-IIARRgWCNWMTeQH+kr/gFTHJccKzwEaI0YSvtqkEBPj7AshElFq89TyreKNFAGh5frLfDCbodnq+Ye3dqGKPBw== - -"@rollup/rollup-darwin-x64@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.2.tgz#70a9953fc624bd7f645901f4250f6b5807ac7e92" - integrity sha512-52udDMFDv54BTAdnw+KXNF45QCvcJOcYGl3vQkp4vARyrcdI/cXH8VXTEv/8QWfd6Fru8QQuw1b2uNersXOL0g== - -"@rollup/rollup-linux-arm-gnueabihf@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.2.tgz#8f6c4ff4c4972413ff94345080380d4e3caa3c69" - integrity sha512-r+SI2t8srMPYZeoa1w0o/AfoVt9akI1ihgazGYPQGRilVAkuzMGiTtexNZkrPkQsyFrvqq/ni8f3zOnHw4hUbA== - -"@rollup/rollup-linux-arm-musleabihf@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.2.tgz#5d3c0fe5ea5ddf2feb511b3cb031df17eaa7e33d" - integrity sha512-+tYiL4QVjtI3KliKBGtUU7yhw0GMcJJuB9mLTCEauHEsqfk49gtUBXGtGP3h1LW8MbaTY6rSFIQV1XOBps1gBA== - -"@rollup/rollup-linux-arm64-gnu@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.2.tgz#b7f104388b2f5624d9f8adfff10ba59af8ab8ed1" - integrity sha512-OR5DcvZiYN75mXDNQQxlQPTv4D+uNCUsmSCSY2FolLf9W5I4DSoJyg7z9Ea3TjKfhPSGgMJiey1aWvlWuBzMtg== - -"@rollup/rollup-linux-arm64-musl@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.2.tgz#6d5ca6d3904309bec285ea5202d589cebb93dee4" - integrity sha512-Hw3jSfWdUSauEYFBSFIte6I8m6jOj+3vifLg8EU3lreWulAUpch4JBjDMtlKosrBzkr0kwKgL9iCfjA8L3geoA== - -"@rollup/rollup-linux-powerpc64le-gnu@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.2.tgz#4df9be1396ea9eb0ca99fd0f2e858008d7f063e3" - integrity sha512-rhjvoPBhBwVnJRq/+hi2Q3EMiVF538/o9dBuj9TVLclo9DuONqt5xfWSaE6MYiFKpo/lFPJ/iSI72rYWw5Hc7w== - -"@rollup/rollup-linux-riscv64-gnu@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.2.tgz#80d63c5562915a2f8616a04251fcaee0218112b0" - integrity sha512-EAz6vjPwHHs2qOCnpQkw4xs14XJq84I81sDRGPEjKPFVPBw7fwvtwhVjcZR6SLydCv8zNK8YGFblKWd/vRmP8g== - -"@rollup/rollup-linux-s390x-gnu@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.2.tgz#ef62e9bc5cc3b84fcfe96ec0a42d1989691217b3" - integrity sha512-IJSUX1xb8k/zN9j2I7B5Re6B0NNJDJ1+soezjNojhT8DEVeDNptq2jgycCOpRhyGj0+xBn7Cq+PK7Q+nd2hxLA== - -"@rollup/rollup-linux-x64-gnu@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.2.tgz#6a275282a0080fee98ddd9fda0de23c4c6bafd48" - integrity sha512-OgaToJ8jSxTpgGkZSkwKE+JQGihdcaqnyHEFOSAU45utQ+yLruE1dkonB2SDI8t375wOKgNn8pQvaWY9kPzxDQ== - -"@rollup/rollup-linux-x64-musl@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.2.tgz#64f0c704107e6b45b26dd8c2e1ff64246e4a1251" - integrity sha512-5V3mPpWkB066XZZBgSd1lwozBk7tmOkKtquyCJ6T4LN3mzKENXyBwWNQn8d0Ci81hvlBw5RoFgleVpL6aScLYg== - -"@rollup/rollup-win32-arm64-msvc@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.2.tgz#bada17b0c5017ff58d0feba401c43ff5a646c693" - integrity sha512-ayVstadfLeeXI9zUPiKRVT8qF55hm7hKa+0N1V6Vj+OTNFfKSoUxyZvzVvgtBxqSb5URQ8sK6fhwxr9/MLmxdA== - -"@rollup/rollup-win32-ia32-msvc@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.2.tgz#a716d862f6ac39d88bdb825e27f63aeb0387cd66" - integrity sha512-Mda7iG4fOLHNsPqjWSjANvNZYoW034yxgrndof0DwCy0D3FvTjeNo+HGE6oGWgvcLZNLlcp0hLEFcRs+UGsMLg== - -"@rollup/rollup-win32-x64-msvc@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.2.tgz#d67206c5f2e4b2832ce360bbbde194e96d16dc51" - integrity sha512-DPi0ubYhSow/00YqmG1jWm3qt1F8aXziHc/UNy8bo9cpCacqhuWu+iSq/fp2SyEQK7iYTZ60fBU9cat3MXTjIQ== +"@rollup/rollup-android-arm-eabi@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.1.tgz#c3a7938551273a2b72820cf5d22e54cf41dc206e" + integrity sha512-2thheikVEuU7ZxFXubPDOtspKn1x0yqaYQwvALVtEcvFhMifPADBrgRPyHV0TF3b+9BgvgjgagVyvA/UqPZHmg== + +"@rollup/rollup-android-arm64@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.1.tgz#fa3693e4674027702c42fcbbb86bbd0c635fd3b9" + integrity sha512-t1lLYn4V9WgnIFHXy1d2Di/7gyzBWS8G5pQSXdZqfrdCGTwi1VasRMSS81DTYb+avDs/Zz4A6dzERki5oRYz1g== + +"@rollup/rollup-darwin-arm64@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.1.tgz#e19922f4ac1e4552a230ff8f49d5688c5c07d284" + integrity sha512-AH/wNWSEEHvs6t4iJ3RANxW5ZCK3fUnmf0gyMxWCesY1AlUj8jY7GC+rQE4wd3gwmZ9XDOpL0kcFnCjtN7FXlA== + +"@rollup/rollup-darwin-x64@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.1.tgz#897f8d47b115ea84692a29cf2366899499d4d915" + integrity sha512-dO0BIz/+5ZdkLZrVgQrDdW7m2RkrLwYTh2YMFG9IpBtlC1x1NPNSXkfczhZieOlOLEqgXOFH3wYHB7PmBtf+Bg== + +"@rollup/rollup-linux-arm-gnueabihf@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.1.tgz#7d1e2a542f3a5744f5c24320067bd5af99ec9d62" + integrity sha512-sWWgdQ1fq+XKrlda8PsMCfut8caFwZBmhYeoehJ05FdI0YZXk6ZyUjWLrIgbR/VgiGycrFKMMgp7eJ69HOF2pQ== + +"@rollup/rollup-linux-arm-musleabihf@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.1.tgz#88bec1c9df85fc5e24d49f783e19934717dd69b5" + integrity sha512-9OIiSuj5EsYQlmwhmFRA0LRO0dRRjdCVZA3hnmZe1rEwRk11Jy3ECGGq3a7RrVEZ0/pCsYWx8jG3IvcrJ6RCew== + +"@rollup/rollup-linux-arm64-gnu@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.1.tgz#6dc60f0fe7bd49ed07a2d4d9eab15e671b3bd59d" + integrity sha512-0kuAkRK4MeIUbzQYu63NrJmfoUVicajoRAL1bpwdYIYRcs57iyIV9NLcuyDyDXE2GiZCL4uhKSYAnyWpjZkWow== + +"@rollup/rollup-linux-arm64-musl@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.1.tgz#a03b78775c129e8333aca9e1e420e8e217ee99b9" + integrity sha512-/6dYC9fZtfEY0vozpc5bx1RP4VrtEOhNQGb0HwvYNwXD1BBbwQ5cKIbUVVU7G2d5WRE90NfB922elN8ASXAJEA== + +"@rollup/rollup-linux-powerpc64le-gnu@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.1.tgz#ee3810647faf2c105a5a4e71260bb90b96bf87bc" + integrity sha512-ltUWy+sHeAh3YZ91NUsV4Xg3uBXAlscQe8ZOXRCVAKLsivGuJsrkawYPUEyCV3DYa9urgJugMLn8Z3Z/6CeyRQ== + +"@rollup/rollup-linux-riscv64-gnu@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.1.tgz#385d76a088c27db8054d9f3f28d64d89294f838e" + integrity sha512-BggMndzI7Tlv4/abrgLwa/dxNEMn2gC61DCLrTzw8LkpSKel4o+O+gtjbnkevZ18SKkeN3ihRGPuBxjaetWzWg== + +"@rollup/rollup-linux-s390x-gnu@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.1.tgz#daa2b62a6e6f737ebef6700a12a93c9764e18583" + integrity sha512-z/9rtlGd/OMv+gb1mNSjElasMf9yXusAxnRDrBaYB+eS1shFm6/4/xDH1SAISO5729fFKUkJ88TkGPRUh8WSAA== + +"@rollup/rollup-linux-x64-gnu@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.1.tgz#790ae96118cc892464e9f10da358c0c8a6b9acdd" + integrity sha512-kXQVcWqDcDKw0S2E0TmhlTLlUgAmMVqPrJZR+KpH/1ZaZhLSl23GZpQVmawBQGVhyP5WXIsIQ/zqbDBBYmxm5w== + +"@rollup/rollup-linux-x64-musl@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.1.tgz#d613147f7ac15fafe2a0b6249e8484e161ca2847" + integrity sha512-CbFv/WMQsSdl+bpX6rVbzR4kAjSSBuDgCqb1l4J68UYsQNalz5wOqLGYj4ZI0thGpyX5kc+LLZ9CL+kpqDovZA== + +"@rollup/rollup-win32-arm64-msvc@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.1.tgz#18349db8250559a5460d59eb3575f9781be4ab98" + integrity sha512-3Q3brDgA86gHXWHklrwdREKIrIbxC0ZgU8lwpj0eEKGBQH+31uPqr0P2v11pn0tSIxHvcdOWxa4j+YvLNx1i6g== + +"@rollup/rollup-win32-ia32-msvc@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.1.tgz#199648b68271f7ab9d023f5c077725d51d12d466" + integrity sha512-tNg+jJcKR3Uwe4L0/wY3Ro0H+u3nrb04+tcq1GSYzBEmKLeOQF2emk1whxlzNqb6MMrQ2JOcQEpuuiPLyRcSIw== + +"@rollup/rollup-win32-x64-msvc@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.1.tgz#4d3ec02dbf280c20bfeac7e50cd5669b66f9108f" + integrity sha512-xGiIH95H1zU7naUyTKEyOA/I0aexNMUdO9qRv0bLKN3qu25bBdrxZHqA3PTJ24YNN/GdMzG4xkDcd/GvjuhfLg== "@semantic-ui-react/event-stack@^3.1.0": version "3.1.3" @@ -4294,17 +4304,19 @@ tslib "^2.6.2" "@smithy/core@^2.3.1": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.3.2.tgz#4a1e3da41d2a3a494cbc6bd1fc6eeb26b2e27184" - integrity sha512-in5wwt6chDBcUv1Lw1+QzZxN9fBffi+qOixfb65yK4sDuKG7zAUO9HAFqmVzsZM3N+3tTyvZjtnDXePpvp007Q== + version "2.4.0" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.4.0.tgz#56e917b6ab2dffeba681a05395c40a757d681147" + integrity sha512-cHXq+FneIF/KJbt4q4pjN186+Jf4ZB0ZOqEaZMBhT79srEyGDDBV31NqBRBjazz8ppQ1bJbDJMY9ba5wKFV36w== dependencies: "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.14" + "@smithy/middleware-retry" "^3.0.15" "@smithy/middleware-serde" "^3.0.3" "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.12" + "@smithy/smithy-client" "^3.2.0" "@smithy/types" "^3.3.0" + "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-middleware" "^3.0.3" + "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" "@smithy/credential-provider-imds@^3.2.0": @@ -4339,11 +4351,11 @@ tslib "^2.6.2" "@smithy/eventstream-serde-browser@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.5.tgz#3e971afd2b8a02a098af8decc4b9e3f35296d6a2" - integrity sha512-dEyiUYL/ekDfk+2Ra4GxV+xNnFoCmk1nuIXg+fMChFTrM2uI/1r9AdiTYzPqgb72yIv/NtAj6C3dG//1wwgakQ== + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.6.tgz#a4ab4f7cfbd137bcaa54c375276f9214e568fd8f" + integrity sha512-2hM54UWQUOrki4BtsUI1WzmD13/SeaqT/AB3EUJKbcver/WgKNaiJ5y5F5XXuVe6UekffVzuUDrBZVAA3AWRpQ== dependencies: - "@smithy/eventstream-serde-universal" "^3.0.4" + "@smithy/eventstream-serde-universal" "^3.0.5" "@smithy/types" "^3.3.0" tslib "^2.6.2" @@ -4356,18 +4368,18 @@ tslib "^2.6.2" "@smithy/eventstream-serde-node@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.4.tgz#6301752ca51b3ebabcd2dec112f1dacd990de4c1" - integrity sha512-mjlG0OzGAYuUpdUpflfb9zyLrBGgmQmrobNT8b42ZTsGv/J03+t24uhhtVEKG/b2jFtPIHF74Bq+VUtbzEKOKg== + version "3.0.5" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.5.tgz#2bbf5c9312a28f23bc55ae284efa9499f8b8f982" + integrity sha512-+upXvnHNyZP095s11jF5dhGw/Ihzqwl5G+/KtMnoQOpdfC3B5HYCcDVG9EmgkhJMXJlM64PyN5gjJl0uXFQehQ== dependencies: - "@smithy/eventstream-serde-universal" "^3.0.4" + "@smithy/eventstream-serde-universal" "^3.0.5" "@smithy/types" "^3.3.0" tslib "^2.6.2" -"@smithy/eventstream-serde-universal@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.4.tgz#6754de5b94bdc286d8ef1d6bcf22d80f6ab68f30" - integrity sha512-Od9dv8zh3PgOD7Vj4T3HSuox16n0VG8jJIM2gvKASL6aCtcS8CfHZDWe1Ik3ZXW6xBouU+45Q5wgoliWDZiJ0A== +"@smithy/eventstream-serde-universal@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.5.tgz#e1cc2f71f4d174a03e00ce4b563395a81dd17bec" + integrity sha512-5u/nXbyoh1s4QxrvNre9V6vfyoLWuiVvvd5TlZjGThIikc3G+uNiG9uOTCWweSRjv1asdDIWK7nOmN7le4RYHQ== dependencies: "@smithy/eventstream-codec" "^3.1.2" "@smithy/types" "^3.3.0" @@ -4447,15 +4459,15 @@ "@smithy/util-middleware" "^3.0.3" tslib "^2.6.2" -"@smithy/middleware-retry@^3.0.13", "@smithy/middleware-retry@^3.0.14": - version "3.0.14" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.14.tgz#739e8bac6e465e0cda26446999db614418e79da3" - integrity sha512-7ZaWZJOjUxa5hgmuMspyt8v/zVsh0GXYuF7OvCmdcbVa/xbnKQoYC+uYKunAqRGTkxjOyuOCw9rmFUFOqqC0eQ== +"@smithy/middleware-retry@^3.0.13", "@smithy/middleware-retry@^3.0.15": + version "3.0.15" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.15.tgz#9b96900cde70d8aafd267e13f4e79241be90e0c7" + integrity sha512-iTMedvNt1ApdvkaoE8aSDuwaoc+BhvHqttbA/FO4Ty+y/S5hW6Ci/CTScG7vam4RYJWZxdTElc3MEfHRVH6cgQ== dependencies: "@smithy/node-config-provider" "^3.1.4" "@smithy/protocol-http" "^4.1.0" "@smithy/service-error-classification" "^3.0.3" - "@smithy/smithy-client" "^3.1.12" + "@smithy/smithy-client" "^3.2.0" "@smithy/types" "^3.3.0" "@smithy/util-middleware" "^3.0.3" "@smithy/util-retry" "^3.0.3" @@ -4561,10 +4573,10 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/smithy-client@^3.1.11", "@smithy/smithy-client@^3.1.12": - version "3.1.12" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.1.12.tgz#fb6386816ff8a5c50eab7503d4ee3ba2e4ebac63" - integrity sha512-wtm8JtsycthkHy1YA4zjIh2thJgIQ9vGkoR639DBx5lLlLNU0v4GARpQZkr2WjXue74nZ7MiTSWfVrLkyD8RkA== +"@smithy/smithy-client@^3.1.11", "@smithy/smithy-client@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.2.0.tgz#6db94024e4bdaefa079ac68dbea23dafbea230c8" + integrity sha512-pDbtxs8WOhJLJSeaF/eAbPgXg4VVYFlRcL/zoNYA5WbG3wBL06CHtBSg53ppkttDpAJ/hdiede+xApip1CwSLw== dependencies: "@smithy/middleware-endpoint" "^3.1.0" "@smithy/middleware-stack" "^3.0.3" @@ -4643,26 +4655,26 @@ tslib "^2.6.2" "@smithy/util-defaults-mode-browser@^3.0.13": - version "3.0.14" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.14.tgz#21f3ebcb07b9d6ae1274b9d655c38bdac59e5c06" - integrity sha512-0iwTgKKmAIf+vFLV8fji21Jb2px11ktKVxbX6LIDPAUJyWQqGqBVfwba7xwa1f2FZUoolYQgLvxQEpJycXuQ5w== + version "3.0.15" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.15.tgz#df73b9ae3dddc9126e0bb93ebc720b09d7163858" + integrity sha512-FZ4Psa3vjp8kOXcd3HJOiDPBCWtiilLl57r0cnNtq/Ga9RSDrM5ERL6xt+tO43+2af6Pn5Yp92x2n5vPuduNfg== dependencies: "@smithy/property-provider" "^3.1.3" - "@smithy/smithy-client" "^3.1.12" + "@smithy/smithy-client" "^3.2.0" "@smithy/types" "^3.3.0" bowser "^2.11.0" tslib "^2.6.2" "@smithy/util-defaults-mode-node@^3.0.13": - version "3.0.14" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.14.tgz#6bb9e837282e84bbf5093dbcd120fcd296593f7a" - integrity sha512-e9uQarJKfXApkTMMruIdxHprhcXivH1flYCe8JRDTzkkLx8dA3V5J8GZlST9yfDiRWkJpZJlUXGN9Rc9Ade3OQ== + version "3.0.15" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.15.tgz#d52476e1f2e66525d918b51f8d5a9b0972bf518e" + integrity sha512-KSyAAx2q6d0t6f/S4XB2+3+6aQacm3aLMhs9aLMqn18uYGUepbdssfogW5JQZpc6lXNBnp0tEnR5e9CEKmEd7A== dependencies: "@smithy/config-resolver" "^3.0.5" "@smithy/credential-provider-imds" "^3.2.0" "@smithy/node-config-provider" "^3.1.4" "@smithy/property-provider" "^3.1.3" - "@smithy/smithy-client" "^3.1.12" + "@smithy/smithy-client" "^3.2.0" "@smithy/types" "^3.3.0" tslib "^2.6.2" @@ -5036,9 +5048,9 @@ integrity sha512-5ZZ5+YGmUE01yejiXsKnTcvhakMZ2UllZlMsQni53Doc1JWhe21ia8VntRoRD6fAEWw08JBh/z9qQHJ+//MrIg== "@types/aws-lambda@^8.10.134": - version "8.10.142" - resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.142.tgz#cb1d90bc45095e4f59e4ddfbb34a2e29c28d66b4" - integrity sha512-wy2y/2hQKrS6myOS++koXg3N1Hg+LLyPjaggCFajczSHZPqBnOMuT2sdH3kiASrmdBYyM3pmjyz5SoWraRllCQ== + version "8.10.143" + resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.143.tgz#383693fbaadc6994a71d64a7c09e8c244fad8dff" + integrity sha512-u5vzlcR14ge/4pMTTMDQr3MF0wEe38B2F9o84uC4F43vN5DGTy63npRrB6jQhyt+C0lGv4ZfiRcRkqJoZuPnmg== "@types/babel__core@^7.1.14": version "7.20.5" @@ -5083,26 +5095,10 @@ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.5.1.tgz#b29aa1f91a59f35e29ff8f7cb24faf1a3a750554" integrity sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g== -"@types/eslint-scope@^3.7.3": - version "3.7.7" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" - integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "9.6.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.0.tgz#51d4fe4d0316da9e9f2c80884f2c20ed5fb022ff" - integrity sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - "@types/eslint@^8.56.10": - version "8.56.11" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.11.tgz#e2ff61510a3b9454b3329fe7731e3b4c6f780041" - integrity sha512-sVBpJMf7UPo/wGecYOpk2aQya2VUGeHhe38WG7/mN5FufNSubf5VT9Uh9Uyp8/eLJpu1/tuhJ/qTo4mhSB4V4Q== + version "8.56.12" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.12.tgz#1657c814ffeba4d2f84c0d4ba0f44ca7ea1ca53a" + integrity sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -5216,11 +5212,11 @@ "@types/node" "*" "@types/node@*": - version "22.0.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.0.2.tgz#9fb1a2b31970871e8bf696f0e8a40d2e6d2bd04e" - integrity sha512-yPL6DyFwY5PiMVEwymNeqUTKsDczQBJ/5T7W/46RwLU/VH+AA8aT5TZkvBviLKLbbm0hlfftEkGrNzfRk/fofQ== + version "22.5.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.0.tgz#10f01fe9465166b4cab72e75f60d8b99d019f958" + integrity sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg== dependencies: - undici-types "~6.11.1" + undici-types "~6.19.2" "@types/node@16.18.82": version "16.18.82" @@ -5235,18 +5231,18 @@ undici-types "~5.26.4" "@types/node@^18.0.0": - version "18.19.42" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.42.tgz#b54ed4752c85427906aab40917b0f7f3d724bf72" - integrity sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg== + version "18.19.46" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.46.tgz#51801396c01153e0626e36f43386e83bc768b072" + integrity sha512-vnRgMS7W6cKa1/0G3/DTtQYpVrZ8c0Xm6UkLaVFrb9jtcVC3okokW09Ki1Qdrj9ISokszD69nY4WDLRlvHlhAA== dependencies: undici-types "~5.26.4" "@types/node@^20.3.1": - version "20.14.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.13.tgz#bf4fe8959ae1c43bc284de78bd6c01730933736b" - integrity sha512-+bHoGiZb8UiQ0+WEtmph2IWQCjIqg8MDZMAV+ppRRhUZnquF5mQkP/9vpSwJClEiSM/C7fZZExPzfU0vJTyp8w== + version "20.16.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.16.1.tgz#0b44b15271d0e2191ca68faf1fbe506e06aed732" + integrity sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ== dependencies: - undici-types "~5.26.4" + undici-types "~6.19.2" "@types/node@^8.9.5": version "8.10.66" @@ -5296,9 +5292,9 @@ "@types/react" "*" "@types/react@*", "@types/react@^18.2.13": - version "18.3.3" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f" - integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw== + version "18.3.4" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.4.tgz#dfdd534a1d081307144c00e325c06e00312c93a3" + integrity sha512-J7W30FTdfCxDDjmfRM+/JqLHBIyl7xUIp9kwK637FGmY7+mkSFSe6L4jpZzhj5QMfLssSDP4/i75AKkrdC7/Jw== dependencies: "@types/prop-types" "*" csstype "^3.0.2" @@ -5357,9 +5353,9 @@ "@types/yargs-parser" "*" "@types/yargs@^17.0.8": - version "17.0.32" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" - integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== + version "17.0.33" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" + integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== dependencies: "@types/yargs-parser" "*" @@ -5994,9 +5990,9 @@ async-limiter@~1.0.0: integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== async@^3.2.2, async@^3.2.3: - version "3.2.5" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" - integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== + version "3.2.6" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" + integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== asynckit@^0.4.0: version "0.4.0" @@ -6016,9 +6012,9 @@ aws-jwt-verify@^4.0.1: integrity sha512-kzvi71eD3w/mCpYRUY7cz6DX4bfYihGdI2yV3FYQ2JuZZenqAqDPz0gWj0ew6vlAtdEVBNb7p+Dm2TAIxpVYMA== axios@^1.0.0: - version "1.7.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" - integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== + version "1.7.5" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.5.tgz#21eed340eb5daf47d29b6e002424b3e88c8c54b1" + integrity sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw== dependencies: follow-redirects "^1.15.6" form-data "^4.0.0" @@ -6093,13 +6089,13 @@ babel-plugin-polyfill-corejs2@^0.4.10: "@babel/helper-define-polyfill-provider" "^0.6.2" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.10.1, babel-plugin-polyfill-corejs3@^0.10.4: - version "0.10.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz#789ac82405ad664c20476d0233b485281deb9c77" - integrity sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg== +babel-plugin-polyfill-corejs3@^0.10.6: + version "0.10.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7" + integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.1" - core-js-compat "^3.36.1" + "@babel/helper-define-polyfill-provider" "^0.6.2" + core-js-compat "^3.38.0" babel-plugin-polyfill-regenerator@^0.6.1: version "0.6.2" @@ -6121,22 +6117,25 @@ babel-plugin-transform-flow-enums@^0.0.2: "@babel/plugin-syntax-flow" "^7.12.1" babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz#9a929eafece419612ef4ae4f60b1862ebad8ef30" + integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" babel-preset-fbjs@^3.4.0: version "3.4.0" @@ -6286,7 +6285,7 @@ braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.21.10, browserslist@^4.23.0, browserslist@^4.23.1: +browserslist@^4.21.10, browserslist@^4.23.1, browserslist@^4.23.3: version "4.23.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800" integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== @@ -6296,7 +6295,7 @@ browserslist@^4.21.10, browserslist@^4.23.0, browserslist@^4.23.1: node-releases "^2.0.18" update-browserslist-db "^1.1.0" -bs-logger@0.x: +bs-logger@^0.2.6: version "0.2.6" resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== @@ -6500,9 +6499,9 @@ camelcase@^6.0.0, camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001646: - version "1.0.30001646" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001646.tgz#d472f2882259ba032dd73ee069ff01bfd059b25d" - integrity sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw== + version "1.0.30001653" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz#b8af452f8f33b1c77f122780a4aecebea0caca56" + integrity sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw== chalk@4.1.0: version "4.1.0" @@ -6589,6 +6588,18 @@ chrome-trace-event@^1.0.2: resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== +chromium-edge-launcher@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz#0c378f28c99aefc360705fa155de0113997f62fc" + integrity sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg== + dependencies: + "@types/node" "*" + escape-string-regexp "^4.0.0" + is-wsl "^2.2.0" + lighthouse-logger "^1.0.0" + mkdirp "^1.0.4" + rimraf "^3.0.2" + ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" @@ -6600,9 +6611,9 @@ ci-info@^3.2.0, ci-info@^3.6.1: integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cjs-module-lexer@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz#c485341ae8fd999ca4ee5af2d7a1c9ae01e0099c" - integrity sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q== + version "1.4.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.0.tgz#677de7ed7efff67cc40c9bf1897fea79d41b5215" + integrity sha512-N1NGmowPlGBLsOZLPvm48StN04V4YvQRL0i6b7ctrVY3epjP/ct7hFLOItz6pDIvRjwpfPxi52a2UWV2ziir8g== classnames@^2.2.6: version "2.5.1" @@ -7005,12 +7016,12 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -core-js-compat@^3.36.1, core-js-compat@^3.37.1: - version "3.37.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.37.1.tgz#c844310c7852f4bdf49b8d339730b97e17ff09ee" - integrity sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg== +core-js-compat@^3.37.1, core-js-compat@^3.38.0: + version "3.38.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.38.1.tgz#2bc7a298746ca5a7bcb9c164bcb120f2ebc09a09" + integrity sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw== dependencies: - browserslist "^4.23.0" + browserslist "^4.23.3" core-util-is@~1.0.0: version "1.0.3" @@ -7037,7 +7048,17 @@ cosmiconfig@^8.2.0: parse-json "^5.2.0" path-type "^4.0.0" -crc-32@^1.2.2: +cosmiconfig@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" + integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== + dependencies: + env-paths "^2.2.1" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + +crc-32@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== @@ -7166,9 +7187,9 @@ dateformat@^3.0.3: integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== dayjs@^1.8.15: - version "1.11.12" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.12.tgz#5245226cc7f40a15bf52e0b99fd2a04669ccac1d" - integrity sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg== + version "1.11.13" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== debounce@^1.2.1: version "1.2.1" @@ -7182,7 +7203,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3.5, debug@~4.3.4: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3.5, debug@~4.3.6: version "4.3.6" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== @@ -7327,15 +7348,6 @@ depd@2.0.0: resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -deprecated-react-native-prop-types@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-4.1.0.tgz#8ed03a64c21b7fbdd2d000957b6838d4f38d2c66" - integrity sha512-WfepZHmRbbdTvhcolb8aOKEvQdcmTMn5tKLbqbXmkBvjFjRVWAYqsXk/DBsV8TZxws8SdGHLuHaJrHSQUPRdfw== - dependencies: - "@react-native/normalize-colors" "*" - invariant "*" - prop-types "*" - deprecated-react-native-prop-types@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-3.0.2.tgz#e724a9837e6a7ccb778753c06ae4f79065873493" @@ -7345,6 +7357,15 @@ deprecated-react-native-prop-types@^3.0.1: invariant "^2.2.4" prop-types "^15.8.1" +deprecated-react-native-prop-types@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-4.2.3.tgz#0ef845c1a80ef1636bd09060e4cdf70f9727e5ad" + integrity sha512-2rLTiMKidIFFYpIVM69UnQKngLqQfL6I11Ch8wGSBftS18FUXda+o2we2950X+1dmbgps28niI3qwyH4eX3Z1g== + dependencies: + "@react-native/normalize-colors" "<0.73.0" + invariant "^2.2.4" + prop-types "^15.8.1" + deprecation@^2.0.0: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" @@ -7465,9 +7486,9 @@ ejs@^3.1.10, ejs@^3.1.7: jake "^10.8.5" electron-to-chromium@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.4.tgz#cd477c830dd6fca41fbd5465c1ff6ce08ac22343" - integrity sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA== + version "1.5.13" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz#1abf0410c5344b2b829b7247e031f02810d442e6" + integrity sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q== emittery@^0.13.1: version "0.13.1" @@ -7475,9 +7496,9 @@ emittery@^0.13.1: integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== emoji-regex@^10.3.0: - version "10.3.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" - integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== + version "10.4.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4" + integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw== emoji-regex@^7.0.1: version "7.0.3" @@ -7518,7 +7539,7 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -enhanced-resolve@^5.0.0, enhanced-resolve@^5.12.0, enhanced-resolve@^5.17.0: +enhanced-resolve@^5.0.0, enhanced-resolve@^5.15.0, enhanced-resolve@^5.17.1: version "5.17.1" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== @@ -7538,7 +7559,7 @@ entities@^4.4.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== -env-paths@^2.2.0: +env-paths@^2.2.0, env-paths@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== @@ -7548,7 +7569,7 @@ envinfo@7.8.1: resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== -envinfo@^7.10.0, envinfo@^7.7.2, envinfo@^7.7.3: +envinfo@^7.13.0, envinfo@^7.7.2, envinfo@^7.7.3: version "7.13.0" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.13.0.tgz#81fbb81e5da35d74e814941aeab7c325a606fb31" integrity sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q== @@ -7749,22 +7770,23 @@ eslint-import-resolver-node@^0.3.9: resolve "^1.22.4" eslint-import-resolver-typescript@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz#7b983680edd3f1c5bce1a5829ae0bc2d57fe9efa" - integrity sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg== + version "3.6.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.3.tgz#bb8e388f6afc0f940ce5d2c5fd4a3d147f038d9e" + integrity sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA== dependencies: - debug "^4.3.4" - enhanced-resolve "^5.12.0" - eslint-module-utils "^2.7.4" - fast-glob "^3.3.1" - get-tsconfig "^4.5.0" - is-core-module "^2.11.0" + "@nolyfill/is-core-module" "1.0.39" + debug "^4.3.5" + enhanced-resolve "^5.15.0" + eslint-module-utils "^2.8.1" + fast-glob "^3.3.2" + get-tsconfig "^4.7.5" + is-bun-module "^1.0.2" is-glob "^4.0.3" -eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" - integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== +eslint-module-utils@^2.8.0, eslint-module-utils@^2.8.1: + version "2.8.2" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.2.tgz#2ecad69d71e1fa81f17f7f24d5d3e46b168de663" + integrity sha512-3XnC5fDyc8M4J2E8pt8pmSVRX2M+5yWMCfI/kDZwauQeFgzQOuhcRBFKjTeJagqgk4sFKxe1mvNVnaWwImx/Tg== dependencies: debug "^3.2.7" @@ -7801,9 +7823,9 @@ eslint-plugin-import@^2.29.1: tsconfig-paths "^3.15.0" eslint-plugin-jsdoc@^48.0.4: - version "48.10.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.10.2.tgz#dd3fb8b8d4c6a0add3191b7f00b32a1e1ca7880d" - integrity sha512-xTkf/MmEeVrTbezc6kDqCJmK9RcseIKo8X4oyoDCMvV4LY8dqrQi8kmfRrv9n0gNBkCclevaOh2Lkmu6Fs8SLg== + version "48.11.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.11.0.tgz#7c8dae6ce0d814aff54b87fdb808f02635691ade" + integrity sha512-d12JHJDPNo7IFwTOAItCeJY1hcqoIxE0lHA8infQByLilQ9xkqrRa6laWCnsuCrf+8rUnvxXY1XuTbibRBNylA== dependencies: "@es-joy/jsdoccomment" "~0.46.0" are-docs-informative "^0.0.2" @@ -8146,7 +8168,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== -fast-glob@3, fast-glob@^3.0.3, fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.1, fast-glob@^3.3.2: +fast-glob@3, fast-glob@^3.0.3, fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -8353,9 +8375,9 @@ flow-enums-runtime@^0.0.6: integrity sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw== flow-parser@0.*: - version "0.242.1" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.242.1.tgz#d95977303d2cca0c1cb39394f5f5098d1ed5fc95" - integrity sha512-E3ml21Q1S5cMAyPbtYslkvI6yZO5oCS/S2EoteeFH8Kx9iKOv/YOJ+dGd/yMf+H3YKfhMKjnOpyNwrO7NdddWA== + version "0.244.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.244.0.tgz#dc75ef468959ca72ad5fd89a6a9b0503c141ea8a" + integrity sha512-Dkc88m5k8bx1VvHTO9HEJ7tvMcSb3Zvcv1PY4OHK7pHdtdY2aUjhmPy6vpjVJ2uUUOIybRlb91sXE8g4doChtA== flow-parser@^0.185.0: version "0.185.2" @@ -8380,9 +8402,9 @@ for-each@^0.3.3: is-callable "^1.1.3" foreground-child@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.2.1.tgz#767004ccf3a5b30df39bed90718bab43fe0a59f7" - integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA== + version "3.3.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" + integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== dependencies: cross-spawn "^7.0.0" signal-exit "^4.0.1" @@ -8587,7 +8609,7 @@ get-symbol-description@^1.0.2: es-errors "^1.3.0" get-intrinsic "^1.2.4" -get-tsconfig@^4.5.0, get-tsconfig@^4.7.0: +get-tsconfig@^4.7.0, get-tsconfig@^4.7.5: version "4.7.6" resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.6.tgz#118fd5b7b9bae234cc7705a00cd771d7eb65d62a" integrity sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA== @@ -8675,17 +8697,6 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@10.3.10, glob@^10.0.0@10.3.10, glob@^10.2.2: - version "10.3.10" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.3.5" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" - glob@7.1.4: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" @@ -8710,6 +8721,18 @@ glob@7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^10.2.2, glob@^10.3.10: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + glob@^7.0.0, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -8896,15 +8919,15 @@ hermes-estree@0.12.0: resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.12.0.tgz#8a289f9aee854854422345e6995a48613bac2ca8" integrity sha512-+e8xR6SCen0wyAKrMT3UD0ZCCLymKhRgjEB5sS28rKiFir/fXgLoeRilRUssFCILmGHb+OvHDUlhxs0+IEyvQw== -hermes-estree@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.19.1.tgz#d5924f5fac2bf0532547ae9f506d6db8f3c96392" - integrity sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g== +hermes-estree@0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.22.0.tgz#38559502b119f728901d2cfe2ef422f277802a1d" + integrity sha512-FLBt5X9OfA8BERUdc6aZS36Xz3rRuB0Y/mfocSADWEJfomc1xfene33GdyAmtTkKTBXTN/EgAy+rjTKkkZJHlw== -hermes-estree@0.20.1: - version "0.20.1" - resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.20.1.tgz#0b9a544cf883a779a8e1444b915fa365bef7f72d" - integrity sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg== +hermes-estree@0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.23.0.tgz#89c5419877b9d6bce4bb616821f496f5c5daddbc" + integrity sha512-Rkp0PNLGpORw4ktsttkVbpYJbrYKS3hAnkxu8D9nvQi6LvSbuPa+tYw/t2u3Gjc35lYd/k95YkjqyTcN4zspag== hermes-estree@0.8.0: version "0.8.0" @@ -8918,19 +8941,19 @@ hermes-parser@0.12.0: dependencies: hermes-estree "0.12.0" -hermes-parser@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.19.1.tgz#1044348097165b7c93dc198a80b04ed5130d6b1a" - integrity sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A== +hermes-parser@0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.22.0.tgz#fc8e0e6c7bfa8db85b04c9f9544a102c4fcb4040" + integrity sha512-gn5RfZiEXCsIWsFGsKiykekktUoh0PdFWYocXsUdZIyWSckT6UIyPcyyUIPSR3kpnELWeK3n3ztAse7Mat6PSA== dependencies: - hermes-estree "0.19.1" + hermes-estree "0.22.0" -hermes-parser@0.20.1: - version "0.20.1" - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.20.1.tgz#ad10597b99f718b91e283f81cbe636c50c3cff92" - integrity sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA== +hermes-parser@0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.23.0.tgz#3541907b77ca9e94fd093e8ef0ff97ca5340dee8" + integrity sha512-xLwM4ylfHGwrm+2qXfO1JT/fnqEDGSnpS/9hQ4VLtqTexSviu2ZpBgz07U8jVtndq67qdb/ps0qvaWDZ3fkTyg== dependencies: - hermes-estree "0.20.1" + hermes-estree "0.23.0" hermes-parser@0.8.0: version "0.8.0" @@ -9044,9 +9067,9 @@ humanize-ms@^1.2.1: ms "^2.0.0" husky@^9.0.11: - version "9.1.4" - resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.4.tgz#926fd19c18d345add5eab0a42b2b6d9a80259b34" - integrity sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA== + version "9.1.5" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.5.tgz#2b6edede53ee1adbbd3a3da490628a23f5243b83" + integrity sha512-rowAVRUBfI0b4+niA4SJMhfQwc107VLkBUgEYYAOQAbqDCnra1nYh83hF/MDmhYs9t9n1E3DuKOrs2LYNC+0Ag== iconv-lite@0.6.3, iconv-lite@^0.6.2: version "0.6.3" @@ -9087,9 +9110,9 @@ ignore-walk@^6.0.0: minimatch "^9.0.0" ignore@^5.0.4, ignore@^5.1.1, ignore@^5.1.2, ignore@^5.2.0, ignore@^5.2.4: - version "5.3.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" - integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== image-size@^0.6.0: version "0.6.3" @@ -9247,7 +9270,7 @@ interpret@^3.1.1: resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== -invariant@*, invariant@^2.2.4: +invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -9262,11 +9285,6 @@ ip-address@^9.0.5: jsbn "1.1.0" sprintf-js "^1.1.3" -ip@^1.1.5: - version "1.1.9" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.9.tgz#8dfbcc99a754d07f425310b86a99546b1151e396" - integrity sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ== - is-arguments@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" @@ -9322,6 +9340,13 @@ is-builtin-module@^3.2.1: dependencies: builtin-modules "^3.3.0" +is-bun-module@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-bun-module/-/is-bun-module-1.1.0.tgz#a66b9830869437f6cdad440ba49ab6e4dc837269" + integrity sha512-4mTAVPlrXpaN3jtF0lsnPCMGnq4+qZjVIKq0HCpfcqf8OC1SM5oATCIAPM5V5FN05qp2NNnFndphmdZS9CV3hA== + dependencies: + semver "^7.6.3" + is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" @@ -9334,10 +9359,10 @@ is-ci@3.0.1: dependencies: ci-info "^3.2.0" -is-core-module@^2.11.0, is-core-module@^2.12.1, is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0, is-core-module@^2.8.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.0.tgz#71c72ec5442ace7e76b306e9d48db361f22699ea" - integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA== +is-core-module@^2.12.1, is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0, is-core-module@^2.8.1: + version "2.15.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" + integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== dependencies: hasown "^2.0.2" @@ -9647,10 +9672,10 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jackspeak@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: @@ -10492,7 +10517,7 @@ lilconfig@^2.1.0: resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== -lilconfig@^3.1.1, lilconfig@~3.1.1: +lilconfig@^3.1.1, lilconfig@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== @@ -10516,22 +10541,22 @@ lines-and-columns@~2.0.3: integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== lint-staged@^15.2.2: - version "15.2.7" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.7.tgz#97867e29ed632820c0fb90be06cd9ed384025649" - integrity sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw== + version "15.2.9" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.9.tgz#bf70d40b6b192df6ad756fb89822211615e0f4da" + integrity sha512-BZAt8Lk3sEnxw7tfxM7jeZlPRuT4M68O0/CwZhhaw6eeWu0Lz5eERE3m386InivXB64fp/mDID452h48tvKlRQ== dependencies: chalk "~5.3.0" commander "~12.1.0" - debug "~4.3.4" + debug "~4.3.6" execa "~8.0.1" - lilconfig "~3.1.1" - listr2 "~8.2.1" + lilconfig "~3.1.2" + listr2 "~8.2.4" micromatch "~4.0.7" pidtree "~0.6.0" string-argv "~0.3.2" - yaml "~2.4.2" + yaml "~2.5.0" -listr2@~8.2.1: +listr2@~8.2.4: version "8.2.4" resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.4.tgz#486b51cbdb41889108cb7e2c90eeb44519f5a77f" integrity sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g== @@ -10617,7 +10642,7 @@ lodash.ismatch@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== -lodash.memoize@4.x: +lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== @@ -10723,7 +10748,7 @@ make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" -make-error@1.x: +make-error@^1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== @@ -10888,15 +10913,6 @@ metro-babel-transformer@0.73.5: metro-source-map "0.73.5" nullthrows "^1.1.1" -metro-babel-transformer@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.76.7.tgz#ba620d64cbaf97d1aa14146d654a3e5d7477fc62" - integrity sha512-bgr2OFn0J4r0qoZcHrwEvccF7g9k3wdgTOgk6gmGHrtlZ1Jn3oCpklW/DfZ9PzHfjY2mQammKTc19g/EFGyOJw== - dependencies: - "@babel/core" "^7.20.0" - hermes-parser "0.12.0" - nullthrows "^1.1.1" - metro-babel-transformer@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.76.9.tgz#659ba481d471b5f748c31a8f9397094b629f50ec" @@ -10906,13 +10922,14 @@ metro-babel-transformer@0.76.9: hermes-parser "0.12.0" nullthrows "^1.1.1" -metro-babel-transformer@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.80.9.tgz#7051ba377b7d2140abd23f4846bbbb1e81fea99b" - integrity sha512-d76BSm64KZam1nifRZlNJmtwIgAeZhZG3fi3K+EmPOlrR8rDtBxQHDSN3fSGeNB9CirdTyabTMQCkCup6BXFSQ== +metro-babel-transformer@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.80.10.tgz#a8d204ae51872b1024715e2c545363d7a3acdca3" + integrity sha512-GXHueUzgzcazfzORDxDzWS9jVVRV6u+cR6TGvHOfGdfLzJCj7/D0PretLfyq+MwN20twHxLW+BUXkoaB8sCQBg== dependencies: "@babel/core" "^7.20.0" - hermes-parser "0.20.1" + flow-enums-runtime "^0.0.6" + hermes-parser "0.23.0" nullthrows "^1.1.1" metro-cache-key@0.73.10: @@ -10920,20 +10937,17 @@ metro-cache-key@0.73.10: resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.73.10.tgz#8d63591187d295b62a80aed64a87864b1e9d67a2" integrity sha512-JMVDl/EREDiUW//cIcUzRjKSwE2AFxVWk47cFBer+KA4ohXIG2CQPEquT56hOw1Y1s6gKNxxs1OlAOEsubrFjw== -metro-cache-key@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.76.7.tgz#70913f43b92b313096673c37532edd07438cb325" - integrity sha512-0pecoIzwsD/Whn/Qfa+SDMX2YyasV0ndbcgUFx7w1Ct2sLHClujdhQ4ik6mvQmsaOcnGkIyN0zcceMDjC2+BFQ== - metro-cache-key@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.76.9.tgz#6f17f821d6f306fa9028b7e79445eb18387d03d9" integrity sha512-ugJuYBLngHVh1t2Jj+uP9pSCQl7enzVXkuh6+N3l0FETfqjgOaSHlcnIhMPn6yueGsjmkiIfxQU4fyFVXRtSTw== -metro-cache-key@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.80.9.tgz#a04cbb0a7828509bb10dde9789ef761c0c60bc3d" - integrity sha512-hRcYGhEiWIdM87hU0fBlcGr+tHDEAT+7LYNCW89p5JhErFt/QaAkVx4fb5bW3YtXGv5BTV7AspWPERoIb99CXg== +metro-cache-key@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.80.10.tgz#7b2505c16ac333af857cedb20bde0373e1855944" + integrity sha512-57qBhO3zQfoU/hP4ZlLW5hVej2jVfBX6B4NcSfMj4LgDPL3YknWg80IJBxzQfjQY/m+fmMLmPy8aUMHzUp/guA== + dependencies: + flow-enums-runtime "^0.0.6" metro-cache@0.73.10: version "0.73.10" @@ -10943,14 +10957,6 @@ metro-cache@0.73.10: metro-core "0.73.10" rimraf "^3.0.2" -metro-cache@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.76.7.tgz#e49e51423fa960df4eeff9760d131f03e003a9eb" - integrity sha512-nWBMztrs5RuSxZRI7hgFgob5PhYDmxICh9FF8anm9/ito0u0vpPvRxt7sRu8fyeD2AHdXqE7kX32rWY0LiXgeg== - dependencies: - metro-core "0.76.7" - rimraf "^3.0.2" - metro-cache@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.76.9.tgz#64326d7a8b470c3886a5e97d5e2a20acab20bc5f" @@ -10959,13 +10965,14 @@ metro-cache@0.76.9: metro-core "0.76.9" rimraf "^3.0.2" -metro-cache@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.80.9.tgz#b914318a90dbcd51b4c27836184519c441ba5123" - integrity sha512-ujEdSI43QwI+Dj2xuNax8LMo8UgKuXJEdxJkzGPU6iIx42nYa1byQ+aADv/iPh5sh5a//h5FopraW5voXSgm2w== +metro-cache@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.80.10.tgz#3110af31ee8d77397965d6c3e7afadb778bdc8a3" + integrity sha512-8CBtDJwMguIE5RvV3PU1QtxUG8oSSX54mIuAbRZmcQ0MYiOl9JdrMd4JCBvIyhiZLoSStph425SMyCSnjtJsdA== dependencies: - metro-core "0.80.9" - rimraf "^3.0.2" + exponential-backoff "^3.1.1" + flow-enums-runtime "^0.0.6" + metro-core "0.80.10" metro-config@0.73.10: version "0.73.10" @@ -10979,19 +10986,6 @@ metro-config@0.73.10: metro-core "0.73.10" metro-runtime "0.73.10" -metro-config@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.76.7.tgz#f0fc171707523aa7d3a9311550872136880558c0" - integrity sha512-CFDyNb9bqxZemiChC/gNdXZ7OQkIwmXzkrEXivcXGbgzlt/b2juCv555GWJHyZSlorwnwJfY3uzAFu4A9iRVfg== - dependencies: - connect "^3.6.5" - cosmiconfig "^5.0.5" - jest-validate "^29.2.1" - metro "0.76.7" - metro-cache "0.76.7" - metro-core "0.76.7" - metro-runtime "0.76.7" - metro-config@0.76.9, metro-config@^0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.76.9.tgz#5e60aff9d8894c1ee6bbc5de23b7c8515a0b84a3" @@ -11005,18 +10999,19 @@ metro-config@0.76.9, metro-config@^0.76.9: metro-core "0.76.9" metro-runtime "0.76.9" -metro-config@0.80.9, metro-config@^0.80.3: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.80.9.tgz#4eb6948b0ddc7c38d9d4ba8ddf22a67ca1c2bc06" - integrity sha512-28wW7CqS3eJrunRGnsibWldqgwRP9ywBEf7kg+uzUHkSFJNKPM1K3UNSngHmH0EZjomizqQA2Zi6/y6VdZMolg== +metro-config@0.80.10, metro-config@^0.80.3: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.80.10.tgz#86c7a5e2665fb8b4c7ffd08976803c88fd6ce962" + integrity sha512-0GYAw0LkmGbmA81FepKQepL1KU/85Cyv7sAiWm6QWeV6AcVCpsKg6jGLqGHJ0LLPL60rWzA4TV1DQAlzdJAEtA== dependencies: connect "^3.6.5" cosmiconfig "^5.0.5" + flow-enums-runtime "^0.0.6" jest-validate "^29.6.3" - metro "0.80.9" - metro-cache "0.80.9" - metro-core "0.80.9" - metro-runtime "0.80.9" + metro "0.80.10" + metro-cache "0.80.10" + metro-core "0.80.10" + metro-runtime "0.80.10" metro-core@0.73.10: version "0.73.10" @@ -11026,15 +11021,7 @@ metro-core@0.73.10: lodash.throttle "^4.1.1" metro-resolver "0.73.10" -metro-core@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.76.7.tgz#5d2b8bac2cde801dc22666ad7be1336d1f021b61" - integrity sha512-0b8KfrwPmwCMW+1V7ZQPkTy2tsEKZjYG9Pu1PTsu463Z9fxX7WaR0fcHFshv+J1CnQSUTwIGGjbNvj1teKe+pw== - dependencies: - lodash.throttle "^4.1.1" - metro-resolver "0.76.7" - -metro-core@0.76.9: +metro-core@0.76.9, metro-core@^0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.76.9.tgz#5f55f0fbde41d28957e4f3bb187d32251403f00e" integrity sha512-DSeEr43Wrd5Q7ySfRzYzDwfV89g2OZTQDf1s3exOcLjE5fb7awoLOkA2h46ZzN8NcmbbM0cuJy6hOwF073/yRQ== @@ -11042,13 +11029,14 @@ metro-core@0.76.9: lodash.throttle "^4.1.1" metro-resolver "0.76.9" -metro-core@0.80.9, metro-core@^0.80.3: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.80.9.tgz#3af21d0b09d71ec9c0840f028bffb36bc3619727" - integrity sha512-tbltWQn+XTdULkGdzHIxlxk4SdnKxttvQQV3wpqqFbHDteR4gwCyTR2RyYJvxgU7HELfHtrVbqgqAdlPByUSbg== +metro-core@0.80.10, metro-core@^0.80.3: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.80.10.tgz#a3a7986ca8b635ada250149efdcd9b69bfefca85" + integrity sha512-nwBB6HbpGlNsZMuzxVqxqGIOsn5F3JKpsp8PziS7Z4mV8a/jA1d44mVOgYmDa2q5WlH5iJfRIIhdz24XRNDlLA== dependencies: + flow-enums-runtime "^0.0.6" lodash.throttle "^4.1.1" - metro-resolver "0.80.9" + metro-resolver "0.80.10" metro-file-map@0.73.10: version "0.73.10" @@ -11071,26 +11059,6 @@ metro-file-map@0.73.10: optionalDependencies: fsevents "^2.3.2" -metro-file-map@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.76.7.tgz#0f041a4f186ac672f0188180310609c8483ffe89" - integrity sha512-s+zEkTcJ4mOJTgEE2ht4jIo1DZfeWreQR3tpT3gDV/Y/0UQ8aJBTv62dE775z0GLsWZApiblAYZsj7ZE8P06nw== - dependencies: - anymatch "^3.0.3" - debug "^2.2.0" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - invariant "^2.2.4" - jest-regex-util "^27.0.6" - jest-util "^27.2.0" - jest-worker "^27.2.0" - micromatch "^4.0.4" - node-abort-controller "^3.1.1" - nullthrows "^1.1.1" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - metro-file-map@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.76.9.tgz#dd3d76ec23fc0ba8cb7b3a3b8075bb09e0b5d378" @@ -11111,14 +11079,15 @@ metro-file-map@0.76.9: optionalDependencies: fsevents "^2.3.2" -metro-file-map@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.80.9.tgz#ed8783f6e35dfc005794344c2a9fcd6e914885aa" - integrity sha512-sBUjVtQMHagItJH/wGU9sn3k2u0nrCl0CdR4SFMO1tksXLKbkigyQx4cbpcyPVOAmGTVuy3jyvBlELaGCAhplQ== +metro-file-map@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.80.10.tgz#7eef9e5ef96a5aad93e4f9680fadb6c1e1ca34bc" + integrity sha512-ytsUq8coneaN7ZCVk1IogojcGhLIbzWyiI2dNmw2nnBgV/0A+M5WaTTgZ6dJEz3dzjObPryDnkqWPvIGLCPtiw== dependencies: anymatch "^3.0.3" debug "^2.2.0" fb-watchman "^2.0.0" + flow-enums-runtime "^0.0.6" graceful-fs "^4.2.4" invariant "^2.2.4" jest-worker "^29.6.3" @@ -11144,17 +11113,6 @@ metro-inspector-proxy@0.73.10: ws "^7.5.1" yargs "^17.5.1" -metro-inspector-proxy@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.76.7.tgz#c067df25056e932002a72a4b45cf7b4b749f808e" - integrity sha512-rNZ/6edTl/1qUekAhAbaFjczMphM50/UjtxiKulo6vqvgn/Mjd9hVqDvVYfAMZXqPvlusD88n38UjVYPkruLSg== - dependencies: - connect "^3.6.5" - debug "^2.2.0" - node-fetch "^2.2.0" - ws "^7.5.1" - yargs "^17.6.2" - metro-inspector-proxy@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.76.9.tgz#0d333e64a7bc9d156d712265faa7b7ae88c775e8" @@ -11173,13 +11131,6 @@ metro-minify-terser@0.73.10: dependencies: terser "^5.15.0" -metro-minify-terser@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.76.7.tgz#aefac8bb8b6b3a0fcb5ea0238623cf3e100893ff" - integrity sha512-FQiZGhIxCzhDwK4LxyPMLlq0Tsmla10X7BfNGlYFK0A5IsaVKNJbETyTzhpIwc+YFRT4GkFFwgo0V2N5vxO5HA== - dependencies: - terser "^5.15.0" - metro-minify-terser@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.76.9.tgz#3f6271da74dd57179852118443b62cc8dc578aab" @@ -11187,11 +11138,12 @@ metro-minify-terser@0.76.9: dependencies: terser "^5.15.0" -metro-minify-terser@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.80.9.tgz#2b7798cba2bd4bd69cc5ce05a45bf66291542f83" - integrity sha512-FEeCeFbkvvPuhjixZ1FYrXtO0araTpV6UbcnGgDUpH7s7eR5FG/PiJz3TsuuPP/HwCK19cZtQydcA2QrCw446A== +metro-minify-terser@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.80.10.tgz#21e10cdd52b05cc95c195b8c22bb09afc1b45347" + integrity sha512-Xyv9pEYpOsAerrld7cSLIcnCCpv8ItwysOmTA+AKf1q4KyE9cxrH2O2SA0FzMCkPzwxzBWmXwHUr+A89BpEM6g== dependencies: + flow-enums-runtime "^0.0.6" terser "^5.15.0" metro-minify-uglify@0.73.10: @@ -11201,13 +11153,6 @@ metro-minify-uglify@0.73.10: dependencies: uglify-es "^3.1.9" -metro-minify-uglify@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.76.7.tgz#3e0143786718dcaea4e28a724698d4f8ac199a43" - integrity sha512-FuXIU3j2uNcSvQtPrAJjYWHruPiQ+EpE++J9Z+VznQKEHcIxMMoQZAfIF2IpZSrZYfLOjVFyGMvj41jQMxV1Vw== - dependencies: - uglify-es "^3.1.9" - metro-minify-uglify@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.76.9.tgz#e88c30c27911c053e1ee20e12077f0f4cbb154f8" @@ -11303,51 +11248,6 @@ metro-react-native-babel-preset@0.73.5: "@babel/template" "^7.0.0" react-refresh "^0.4.0" -metro-react-native-babel-preset@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.7.tgz#dfe15c040d0918147a8b0e9f530d558287acbb54" - integrity sha512-R25wq+VOSorAK3hc07NW0SmN8z9S/IR0Us0oGAsBcMZnsgkbOxu77Mduqf+f4is/wnWHc5+9bfiqdLnaMngiVw== - dependencies: - "@babel/core" "^7.20.0" - "@babel/plugin-proposal-async-generator-functions" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.18.0" - "@babel/plugin-proposal-export-default-from" "^7.0.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0" - "@babel/plugin-proposal-numeric-separator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.20.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-export-default-from" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.18.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-syntax-optional-chaining" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-async-to-generator" "^7.20.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.20.0" - "@babel/plugin-transform-flow-strip-types" "^7.20.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - "@babel/plugin-transform-runtime" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.5.0" - "@babel/plugin-transform-unicode-regex" "^7.0.0" - "@babel/template" "^7.0.0" - babel-plugin-transform-flow-enums "^0.0.2" - react-refresh "^0.4.0" - metro-react-native-babel-preset@0.76.8: version "0.76.8" resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.8.tgz#7476efae14363cbdfeeec403b4f01d7348e6c048" @@ -11464,17 +11364,6 @@ metro-react-native-babel-transformer@0.73.5: metro-source-map "0.73.5" nullthrows "^1.1.1" -metro-react-native-babel-transformer@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.7.tgz#ccc7c25b49ee8a1860aafdbf48bfa5441d206f8f" - integrity sha512-W6lW3J7y/05ph3c2p3KKJNhH0IdyxdOCbQ5it7aM2MAl0SM4wgKjaV6EYv9b3rHklpV6K3qMH37UKVcjMooWiA== - dependencies: - "@babel/core" "^7.20.0" - babel-preset-fbjs "^3.4.0" - hermes-parser "0.12.0" - metro-react-native-babel-preset "0.76.7" - nullthrows "^1.1.1" - metro-react-native-babel-transformer@^0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.9.tgz#464aab85669ed39f7a59f1fd993a05de9543b09e" @@ -11493,20 +11382,17 @@ metro-resolver@0.73.10: dependencies: absolute-path "^0.0.0" -metro-resolver@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.76.7.tgz#f00ebead64e451c060f30926ecbf4f797588df52" - integrity sha512-pC0Wgq29HHIHrwz23xxiNgylhI8Rq1V01kQaJ9Kz11zWrIdlrH0ZdnJ7GC6qA0ErROG+cXmJ0rJb8/SW1Zp2IA== - -metro-resolver@0.76.9: +metro-resolver@0.76.9, metro-resolver@^0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.76.9.tgz#79c244784b16ca56076bc1fc816d2ba74860e882" integrity sha512-s86ipNRas9vNR5lChzzSheF7HoaQEmzxBLzwFA6/2YcGmUCowcoyPAfs1yPh4cjMw9F1T4KlMLaiwniGE7HCyw== -metro-resolver@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.80.9.tgz#bae9120a0553e0cb59da6429e83a7e97465cc1a8" - integrity sha512-wAPIjkN59BQN6gocVsAvvpZ1+LQkkqUaswlT++cJafE/e54GoVkMNCmrR4BsgQHr9DknZ5Um/nKueeN7kaEz9w== +metro-resolver@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.80.10.tgz#d335e1daed29124d7f96dabe48f9c94a56176bac" + integrity sha512-EYC5CL7f+bSzrqdk1bylKqFNGabfiI5PDctxoPx70jFt89Jz+ThcOscENog8Jb4LEQFG6GkOYlwmPpsi7kx3QA== + dependencies: + flow-enums-runtime "^0.0.6" metro-runtime@0.73.10: version "0.73.10" @@ -11524,14 +11410,6 @@ metro-runtime@0.73.5: "@babel/runtime" "^7.0.0" react-refresh "^0.4.0" -metro-runtime@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.76.7.tgz#4d75f2dbbcd19a4f01e0d89494e140b0ba8247e4" - integrity sha512-MuWHubQHymUWBpZLwuKZQgA/qbb35WnDAKPo83rk7JRLIFPvzXSvFaC18voPuzJBt1V98lKQIonh6MiC9gd8Ug== - dependencies: - "@babel/runtime" "^7.0.0" - react-refresh "^0.4.0" - metro-runtime@0.76.9, metro-runtime@^0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.76.9.tgz#f8ebe150f8896ce1aef5d7f3a52844f8b4f721fb" @@ -11540,12 +11418,13 @@ metro-runtime@0.76.9, metro-runtime@^0.76.9: "@babel/runtime" "^7.0.0" react-refresh "^0.4.0" -metro-runtime@0.80.9, metro-runtime@^0.80.3: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.80.9.tgz#665312bd4e4d38fea921b3153d6ab47846eb4f08" - integrity sha512-8PTVIgrVcyU+X/rVCy/9yxNlvXsBCk5JwwkbAm/Dm+Abo6NBGtNjWF0M1Xo/NWCb4phamNWcD7cHdR91HhbJvg== +metro-runtime@0.80.10, metro-runtime@^0.80.3: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.80.10.tgz#3fbca798586fa3771018e1d2bd0ef7ac445805ba" + integrity sha512-Xh0N589ZmSIgJYAM+oYwlzTXEHfASZac9TYPCNbvjNTn0EHKqpoJ/+Im5G3MZT4oZzYv4YnvzRtjqS5k0tK94A== dependencies: "@babel/runtime" "^7.0.0" + flow-enums-runtime "^0.0.6" metro-source-map@0.73.10: version "0.73.10" @@ -11575,21 +11454,7 @@ metro-source-map@0.73.5: source-map "^0.5.6" vlq "^1.0.0" -metro-source-map@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.76.7.tgz#9a4aa3a35e1e8ffde9a74cd7ab5f49d9d4a4da14" - integrity sha512-Prhx7PeRV1LuogT0Kn5VjCuFu9fVD68eefntdWabrksmNY6mXK8pRqzvNJOhTojh6nek+RxBzZeD6MIOOyXS6w== - dependencies: - "@babel/traverse" "^7.20.0" - "@babel/types" "^7.20.0" - invariant "^2.2.4" - metro-symbolicate "0.76.7" - nullthrows "^1.1.1" - ob1 "0.76.7" - source-map "^0.5.6" - vlq "^1.0.0" - -metro-source-map@0.76.9: +metro-source-map@0.76.9, metro-source-map@^0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.76.9.tgz#0f976ada836717f307427d3830aea52a2ca7ed5f" integrity sha512-q5qsMlu8EFvsT46wUUh+ao+efDsicT30zmaPATNhq+PcTawDbDgnMuUD+FT0bvxxnisU2PWl91RdzKfNc2qPQA== @@ -11603,17 +11468,18 @@ metro-source-map@0.76.9: source-map "^0.5.6" vlq "^1.0.0" -metro-source-map@0.80.9, metro-source-map@^0.80.3: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.80.9.tgz#df8f673137548f37ab9f9dcfa771b354a452cfab" - integrity sha512-RMn+XS4VTJIwMPOUSj61xlxgBvPeY4G6s5uIn6kt6HB6A/k9ekhr65UkkDD7WzHYs3a9o869qU8tvOZvqeQzgw== +metro-source-map@0.80.10, metro-source-map@^0.80.3: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.80.10.tgz#95bc0c1edccd3e0b53af4126deda7fbbe104ef15" + integrity sha512-EyZswqJW8Uukv/HcQr6K19vkMXW1nzHAZPWJSEyJFKIbgp708QfRZ6vnZGmrtFxeJEaFdNup4bGnu8/mIOYlyA== dependencies: "@babel/traverse" "^7.20.0" "@babel/types" "^7.20.0" + flow-enums-runtime "^0.0.6" invariant "^2.2.4" - metro-symbolicate "0.80.9" + metro-symbolicate "0.80.10" nullthrows "^1.1.1" - ob1 "0.80.9" + ob1 "0.80.10" source-map "^0.5.6" vlq "^1.0.0" @@ -11641,18 +11507,6 @@ metro-symbolicate@0.73.5: through2 "^2.0.1" vlq "^1.0.0" -metro-symbolicate@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.76.7.tgz#1720e6b4ce5676935d7a8a440f25d3f16638e87a" - integrity sha512-p0zWEME5qLSL1bJb93iq+zt5fz3sfVn9xFYzca1TJIpY5MommEaS64Va87lp56O0sfEIvh4307Oaf/ZzRjuLiQ== - dependencies: - invariant "^2.2.4" - metro-source-map "0.76.7" - nullthrows "^1.1.1" - source-map "^0.5.6" - through2 "^2.0.1" - vlq "^1.0.0" - metro-symbolicate@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.76.9.tgz#f1627ef6f73bb0c4d48c55684d3c87866a0b0920" @@ -11665,13 +11519,14 @@ metro-symbolicate@0.76.9: through2 "^2.0.1" vlq "^1.0.0" -metro-symbolicate@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.80.9.tgz#8d1d19d26ebb36b9d13dbd29814fdd71d6009db7" - integrity sha512-Ykae12rdqSs98hg41RKEToojuIW85wNdmSe/eHUgMkzbvCFNVgcC0w3dKZEhSsqQOXapXRlLtHkaHLil0UD/EA== +metro-symbolicate@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.80.10.tgz#441121d97408c5a3da25c49c3ce8ae7b034eadf7" + integrity sha512-qAoVUoSxpfZ2DwZV7IdnQGXCSsf2cAUExUcZyuCqGlY5kaWBb0mx2BL/xbMFDJ4wBp3sVvSBPtK/rt4J7a0xBA== dependencies: + flow-enums-runtime "^0.0.6" invariant "^2.2.4" - metro-source-map "0.80.9" + metro-source-map "0.80.10" nullthrows "^1.1.1" source-map "^0.5.6" through2 "^2.0.1" @@ -11688,17 +11543,6 @@ metro-transform-plugins@0.73.10: "@babel/traverse" "^7.20.0" nullthrows "^1.1.1" -metro-transform-plugins@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.76.7.tgz#5d5f75371706fbf5166288e43ffd36b5e5bd05bc" - integrity sha512-iSmnjVApbdivjuzb88Orb0JHvcEt5veVyFAzxiS5h0QB+zV79w6JCSqZlHCrbNOkOKBED//LqtKbFVakxllnNg== - dependencies: - "@babel/core" "^7.20.0" - "@babel/generator" "^7.20.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^7.20.0" - nullthrows "^1.1.1" - metro-transform-plugins@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.76.9.tgz#73e34f2014d3df3c336a882b13e541bceb826d37" @@ -11710,15 +11554,16 @@ metro-transform-plugins@0.76.9: "@babel/traverse" "^7.20.0" nullthrows "^1.1.1" -metro-transform-plugins@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.80.9.tgz#473a2c0a9e48043210547abe61cdeedb77725422" - integrity sha512-UlDk/uc8UdfLNJhPbF3tvwajyuuygBcyp+yBuS/q0z3QSuN/EbLllY3rK8OTD9n4h00qZ/qgxGv/lMFJkwP4vg== +metro-transform-plugins@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.80.10.tgz#df8f44396154ad0bf151533b9bbcdfdf90fccebb" + integrity sha512-leAx9gtA+2MHLsCeWK6XTLBbv2fBnNFu/QiYhWzMq8HsOAP4u1xQAU0tSgPs8+1vYO34Plyn79xTLUtQCRSSUQ== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" "@babel/template" "^7.0.0" "@babel/traverse" "^7.20.0" + flow-enums-runtime "^0.0.6" nullthrows "^1.1.1" metro-transform-worker@0.73.10: @@ -11740,24 +11585,6 @@ metro-transform-worker@0.73.10: metro-transform-plugins "0.73.10" nullthrows "^1.1.1" -metro-transform-worker@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.76.7.tgz#b842d5a542f1806cca401633fc002559b3e3d668" - integrity sha512-cGvELqFMVk9XTC15CMVzrCzcO6sO1lURfcbgjuuPdzaWuD11eEyocvkTX0DPiRjsvgAmicz4XYxVzgYl3MykDw== - dependencies: - "@babel/core" "^7.20.0" - "@babel/generator" "^7.20.0" - "@babel/parser" "^7.20.0" - "@babel/types" "^7.20.0" - babel-preset-fbjs "^3.4.0" - metro "0.76.7" - metro-babel-transformer "0.76.7" - metro-cache "0.76.7" - metro-cache-key "0.76.7" - metro-source-map "0.76.7" - metro-transform-plugins "0.76.7" - nullthrows "^1.1.1" - metro-transform-worker@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.76.9.tgz#281fad223f0447e1ff9cc44d6f7e33dfab9ab120" @@ -11777,22 +11604,23 @@ metro-transform-worker@0.76.9: metro-transform-plugins "0.76.9" nullthrows "^1.1.1" -metro-transform-worker@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.80.9.tgz#f1d8ef4f77228bb7e1d20d3c06934166e8ee3b28" - integrity sha512-c/IrzMUVnI0hSVVit4TXzt3A1GiUltGVlzCmLJWxNrBGHGrJhvgePj38+GXl1Xf4Fd4vx6qLUkKMQ3ux73bFLQ== +metro-transform-worker@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.80.10.tgz#aa083673653d5555b2eb34fec316759e57aa97ab" + integrity sha512-zNfNLD8Rz99U+JdOTqtF2o7iTjcDMMYdVS90z6+81Tzd2D0lDWVpls7R1hadS6xwM+ymgXFQTjM6V6wFoZaC0g== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" "@babel/parser" "^7.20.0" "@babel/types" "^7.20.0" - metro "0.80.9" - metro-babel-transformer "0.80.9" - metro-cache "0.80.9" - metro-cache-key "0.80.9" - metro-minify-terser "0.80.9" - metro-source-map "0.80.9" - metro-transform-plugins "0.80.9" + flow-enums-runtime "^0.0.6" + metro "0.80.10" + metro-babel-transformer "0.80.10" + metro-cache "0.80.10" + metro-cache-key "0.80.10" + metro-minify-terser "0.80.10" + metro-source-map "0.80.10" + metro-transform-plugins "0.80.10" nullthrows "^1.1.1" metro@0.73.10: @@ -11852,61 +11680,7 @@ metro@0.73.10: ws "^7.5.1" yargs "^17.5.1" -metro@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.76.7.tgz#4885917ad28738c7d1e556630e0155f687336230" - integrity sha512-67ZGwDeumEPnrHI+pEDSKH2cx+C81Gx8Mn5qOtmGUPm/Up9Y4I1H2dJZ5n17MWzejNo0XAvPh0QL0CrlJEODVQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/core" "^7.20.0" - "@babel/generator" "^7.20.0" - "@babel/parser" "^7.20.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^7.20.0" - "@babel/types" "^7.20.0" - accepts "^1.3.7" - async "^3.2.2" - chalk "^4.0.0" - ci-info "^2.0.0" - connect "^3.6.5" - debug "^2.2.0" - denodeify "^1.2.1" - error-stack-parser "^2.0.6" - graceful-fs "^4.2.4" - hermes-parser "0.12.0" - image-size "^1.0.2" - invariant "^2.2.4" - jest-worker "^27.2.0" - jsc-safe-url "^0.2.2" - lodash.throttle "^4.1.1" - metro-babel-transformer "0.76.7" - metro-cache "0.76.7" - metro-cache-key "0.76.7" - metro-config "0.76.7" - metro-core "0.76.7" - metro-file-map "0.76.7" - metro-inspector-proxy "0.76.7" - metro-minify-terser "0.76.7" - metro-minify-uglify "0.76.7" - metro-react-native-babel-preset "0.76.7" - metro-resolver "0.76.7" - metro-runtime "0.76.7" - metro-source-map "0.76.7" - metro-symbolicate "0.76.7" - metro-transform-plugins "0.76.7" - metro-transform-worker "0.76.7" - mime-types "^2.1.27" - node-fetch "^2.2.0" - nullthrows "^1.1.1" - rimraf "^3.0.2" - serialize-error "^2.1.0" - source-map "^0.5.6" - strip-ansi "^6.0.0" - throat "^5.0.0" - ws "^7.5.1" - yargs "^17.6.2" - -metro@0.76.9: +metro@0.76.9, metro@^0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro/-/metro-0.76.9.tgz#605fddf1a54d27762ddba2f636420ae2408862df" integrity sha512-gcjcfs0l5qIPg0lc5P7pj0x7vPJ97tan+OnEjiYLbKjR1D7Oa78CE93YUPyymUPH6q7VzlzMm1UjT35waEkZUw== @@ -11959,10 +11733,10 @@ metro@0.76.9: ws "^7.5.1" yargs "^17.6.2" -metro@0.80.9, metro@^0.80.3: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.80.9.tgz#de3c2011df62036520d51d040d2dde0d015aecb6" - integrity sha512-Bc57Xf3GO2Xe4UWQsBj/oW6YfLPABEu8jfDVDiNmJvoQW4CO34oDPuYKe4KlXzXhcuNsqOtSxpbjCRRVjhhREg== +metro@0.80.10, metro@^0.80.3: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.80.10.tgz#522f1ad7435632f0d9eac67f732083cf45205fbc" + integrity sha512-FDPi0X7wpafmDREXe1lgg3WzETxtXh6Kpq8+IwsG35R2tMyp2kFIqDdshdohuvDt1J/qDARcEPq7V/jElTb1kA== dependencies: "@babel/code-frame" "^7.0.0" "@babel/core" "^7.20.0" @@ -11978,40 +11752,40 @@ metro@0.80.9, metro@^0.80.3: debug "^2.2.0" denodeify "^1.2.1" error-stack-parser "^2.0.6" + flow-enums-runtime "^0.0.6" graceful-fs "^4.2.4" - hermes-parser "0.20.1" + hermes-parser "0.23.0" image-size "^1.0.2" invariant "^2.2.4" jest-worker "^29.6.3" jsc-safe-url "^0.2.2" lodash.throttle "^4.1.1" - metro-babel-transformer "0.80.9" - metro-cache "0.80.9" - metro-cache-key "0.80.9" - metro-config "0.80.9" - metro-core "0.80.9" - metro-file-map "0.80.9" - metro-resolver "0.80.9" - metro-runtime "0.80.9" - metro-source-map "0.80.9" - metro-symbolicate "0.80.9" - metro-transform-plugins "0.80.9" - metro-transform-worker "0.80.9" + metro-babel-transformer "0.80.10" + metro-cache "0.80.10" + metro-cache-key "0.80.10" + metro-config "0.80.10" + metro-core "0.80.10" + metro-file-map "0.80.10" + metro-resolver "0.80.10" + metro-runtime "0.80.10" + metro-source-map "0.80.10" + metro-symbolicate "0.80.10" + metro-transform-plugins "0.80.10" + metro-transform-worker "0.80.10" mime-types "^2.1.27" node-fetch "^2.2.0" nullthrows "^1.1.1" - rimraf "^3.0.2" serialize-error "^2.1.0" source-map "^0.5.6" strip-ansi "^6.0.0" throat "^5.0.0" - ws "^7.5.1" + ws "^7.5.10" yargs "^17.6.2" micromatch@^4.0.0, micromatch@^4.0.4, micromatch@^4.0.5, micromatch@~4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" - integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: braces "^3.0.3" picomatch "^2.3.1" @@ -12075,7 +11849,7 @@ minimatch@3.0.5: dependencies: brace-expansion "^1.1.7" -"minimatch@6 || 7 || 8 || 9", minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: +"minimatch@6 || 7 || 8 || 9", minimatch@^9.0.0, minimatch@^9.0.3, minimatch@^9.0.4: version "9.0.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== @@ -12193,7 +11967,7 @@ minipass-sized@^1.0.3: dependencies: minipass "^3.0.0" -minipass@6.0.2, minipass@^4.2.4, "minipass@^5.0.0 || ^6.0.2", "minipass@^5.0.0 || ^6.0.2 || ^7.0.0": +minipass@6.0.2, minipass@^4.2.4, "minipass@^5.0.0 || ^6.0.2", minipass@^7.1.2: version "6.0.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.2.tgz#542844b6c4ce95b202c0995b0a471f1229de4c81" integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w== @@ -12329,11 +12103,11 @@ neo-async@^2.5.0, neo-async@^2.6.2: integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== "next@>= 13.5.0 < 15.0.0": - version "14.2.5" - resolved "https://registry.yarnpkg.com/next/-/next-14.2.5.tgz#afe4022bb0b752962e2205836587a289270efbea" - integrity sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA== + version "14.2.6" + resolved "https://registry.yarnpkg.com/next/-/next-14.2.6.tgz#2d294fe1ac806231cffd52ae2cf2e469b940536d" + integrity sha512-57Su7RqXs5CBKKKOagt8gPhMM3CpjgbeQhrtei2KLAA1vTNm7jfKS+uDARkSW8ZETUflDCBIsUKGSyQdRs4U4g== dependencies: - "@next/env" "14.2.5" + "@next/env" "14.2.6" "@swc/helpers" "0.5.5" busboy "1.6.0" caniuse-lite "^1.0.30001579" @@ -12341,15 +12115,15 @@ neo-async@^2.5.0, neo-async@^2.6.2: postcss "8.4.31" styled-jsx "5.1.1" optionalDependencies: - "@next/swc-darwin-arm64" "14.2.5" - "@next/swc-darwin-x64" "14.2.5" - "@next/swc-linux-arm64-gnu" "14.2.5" - "@next/swc-linux-arm64-musl" "14.2.5" - "@next/swc-linux-x64-gnu" "14.2.5" - "@next/swc-linux-x64-musl" "14.2.5" - "@next/swc-win32-arm64-msvc" "14.2.5" - "@next/swc-win32-ia32-msvc" "14.2.5" - "@next/swc-win32-x64-msvc" "14.2.5" + "@next/swc-darwin-arm64" "14.2.6" + "@next/swc-darwin-x64" "14.2.6" + "@next/swc-linux-arm64-gnu" "14.2.6" + "@next/swc-linux-arm64-musl" "14.2.6" + "@next/swc-linux-x64-gnu" "14.2.6" + "@next/swc-linux-x64-musl" "14.2.6" + "@next/swc-win32-arm64-msvc" "14.2.6" + "@next/swc-win32-ia32-msvc" "14.2.6" + "@next/swc-win32-x64-msvc" "14.2.6" nice-try@^1.0.4: version "1.0.5" @@ -12362,9 +12136,9 @@ nocache@^3.0.1: integrity sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw== node-abi@^3.3.0: - version "3.65.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.65.0.tgz#ca92d559388e1e9cab1680a18c1a18757cdac9d3" - integrity sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA== + version "3.67.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.67.0.tgz#1d159907f18d18e18809dbbb5df47ed2426a08df" + integrity sha512-bLn/fU/ALVBE9wj+p4Y21ZJWYFjUXLXPi/IewyLZkx3ApxKDNBWCKdReeKOtD8dWpOdDCeMyLh6ZewzcLsG2Nw== dependencies: semver "^7.3.5" @@ -12731,20 +12505,17 @@ ob1@0.73.5: resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.73.5.tgz#b80dc4a6f787044e3d8afde3c2d034ae23d05a86" integrity sha512-MxQH/rCq9/COvgTQbjCldArmesGEidZVVQIn4vDUJvJJ8uMphXOTCBsgWTief2ugvb0WUimIaslKSA+qryFjjQ== -ob1@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.76.7.tgz#95b68fadafd47e7a6a0ad64cf80f3140dd6d1124" - integrity sha512-BQdRtxxoUNfSoZxqeBGOyuT9nEYSn18xZHwGMb0mMVpn2NBcYbnyKY4BK2LIHRgw33CBGlUmE+KMaNvyTpLLtQ== - ob1@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.76.9.tgz#a493e4b83a0fb39200de639804b5d06eed5599dc" integrity sha512-g0I/OLnSxf6OrN3QjSew3bTDJCdbZoWxnh8adh1z36alwCuGF1dgDeRA25bTYSakrG5WULSaWJPOdgnf1O/oQw== -ob1@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.80.9.tgz#4ae3edd807536097674ff943509089f5d4e0649f" - integrity sha512-v9yOxowkZbxWhKOaaTyLjIm1aLy4ebMNcSn4NYJKOAI/Qv+SkfEfszpLr2GIxsccmb2Y2HA9qtsqiIJ80ucpVA== +ob1@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.80.10.tgz#30dc7e4619cf591d46d7e16db5d4aed3e2674172" + integrity sha512-dJHyB0S6JkMorUSfSGcYGkkg9kmq3qDUu3ygZUKIfkr47XOPuG35r2Sk6tbwtHXbdKIXmcMvM8DF2CwgdyaHfQ== + dependencies: + flow-enums-runtime "^0.0.6" object-assign@^4.1.1: version "4.1.1" @@ -13023,6 +12794,11 @@ p-waterfall@2.1.1: dependencies: p-reduce "^2.0.0" +package-json-from-dist@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00" + integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== + pacote@^15.0.0, pacote@^15.0.8, pacote@^15.2.0: version "15.2.0" resolved "https://registry.yarnpkg.com/pacote/-/pacote-15.2.0.tgz#0f0dfcc3e60c7b39121b2ac612bf8596e95344d3" @@ -13172,7 +12948,7 @@ path-platform@~0.11.15: resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" integrity sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg== -path-scurry@1.10.0, path-scurry@^1.10.1, path-scurry@^1.6.1: +path-scurry@1.10.0, path-scurry@^1.11.1, path-scurry@^1.6.1: version "1.10.0" resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.0.tgz#0ffbd4c1f7de9600f98a1405507d9f9acb438ab3" integrity sha512-tZFEaRQbMLjwrsmidsGJ6wDMv0iazJWk6SfIKnY4Xru8auXgmJkOBa5DUbYFcFD2Rzk2+KDlIiF0GVXNCbgC7g== @@ -13278,9 +13054,9 @@ possible-typed-array-names@^1.0.0: integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== postcss-selector-parser@^6.0.10: - version "6.1.1" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz#5be94b277b8955904476a2400260002ce6c56e38" - integrity sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg== + version "6.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" + integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -13422,7 +13198,7 @@ promzard@^1.0.0: dependencies: read "^3.0.1" -prop-types@*, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: +prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -13531,7 +13307,7 @@ react-devtools-core@^4.26.1, react-devtools-core@^4.27.2: shell-quote "^1.6.1" ws "^7" -react-devtools-core@^5.0.0: +react-devtools-core@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-5.3.1.tgz#d57f5b8f74f16e622bd6a7bc270161e4ba162666" integrity sha512-7FSb9meX0btdBQLwdFOwt6bGqvRPabmVMMslv8fgoSPqXyuGpgQe36kx8gR86XPw7aV1yVouTp6fyZ0EH+NfUw== @@ -13638,33 +13414,34 @@ react-native@0.71.0: whatwg-fetch "^3.0.0" ws "^6.2.2" -react-native@0.72.3: - version "0.72.3" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.72.3.tgz#f8d85ec81c9f3592d091ec8e9ac1694956a72765" - integrity sha512-QqISi+JVmCssNP2FlQ4MWhlc4O/I00MRE1/GClvyZ8h/6kdsyk/sOirkYdZqX3+DrJfI3q+OnyMnsyaXIQ/5tQ== +react-native@0.72.15: + version "0.72.15" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.72.15.tgz#9b74b0c39ec42befb70d494b535f863c4229ef55" + integrity sha512-UDxOZwCxhwb0dGuvcB/04uWzhDJ8etqW3fMOq6bv35WwEXMgKXXqZpshhMo64UVWm/m2ZmM32ckn5sf1EIqD9Q== dependencies: "@jest/create-cache-key-function" "^29.2.1" - "@react-native-community/cli" "11.3.5" - "@react-native-community/cli-platform-android" "11.3.5" - "@react-native-community/cli-platform-ios" "11.3.5" + "@react-native-community/cli" "^11.4.1" + "@react-native-community/cli-platform-android" "^11.4.1" + "@react-native-community/cli-platform-ios" "^11.4.1" "@react-native/assets-registry" "^0.72.0" - "@react-native/codegen" "^0.72.6" + "@react-native/codegen" "^0.72.8" "@react-native/gradle-plugin" "^0.72.11" "@react-native/js-polyfills" "^0.72.1" "@react-native/normalize-colors" "^0.72.0" - "@react-native/virtualized-lists" "^0.72.6" + "@react-native/virtualized-lists" "^0.72.8" abort-controller "^3.0.0" anser "^1.4.9" + ansi-regex "^5.0.0" base64-js "^1.1.2" - deprecated-react-native-prop-types "4.1.0" + deprecated-react-native-prop-types "^4.2.3" event-target-shim "^5.0.1" flow-enums-runtime "^0.0.5" invariant "^2.2.4" jest-environment-node "^29.2.1" jsc-android "^250231.0.0" memoize-one "^5.0.0" - metro-runtime "0.76.7" - metro-source-map "0.76.7" + metro-runtime "^0.76.9" + metro-source-map "^0.76.9" mkdirp "^0.5.1" nullthrows "^1.1.1" pretty-format "^26.5.2" @@ -13681,21 +13458,21 @@ react-native@0.72.3: yargs "^17.6.2" react-native@>=0.70: - version "0.74.4" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.74.4.tgz#932901ac635b2f135a5e4e210bc52f3f1153b8d0" - integrity sha512-Cox7h0UkFPY+79DsInn2BAhnmGiqKBHKoYHoPAPW8oQCPyna8jvS0hfUmHBWm/MOHSXi4NYPKd5plpD50B3B2Q== + version "0.75.2" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.75.2.tgz#12d7e3e63c8ab93dcab7a6d4c4c9f4ad199141d4" + integrity sha512-pP+Yswd/EurzAlKizytRrid9LJaPJzuNldc+o5t01md2VLHym8V7FWH2z9omFKtFTer8ERg0fAhG1fpd0Qq6bQ== dependencies: "@jest/create-cache-key-function" "^29.6.3" - "@react-native-community/cli" "13.6.9" - "@react-native-community/cli-platform-android" "13.6.9" - "@react-native-community/cli-platform-ios" "13.6.9" - "@react-native/assets-registry" "0.74.86" - "@react-native/codegen" "0.74.86" - "@react-native/community-cli-plugin" "0.74.86" - "@react-native/gradle-plugin" "0.74.86" - "@react-native/js-polyfills" "0.74.86" - "@react-native/normalize-colors" "0.74.86" - "@react-native/virtualized-lists" "0.74.86" + "@react-native-community/cli" "14.0.0" + "@react-native-community/cli-platform-android" "14.0.0" + "@react-native-community/cli-platform-ios" "14.0.0" + "@react-native/assets-registry" "0.75.2" + "@react-native/codegen" "0.75.2" + "@react-native/community-cli-plugin" "0.75.2" + "@react-native/gradle-plugin" "0.75.2" + "@react-native/js-polyfills" "0.75.2" + "@react-native/normalize-colors" "0.75.2" + "@react-native/virtualized-lists" "0.75.2" abort-controller "^3.0.0" anser "^1.4.9" ansi-regex "^5.0.0" @@ -13703,6 +13480,7 @@ react-native@>=0.70: chalk "^4.0.0" event-target-shim "^5.0.1" flow-enums-runtime "^0.0.6" + glob "^7.1.1" invariant "^2.2.4" jest-environment-node "^29.6.3" jsc-android "^250231.0.0" @@ -13713,11 +13491,11 @@ react-native@>=0.70: nullthrows "^1.1.1" pretty-format "^26.5.2" promise "^8.3.0" - react-devtools-core "^5.0.0" + react-devtools-core "^5.3.1" react-refresh "^0.14.0" - react-shallow-renderer "^16.15.0" regenerator-runtime "^0.13.2" scheduler "0.24.0-canary-efb381bbf-20230505" + semver "^7.1.3" stacktrace-parser "^0.1.10" whatwg-fetch "^3.0.0" ws "^6.2.2" @@ -14095,28 +13873,28 @@ rimraf@~2.6.2: glob "^7.1.3" rollup@^4.9.6: - version "4.19.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.19.2.tgz#4985cd2028965157e8d674a70e49f33aca9038eb" - integrity sha512-6/jgnN1svF9PjNYJ4ya3l+cqutg49vOZ4rVgsDKxdl+5gpGPnByFXWGyfH9YGx9i3nfBwSu1Iyu6vGwFFA0BdQ== + version "4.21.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.21.1.tgz#65b9b9e9de9a64604fab083fb127f3e9eac2935d" + integrity sha512-ZnYyKvscThhgd3M5+Qt3pmhO4jIRR5RGzaSovB6Q7rGNrK5cUncrtLmcTTJVSdcKXyZjW8X8MB0JMSuH9bcAJg== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.19.2" - "@rollup/rollup-android-arm64" "4.19.2" - "@rollup/rollup-darwin-arm64" "4.19.2" - "@rollup/rollup-darwin-x64" "4.19.2" - "@rollup/rollup-linux-arm-gnueabihf" "4.19.2" - "@rollup/rollup-linux-arm-musleabihf" "4.19.2" - "@rollup/rollup-linux-arm64-gnu" "4.19.2" - "@rollup/rollup-linux-arm64-musl" "4.19.2" - "@rollup/rollup-linux-powerpc64le-gnu" "4.19.2" - "@rollup/rollup-linux-riscv64-gnu" "4.19.2" - "@rollup/rollup-linux-s390x-gnu" "4.19.2" - "@rollup/rollup-linux-x64-gnu" "4.19.2" - "@rollup/rollup-linux-x64-musl" "4.19.2" - "@rollup/rollup-win32-arm64-msvc" "4.19.2" - "@rollup/rollup-win32-ia32-msvc" "4.19.2" - "@rollup/rollup-win32-x64-msvc" "4.19.2" + "@rollup/rollup-android-arm-eabi" "4.21.1" + "@rollup/rollup-android-arm64" "4.21.1" + "@rollup/rollup-darwin-arm64" "4.21.1" + "@rollup/rollup-darwin-x64" "4.21.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.21.1" + "@rollup/rollup-linux-arm-musleabihf" "4.21.1" + "@rollup/rollup-linux-arm64-gnu" "4.21.1" + "@rollup/rollup-linux-arm64-musl" "4.21.1" + "@rollup/rollup-linux-powerpc64le-gnu" "4.21.1" + "@rollup/rollup-linux-riscv64-gnu" "4.21.1" + "@rollup/rollup-linux-s390x-gnu" "4.21.1" + "@rollup/rollup-linux-x64-gnu" "4.21.1" + "@rollup/rollup-linux-x64-musl" "4.21.1" + "@rollup/rollup-win32-arm64-msvc" "4.21.1" + "@rollup/rollup-win32-ia32-msvc" "4.21.1" + "@rollup/rollup-win32-x64-msvc" "4.21.1" fsevents "~2.3.2" run-async@^2.4.0: @@ -14273,7 +14051,7 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.3: +semver@^7.0.0, semver@^7.1.1, semver@^7.1.3, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.3: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -14626,9 +14404,9 @@ spdx-expression-parse@^4.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.18" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz#22aa922dcf2f2885a6494a261f2d8b75345d0326" - integrity sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ== + version "3.0.20" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz#e44ed19ed318dd1e5888f93325cee800f0f51b89" + integrity sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw== split2@^3.2.2: version "3.2.2" @@ -14739,16 +14517,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -14826,7 +14595,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -14840,13 +14609,6 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -15047,9 +14809,9 @@ terser-webpack-plugin@^5.3.10, terser-webpack-plugin@^5.3.6: terser "^5.26.0" terser@^5.15.0, terser@^5.26.0: - version "5.31.3" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.3.tgz#b24b7beb46062f4653f049eea4f0cd165d0f0c38" - integrity sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA== + version "5.31.6" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.6.tgz#c63858a0f0703988d0266a82fcbf2d7ba76422b1" + integrity sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -15182,19 +14944,19 @@ ts-api-utils@^1.0.1: integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== ts-jest@^29.1.1: - version "29.2.4" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.2.4.tgz#38ccf487407d7a63054a72689f6f99b075e296e5" - integrity sha512-3d6tgDyhCI29HlpwIq87sNuI+3Q6GLTTCeYRHCs7vDz+/3GCMwEtV9jezLyl4ZtnBgx00I7hm8PCP8cTksMGrw== + version "29.2.5" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.2.5.tgz#591a3c108e1f5ebd013d3152142cb5472b399d63" + integrity sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA== dependencies: - bs-logger "0.x" + bs-logger "^0.2.6" ejs "^3.1.10" - fast-json-stable-stringify "2.x" + fast-json-stable-stringify "^2.1.0" jest-util "^29.0.0" json5 "^2.2.3" - lodash.memoize "4.x" - make-error "1.x" - semver "^7.5.3" - yargs-parser "^21.0.1" + lodash.memoize "^4.1.2" + make-error "^1.3.6" + semver "^7.6.3" + yargs-parser "^21.1.1" ts-loader@^9.4.3: version "9.5.1" @@ -15227,9 +14989,9 @@ tsconfig-paths@^4.1.2: strip-bom "^3.0.0" "tslib@1 || 2", tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" - integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + version "2.7.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" + integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== tslib@^1.11.1, tslib@^1.8.1: version "1.14.1" @@ -15459,9 +15221,9 @@ uglify-es@^3.1.9: source-map "~0.6.1" uglify-js@^3.1.4: - version "3.19.1" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.1.tgz#2d5df6a0872c43da43187968308d7741d44b8056" - integrity sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A== + version "3.19.2" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.2.tgz#319ae26a5fbd18d03c7dc02496cfa1d6f1cd4307" + integrity sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ== ulid@^2.3.0: version "2.3.0" @@ -15483,10 +15245,10 @@ undici-types@~5.26.4: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -undici-types@~6.11.1: - version "6.11.1" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.11.1.tgz#432ea6e8efd54a48569705a699e62d8f4981b197" - integrity sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ== +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" @@ -15744,9 +15506,9 @@ warning@^4.0.2, warning@^4.0.3: loose-envify "^1.0.0" watchpack@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.1.tgz#29308f2cac150fa8e4c92f90e0ec954a9fed7fff" - integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== + version "2.4.2" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" + integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" @@ -15835,11 +15597,10 @@ webpack-sources@^3.2.3: integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@^5, webpack@^5.75.0, webpack@^5.88.0: - version "5.93.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.93.0.tgz#2e89ec7035579bdfba9760d26c63ac5c3462a5e5" - integrity sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA== + version "5.94.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.94.0.tgz#77a6089c716e7ab90c1c67574a28da518a20970f" + integrity sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg== dependencies: - "@types/eslint-scope" "^3.7.3" "@types/estree" "^1.0.5" "@webassemblyjs/ast" "^1.12.1" "@webassemblyjs/wasm-edit" "^1.12.1" @@ -15848,7 +15609,7 @@ webpack@^5, webpack@^5.75.0, webpack@^5.88.0: acorn-import-attributes "^1.9.5" browserslist "^4.21.10" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.0" + enhanced-resolve "^5.17.1" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" @@ -15985,7 +15746,7 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -16012,15 +15773,6 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" @@ -16090,14 +15842,14 @@ write-pkg@4.0.0: type-fest "^0.4.1" write-json-file "^3.2.0" -ws@^6.2.2: +ws@^6.2.2, ws@^6.2.3: version "6.2.3" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.3.tgz#ccc96e4add5fd6fedbc491903075c85c5a11d9ee" integrity sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA== dependencies: async-limiter "~1.0.0" -ws@^7, ws@^7.3.1, ws@^7.5.1: +ws@^7, ws@^7.3.1, ws@^7.5.1, ws@^7.5.10: version "7.5.10" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== @@ -16173,22 +15925,17 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^2.2.1: +yaml@^2.2.1, yaml@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.0.tgz#c6165a721cf8000e91c36490a41d7be25176cf5d" integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== -yaml@~2.4.2: - version "2.4.5" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e" - integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== - yargs-parser@20.2.4: version "20.2.4" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -yargs-parser@21.1.1, yargs-parser@^21.0.1, yargs-parser@^21.1.1: +yargs-parser@21.1.1, yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==