diff options
29 files changed, 1604 insertions, 238 deletions
diff --git a/.env.example b/.env.example index d4db46ab9..5cf8e07b1 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,6 @@ +# Copy this to `.env` and `.env.test` files + SENTRY_AUTH_TOKEN= +EXPO_PUBLIC_ENV=development EXPO_PUBLIC_LOG_LEVEL=debug EXPO_PUBLIC_LOG_DEBUG= diff --git a/__e2e__/tests/composer.test.ts b/__e2e__/tests/composer.test.ts index 6251ad0c8..34f8ae39e 100644 --- a/__e2e__/tests/composer.test.ts +++ b/__e2e__/tests/composer.test.ts @@ -1,5 +1,7 @@ /* eslint-env detox/detox */ +import {describe, beforeAll, it} from '@jest/globals' +import {expect} from 'detox' import {openApp, loginAsAlice, createServer, sleep} from '../util' describe('Composer', () => { @@ -45,6 +47,8 @@ describe('Composer', () => { }) it('Reply text only', async () => { + await element(by.id('e2eRefreshHome')).tap() + const post = by.id('feedItem-by-alice.test') await element(by.id('replyBtn').withAncestor(post)).atIndex(0).tap() await element(by.id('composerTextInput')).typeText('Reply text only') diff --git a/__e2e__/tests/create-account.test.ts b/__e2e__/tests/create-account.test.ts index 283eda341..eab3e538b 100644 --- a/__e2e__/tests/create-account.test.ts +++ b/__e2e__/tests/create-account.test.ts @@ -1,5 +1,7 @@ /* eslint-env detox/detox */ +import {describe, beforeAll, it} from '@jest/globals' +import {expect} from 'detox' import {openApp, createServer} from '../util' describe('Create account', () => { @@ -10,6 +12,8 @@ describe('Create account', () => { }) it('I can create a new account', async () => { + await element(by.id('e2eOpenLoggedOutView')).tap() + await element(by.id('createAccountButton')).tap() await device.takeScreenshot('1- opened create account screen') await element(by.id('otherServerBtn')).tap() @@ -17,14 +21,20 @@ describe('Create account', () => { await element(by.id('customServerInput')).clearText() await element(by.id('customServerInput')).typeText(service) await device.takeScreenshot('3- input test server URL') + await element(by.id('nextBtn')).tap() + await element(by.id('emailInput')).typeText('example@test.com') await element(by.id('passwordInput')).typeText('hunter2') await device.takeScreenshot('4- entered account details') + await element(by.id('nextBtn')).tap() + await element(by.id('handleInput')).typeText('e2e-test') await device.takeScreenshot('4- entered handle') + await element(by.id('nextBtn')).tap() + await expect(element(by.id('welcomeOnboarding'))).toBeVisible() await element(by.id('continueBtn')).tap() await expect(element(by.id('recommendedFeedsOnboarding'))).toBeVisible() diff --git a/__e2e__/tests/curate-lists.test.ts b/__e2e__/tests/curate-lists.test.ts index b7c6c25c8..f188b154b 100644 --- a/__e2e__/tests/curate-lists.test.ts +++ b/__e2e__/tests/curate-lists.test.ts @@ -1,5 +1,7 @@ /* eslint-env detox/detox */ +import {describe, beforeAll, it} from '@jest/globals' +import {expect} from 'detox' import {openApp, loginAsAlice, loginAsBob, createServer, sleep} from '../util' describe('Curate lists', () => { @@ -11,7 +13,6 @@ describe('Curate lists', () => { }) it('Login and create a curatelists', async () => { - await expect(element(by.id('signInButton'))).toBeVisible() await loginAsAlice() await element(by.id('e2eGotoLists')).tap() await element(by.id('newUserListBtn')).tap() @@ -27,7 +28,7 @@ describe('Curate lists', () => { it('Edit display name and description via the edit curatelist modal', async () => { await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Edit List Details')).tap() + await element(by.text('Edit list details')).tap() await expect(element(by.id('createOrEditListModal'))).toBeVisible() await element(by.id('editNameInput')).clearText() await element(by.id('editNameInput')).typeText('Bad Ppl') @@ -45,7 +46,7 @@ describe('Curate lists', () => { it('Remove description via the edit curatelist modal', async () => { await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Edit List Details')).tap() + await element(by.text('Edit list details')).tap() await expect(element(by.id('createOrEditListModal'))).toBeVisible() await element(by.id('editDescriptionInput')).clearText() await element(by.id('saveBtn')).tap() @@ -60,7 +61,7 @@ describe('Curate lists', () => { it('Set avi via the edit curatelist modal', async () => { await expect(element(by.id('userAvatarFallback'))).toExist() await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Edit List Details')).tap() + await element(by.text('Edit list details')).tap() await expect(element(by.id('createOrEditListModal'))).toBeVisible() await element(by.id('changeAvatarBtn')).tap() await element(by.text('Library')).tap() @@ -77,7 +78,7 @@ describe('Curate lists', () => { it('Remove avi via the edit curatelist modal', async () => { await expect(element(by.id('userAvatarImage'))).toExist() await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Edit List Details')).tap() + await element(by.text('Edit list details')).tap() await expect(element(by.id('createOrEditListModal'))).toBeVisible() await element(by.id('changeAvatarBtn')).tap() await element(by.text('Remove')).tap() @@ -98,6 +99,7 @@ describe('Curate lists', () => { }) it('Create a new curatelist', async () => { + await element(by.id('e2eGotoLists')).tap() await element(by.id('newUserListBtn')).tap() await expect(element(by.id('createOrEditListModal'))).toBeVisible() await element(by.id('editNameInput')).typeText('Good Ppl') @@ -128,6 +130,7 @@ describe('Curate lists', () => { }) it('Pins the list', async () => { + await expect(element(by.id('pinBtn'))).toBeVisible() await element(by.id('pinBtn')).tap() await element(by.id('e2eGotoHome')).tap() await element(by.id('homeScreenFeedTabs-Good Ppl')).tap() @@ -152,15 +155,15 @@ describe('Curate lists', () => { await expect(element(by.id('user-bob.test'))).toBeVisible() await element(by.id('user-bob.test-editBtn')).tap() await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible() - await element(by.id('toggleBtn-Good Ppl')).tap() - await element(by.id('saveBtn')).tap() + await element(by.id('user-bob.test-addBtn')).tap() + await element(by.id('doneBtn')).tap() await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible() }) it('Shows the curatelist on my profile', async () => { await element(by.id('bottomBarProfileBtn')).tap() - await element(by.id('selector')).swipe('left') - await element(by.id('selector-4')).tap() + await element(by.id('profilePager-selector')).swipe('left') + await element(by.id('profilePager-selector-5')).tap() await element(by.id('list-Good Ppl')).tap() }) @@ -173,15 +176,15 @@ describe('Curate lists', () => { await element(by.id('profileHeaderDropdownBtn')).tap() await element(by.text('Add to Lists')).tap() await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible() - await element(by.id('toggleBtn-Good Ppl')).tap() - await element(by.id('saveBtn')).tap() + await element(by.id('user-bob.test-addBtn')).tap() + await element(by.id('doneBtn')).tap() await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible() await element(by.id('profileHeaderDropdownBtn')).tap() await element(by.text('Add to Lists')).tap() await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible() - await element(by.id('toggleBtn-Good Ppl')).tap() - await element(by.id('saveBtn')).tap() + await element(by.id('user-bob.test-addBtn')).tap() + await element(by.id('doneBtn')).tap() await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible() }) @@ -192,8 +195,8 @@ describe('Curate lists', () => { await element(by.id('bottomBarSearchBtn')).tap() await element(by.id('searchTextInput')).typeText('alice') await element(by.id('searchAutoCompleteResult-alice.test')).tap() - await element(by.id('selector')).swipe('left') - await element(by.id('selector-3')).tap() + await element(by.id('profilePager-selector')).swipe('left') + await element(by.id('profilePager-selector-3')).tap() await element(by.id('list-Good Ppl')).tap() await element(by.id('headerDropdownBtn')).tap() await element(by.text('Report List')).tap() diff --git a/__e2e__/tests/home-screen.test.ts b/__e2e__/tests/home-screen.test.ts index b6cd19195..79fca1e6a 100644 --- a/__e2e__/tests/home-screen.test.ts +++ b/__e2e__/tests/home-screen.test.ts @@ -1,5 +1,7 @@ /* eslint-env detox/detox */ +import {describe, beforeAll, it} from '@jest/globals' +import {expect} from 'detox' import {openApp, loginAsAlice, createServer} from '../util' describe('Home screen', () => { diff --git a/__e2e__/tests/invite-codes.test.ts b/__e2e__/tests/invite-codes.test.ts index 124c1af90..7db7c595a 100644 --- a/__e2e__/tests/invite-codes.test.ts +++ b/__e2e__/tests/invite-codes.test.ts @@ -5,6 +5,8 @@ * with the side drawer. */ +import {describe, beforeAll, it} from '@jest/globals' +import {expect} from 'detox' import {openApp, loginAsAlice, createServer} from '../util' describe('invite-codes', () => { @@ -16,7 +18,6 @@ describe('invite-codes', () => { }) it('I can fetch invite codes', async () => { - await expect(element(by.id('signInButton'))).toBeVisible() await loginAsAlice() await element(by.id('e2eOpenInviteCodesModal')).tap() await expect(element(by.id('inviteCodesModal'))).toBeVisible() @@ -27,6 +28,7 @@ describe('invite-codes', () => { }) it('I can create a new account with the invite code', async () => { + await element(by.id('e2eOpenLoggedOutView')).tap() await element(by.id('createAccountButton')).tap() await device.takeScreenshot('1- opened create account screen') await element(by.id('otherServerBtn')).tap() @@ -51,19 +53,4 @@ describe('invite-codes', () => { await element(by.id('continueBtn')).tap() await expect(element(by.id('homeScreen'))).toBeVisible() }) - - it('I get a notification for the new user', async () => { - await element(by.id('e2eSignOut')).tap() - await loginAsAlice() - await waitFor(element(by.id('homeScreen'))) - .toBeVisible() - .withTimeout(5000) - await element(by.id('bottomBarNotificationsBtn')).tap() - await expect(element(by.id('invitedUser'))).toBeVisible() - }) - - it('I can dismiss the new user notification', async () => { - await element(by.id('dismissBtn')).tap() - await expect(element(by.id('invitedUser'))).not.toBeVisible() - }) }) diff --git a/__e2e__/tests/login.test.ts b/__e2e__/tests/login.test.ts index 788016db6..b4cedef6c 100644 --- a/__e2e__/tests/login.test.ts +++ b/__e2e__/tests/login.test.ts @@ -1,5 +1,7 @@ /* eslint-env detox/detox */ +import {describe, beforeAll, it} from '@jest/globals' +import {expect} from 'detox' import {openApp, login, createServer} from '../util' describe('Login', () => { @@ -10,6 +12,8 @@ describe('Login', () => { }) it('As Alice, I can login', async () => { + await element(by.id('e2eOpenLoggedOutView')).tap() + await expect(element(by.id('signInButton'))).toBeVisible() await login(service, 'alice', 'hunter2', { takeScreenshots: true, diff --git a/__e2e__/tests/merge-feed.test.ts b/__e2e__/tests/merge-feed.test.skip.ts index 903e34328..4a8b3cbce 100644 --- a/__e2e__/tests/merge-feed.test.ts +++ b/__e2e__/tests/merge-feed.test.skip.ts @@ -1,5 +1,7 @@ /* eslint-env detox/detox */ +import {describe, beforeAll, it} from '@jest/globals' +import {expect} from 'detox' import {openApp, loginAsAlice, createServer} from '../util' describe('Mergefeed', () => { @@ -9,8 +11,12 @@ describe('Mergefeed', () => { }) it('Login', async () => { + await element(by.id('e2eOpenLoggedOutView')).tap() await loginAsAlice() await element(by.id('e2eToggleMergefeed')).tap() + await element(by.id('bottomBarFeedsBtn')).tap() + await element(by.id('feed-alice-favs-toggleSave')).tap() + await element(by.id('e2eGotoHome')).tap() }) it('Sees the expected mix of posts with default filters', async () => { diff --git a/__e2e__/tests/mod-lists.test.ts b/__e2e__/tests/mod-lists.test.ts index 2b33aaed8..5280920b4 100644 --- a/__e2e__/tests/mod-lists.test.ts +++ b/__e2e__/tests/mod-lists.test.ts @@ -1,5 +1,7 @@ /* eslint-env detox/detox */ +import {describe, beforeAll, it} from '@jest/globals' +import {expect} from 'detox' import {openApp, loginAsAlice, loginAsBob, createServer, sleep} from '../util' describe('Mod lists', () => { @@ -11,7 +13,6 @@ describe('Mod lists', () => { }) it('Login and view my modlists', async () => { - await expect(element(by.id('signInButton'))).toBeVisible() await loginAsAlice() await element(by.id('e2eGotoModeration')).tap() await element(by.id('moderationlistsBtn')).tap() @@ -31,7 +32,7 @@ describe('Mod lists', () => { it('Edit display name and description via the edit modlist modal', async () => { await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Edit List Details')).tap() + await element(by.text('Edit list details')).tap() await expect(element(by.id('createOrEditListModal'))).toBeVisible() await element(by.id('editNameInput')).clearText() await element(by.id('editNameInput')).typeText('Bad Ppl') @@ -49,7 +50,7 @@ describe('Mod lists', () => { it('Remove description via the edit modlist modal', async () => { await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Edit List Details')).tap() + await element(by.text('Edit list details')).tap() await expect(element(by.id('createOrEditListModal'))).toBeVisible() await element(by.id('editDescriptionInput')).clearText() await element(by.id('saveBtn')).tap() @@ -64,7 +65,7 @@ describe('Mod lists', () => { it('Set avi via the edit modlist modal', async () => { await expect(element(by.id('userAvatarFallback'))).toExist() await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Edit List Details')).tap() + await element(by.text('Edit list details')).tap() await expect(element(by.id('createOrEditListModal'))).toBeVisible() await element(by.id('changeAvatarBtn')).tap() await element(by.text('Library')).tap() @@ -81,7 +82,7 @@ describe('Mod lists', () => { it('Remove avi via the edit modlist modal', async () => { await expect(element(by.id('userAvatarImage'))).toExist() await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Edit List Details')).tap() + await element(by.text('Edit list details')).tap() await expect(element(by.id('createOrEditListModal'))).toBeVisible() await element(by.id('changeAvatarBtn')).tap() await element(by.text('Remove')).tap() @@ -131,15 +132,15 @@ describe('Mod lists', () => { await expect(element(by.id('user-warn-posts.test'))).toBeVisible() await element(by.id('user-warn-posts.test-editBtn')).tap() await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible() - await element(by.id('toggleBtn-Bad Ppl')).tap() - await element(by.id('saveBtn')).tap() + await element(by.id('user-warn-posts.test-addBtn')).tap() + await element(by.id('doneBtn')).tap() await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible() }) it('Shows the modlist on my profile', async () => { await element(by.id('bottomBarProfileBtn')).tap() - await element(by.id('selector')).swipe('left') - await element(by.id('selector-4')).tap() + await element(by.id('profilePager-selector')).swipe('left') + await element(by.id('profilePager-selector-5')).tap() await element(by.id('list-Bad Ppl')).tap() }) @@ -152,15 +153,15 @@ describe('Mod lists', () => { await element(by.id('profileHeaderDropdownBtn')).tap() await element(by.text('Add to Lists')).tap() await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible() - await element(by.id('toggleBtn-Bad Ppl')).tap() - await element(by.id('saveBtn')).tap() + await element(by.id('user-bob.test-addBtn')).tap() + await element(by.id('doneBtn')).tap() await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible() await element(by.id('profileHeaderDropdownBtn')).tap() await element(by.text('Add to Lists')).tap() await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible() - await element(by.id('toggleBtn-Bad Ppl')).tap() - await element(by.id('saveBtn')).tap() + await element(by.id('user-bob.test-addBtn')).tap() + await element(by.id('doneBtn')).tap() await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible() }) @@ -171,8 +172,8 @@ describe('Mod lists', () => { await element(by.id('bottomBarSearchBtn')).tap() await element(by.id('searchTextInput')).typeText('alice') await element(by.id('searchAutoCompleteResult-alice.test')).tap() - await element(by.id('selector')).swipe('left') - await element(by.id('selector-3')).tap() + await element(by.id('profilePager-selector')).swipe('left') + await element(by.id('profilePager-selector-3')).tap() await element(by.id('list-Bad Ppl')).tap() await element(by.id('headerDropdownBtn')).tap() await element(by.text('Report List')).tap() diff --git a/__e2e__/tests/profile-screen.test.ts b/__e2e__/tests/profile-screen.test.ts index 82722f381..b4624e456 100644 --- a/__e2e__/tests/profile-screen.test.ts +++ b/__e2e__/tests/profile-screen.test.ts @@ -1,5 +1,7 @@ /* eslint-env detox/detox */ +import {describe, beforeAll, it} from '@jest/globals' +import {expect} from 'detox' import {openApp, loginAsAlice, createServer, sleep} from '../util' describe('Profile screen', () => { @@ -11,17 +13,16 @@ describe('Profile screen', () => { }) it('Login and navigate to my profile', async () => { - await expect(element(by.id('signInButton'))).toBeVisible() await loginAsAlice() await element(by.id('bottomBarProfileBtn')).tap() }) it('Can see feeds', async () => { - await element(by.id('selector')).swipe('left') - await element(by.id('selector-4')).tap() + await element(by.id('profilePager-selector')).swipe('left') + await element(by.id('profilePager-selector-4')).tap() await expect(element(by.id('feed-alice-favs'))).toBeVisible() - await element(by.id('selector')).swipe('right') - await element(by.id('selector-0')).tap() + await element(by.id('profilePager-selector')).swipe('right') + await element(by.id('profilePager-selector-0')).tap() }) it('Open and close edit profile modal', async () => { @@ -135,6 +136,14 @@ describe('Profile screen', () => { }) it('Can like posts', async () => { + await element(by.id('postsFeed-flatlist')).swipe( + 'down', + 'slow', + 1, + 0.5, + 0.5, + ) + const posts = by.id('feedItem-by-bob.test') await expect( element(by.id('likeCount').withAncestor(posts)).atIndex(0), diff --git a/__e2e__/tests/search-screen.test.ts b/__e2e__/tests/search-screen.test.ts index 8b3f55b3d..1dbb3cbfa 100644 --- a/__e2e__/tests/search-screen.test.ts +++ b/__e2e__/tests/search-screen.test.ts @@ -1,5 +1,7 @@ /* eslint-env detox/detox */ +import {describe, beforeAll, it} from '@jest/globals' +import {expect} from 'detox' import {openApp, loginAsAlice, createServer} from '../util' describe('Search screen', () => { diff --git a/__e2e__/tests/self-labeling.test.ts b/__e2e__/tests/self-labeling.test.ts index 68678688d..f629f91a8 100644 --- a/__e2e__/tests/self-labeling.test.ts +++ b/__e2e__/tests/self-labeling.test.ts @@ -1,5 +1,7 @@ /* eslint-env detox/detox */ +import {describe, beforeAll, it} from '@jest/globals' +import {expect} from 'detox' import {openApp, loginAsAlice, createServer, sleep} from '../util' describe('Self-labeling', () => { diff --git a/__e2e__/tests/thread-muting.test.ts b/__e2e__/tests/thread-muting.test.ts index 3b2dc1221..ae62f93dc 100644 --- a/__e2e__/tests/thread-muting.test.ts +++ b/__e2e__/tests/thread-muting.test.ts @@ -1,5 +1,7 @@ /* eslint-env detox/detox */ +import {describe, beforeAll, it} from '@jest/globals' +import {expect} from 'detox' import {openApp, loginAsAlice, loginAsBob, createServer} from '../util' describe('Thread muting', () => { @@ -48,7 +50,7 @@ describe('Thread muting', () => { await loginAsBob() await element(by.id('bottomBarProfileBtn')).tap() - await element(by.id('selector-1')).tap() + await element(by.id('profilePager-selector-1')).tap() const bobPosts = by.id('feedItem-by-bob.test') await element(by.id('replyBtn').withAncestor(bobPosts)).atIndex(0).tap() await element(by.id('composerTextInput')).typeText('Reply 2') diff --git a/__e2e__/tests/thread-screen.test.ts b/__e2e__/tests/thread-screen.test.ts index 02831d055..e3cff12c9 100644 --- a/__e2e__/tests/thread-screen.test.ts +++ b/__e2e__/tests/thread-screen.test.ts @@ -1,5 +1,7 @@ /* eslint-env detox/detox */ +import {describe, beforeAll, it} from '@jest/globals' +import {expect} from 'detox' import {openApp, loginAsAlice, createServer} from '../util' describe('Thread screen', () => { @@ -31,15 +33,15 @@ describe('Thread screen', () => { it('Can like the root post', async () => { const post = by.id('postThreadItem-by-bob.test') await expect( - element(by.id('likeCount').withAncestor(post)).atIndex(0), + element(by.id('likeCount-expanded').withAncestor(post)).atIndex(0), ).not.toExist() await element(by.id('likeBtn').withAncestor(post)).atIndex(0).tap() await expect( - element(by.id('likeCount').withAncestor(post)).atIndex(0), + element(by.id('likeCount-expanded').withAncestor(post)).atIndex(0), ).toHaveText('1 like') await element(by.id('likeBtn').withAncestor(post)).atIndex(0).tap() await expect( - element(by.id('likeCount').withAncestor(post)).atIndex(0), + element(by.id('likeCount-expanded').withAncestor(post)).atIndex(0), ).not.toExist() }) @@ -61,21 +63,21 @@ describe('Thread screen', () => { it('Can repost the root post', async () => { const post = by.id('postThreadItem-by-bob.test') await expect( - element(by.id('repostCount').withAncestor(post)).atIndex(0), + element(by.id('repostCount-expanded').withAncestor(post)).atIndex(0), ).not.toExist() await element(by.id('repostBtn').withAncestor(post)).atIndex(0).tap() await expect(element(by.id('repostModal'))).toBeVisible() await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap() await expect(element(by.id('repostModal'))).not.toBeVisible() await expect( - element(by.id('repostCount').withAncestor(post)).atIndex(0), + element(by.id('repostCount-expanded').withAncestor(post)).atIndex(0), ).toHaveText('1 repost') await element(by.id('repostBtn').withAncestor(post)).atIndex(0).tap() await expect(element(by.id('repostModal'))).toBeVisible() await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap() await expect(element(by.id('repostModal'))).not.toBeVisible() await expect( - element(by.id('repostCount').withAncestor(post)).atIndex(0), + element(by.id('repostCount-expanded').withAncestor(post)).atIndex(0), ).not.toExist() }) diff --git a/docs/testing.md b/docs/testing.md index 123c58ebc..e9b9445e0 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -1,5 +1,8 @@ # Testing instructions +Make sure you've copied `.env.example` to `.env.test` and provided any required +values. + ### Using Maestro E2E tests 1. Install Maestro by following [these instructions](https://maestro.mobile.dev/getting-started/installing-maestro). This will help us run the E2E tests. 2. You can write Maestro tests in `__e2e__/maestro` directory by creating a new `.yaml` file or by modifying an existing one. @@ -11,4 +14,4 @@ 2. Install Flashlight by following [these instructions](https://docs.flashlight.dev/) 3. The simplest way to get started is by running `yarn perf:measure` which will run a live preview of the performance test results. You can [see a demo here](https://github.com/bamlab/flashlight/assets/4534323/4038a342-f145-4c3b-8cde-17949bf52612) 4. The `yarn perf:test:measure` will run the `scroll.yaml` test located in `__e2e__/maestro/scroll.yaml` and give the results in `.perf/results.json` which can be viewed by running `yarn:perf:results` -5. You can also run your own tests by running `yarn perf:test <path_to_test>` where `<path_to_test>` is the path to your test file. For example, `yarn perf:test __e2e__/maestro/scroll.yaml` will run the `scroll.yaml` test located in `__e2e__/maestro/scroll.yaml`. \ No newline at end of file +5. You can also run your own tests by running `yarn perf:test <path_to_test>` where `<path_to_test>` is the path to your test file. For example, `yarn perf:test __e2e__/maestro/scroll.yaml` will run the `scroll.yaml` test located in `__e2e__/maestro/scroll.yaml`. diff --git a/index.js b/index.js index 4fc95bd17..7630d0538 100644 --- a/index.js +++ b/index.js @@ -1,15 +1,21 @@ import 'react-native-gesture-handler' // must be first - import {LogBox} from 'react-native' -LogBox.ignoreLogs(['Require cycle:']) // suppress require-cycle warnings, it's fine import '#/platform/polyfills' +import {IS_TEST} from '#/env' import {registerRootComponent} from 'expo' import {doPolyfill} from '#/lib/api/api-polyfill' -doPolyfill() import App from '#/App' +doPolyfill() + +if (IS_TEST) { + LogBox.ignoreAllLogs() // suppress all logs in tests +} else { + LogBox.ignoreLogs(['Require cycle:']) // suppress require-cycle warnings, it's fine +} + // registerRootComponent calls AppRegistry.registerComponent('main', () => App); // It also ensures that whether you load the app in Expo Go or in a native build, // the environment is set up appropriately diff --git a/jest/test-pds.ts b/jest/test-pds.ts index bc3692600..a0cb04a16 100644 --- a/jest/test-pds.ts +++ b/jest/test-pds.ts @@ -59,17 +59,21 @@ export async function createServer( ): Promise<TestPDS> { const port = await getPort() const port2 = await getPort(port + 1) + const port3 = await getPort(port2 + 1) const pdsUrl = `http://localhost:${port}` const id = ids.next() + const testNet = await TestNetwork.create({ pds: { port, - publicUrl: pdsUrl, - inviteRequired, + hostname: 'localhost', dbPostgresSchema: `pds_${id}`, + inviteRequired, }, bsky: { dbPostgresSchema: `bsky_${id}`, + port: port3, + publicUrl: 'http://localhost:2584', }, plc: {port: port2}, }) diff --git a/package.json b/package.json index 7a6efcd05..fdca3e89b 100644 --- a/package.json +++ b/package.json @@ -21,9 +21,9 @@ "lint": "eslint ./src --ext .js,.jsx,.ts,.tsx", "typecheck": "tsc --project ./tsconfig.check.json", "e2e:mock-server": "./jest/dev-infra/with-test-redis-and-db.sh ts-node __e2e__/mock-server.ts", - "e2e:metro": "RN_SRC_EXT=e2e.ts,e2e.tsx expo run:ios", - "e2e:build": "detox build -c ios.sim.debug", - "e2e:run": "detox test --configuration ios.sim.debug --take-screenshots all", + "e2e:metro": "NODE_ENV=test RN_SRC_EXT=e2e.ts,e2e.tsx expo run:ios", + "e2e:build": "NODE_ENV=test detox build -c ios.sim.debug", + "e2e:run": "NODE_ENV=test detox test --configuration ios.sim.debug --take-screenshots all", "perf:test": "NODE_ENV=test maestro test", "perf:test:run": "NODE_ENV=test maestro test __e2e__/maestro/scroll.yaml", "perf:test:measure": "NODE_ENV=test flashlight test --bundleId xyz.blueskyweb.app --testCommand 'yarn perf:test' --duration 150000 --resultsFilePath .perf/results.json", @@ -168,7 +168,7 @@ "zod": "^3.20.2" }, "devDependencies": { - "@atproto/dev-env": "^0.2.5", + "@atproto/dev-env": "^0.2.16", "@babel/core": "^7.23.2", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", diff --git a/src/env.ts b/src/env.ts index 7b255e7ea..fbcc15f57 100644 --- a/src/env.ts +++ b/src/env.ts @@ -1,4 +1,4 @@ -export const IS_TEST = process.env.NODE_ENV === 'test' +export const IS_TEST = process.env.EXPO_PUBLIC_ENV === 'test' export const IS_DEV = __DEV__ export const IS_PROD = !IS_DEV export const LOG_DEBUG = process.env.EXPO_PUBLIC_LOG_DEBUG || '' diff --git a/src/state/modals/index.tsx b/src/state/modals/index.tsx index 84fea3bad..94d6d9ec5 100644 --- a/src/state/modals/index.tsx +++ b/src/state/modals/index.tsx @@ -61,6 +61,7 @@ export interface CreateOrEditListModal { export interface UserAddRemoveListsModal { name: 'user-add-remove-lists' subject: string + handle: string displayName: string onAdd?: (listUri: string) => void onRemove?: (listUri: string) => void diff --git a/src/view/com/feeds/FeedSourceCard.tsx b/src/view/com/feeds/FeedSourceCard.tsx index 1f2af069b..460816fc1 100644 --- a/src/view/com/feeds/FeedSourceCard.tsx +++ b/src/view/com/feeds/FeedSourceCard.tsx @@ -170,6 +170,7 @@ export function FeedSourceCardLoaded({ {showSaveBtn && feed.type === 'feed' && ( <View> <Pressable + testID={`feed-${feed.displayName}-toggleSave`} disabled={isSavePending || isPinPending || isRemovePending} accessibilityRole="button" accessibilityLabel={ diff --git a/src/view/com/lists/ListMembers.tsx b/src/view/com/lists/ListMembers.tsx index e6afb3d3c..b25f3ac48 100644 --- a/src/view/com/lists/ListMembers.tsx +++ b/src/view/com/lists/ListMembers.tsx @@ -132,6 +132,7 @@ export function ListMembers({ name: 'user-add-remove-lists', subject: profile.did, displayName: profile.displayName || profile.handle, + handle: profile.handle, }) }, [openModal], diff --git a/src/view/com/modals/UserAddRemoveLists.tsx b/src/view/com/modals/UserAddRemoveLists.tsx index 8c3dc8bb7..506ce15d0 100644 --- a/src/view/com/modals/UserAddRemoveLists.tsx +++ b/src/view/com/modals/UserAddRemoveLists.tsx @@ -28,11 +28,13 @@ export const snapPoints = ['fullscreen'] export function Component({ subject, + handle, displayName, onAdd, onRemove, }: { subject: string + handle: string displayName: string onAdd?: (listUri: string) => void onRemove?: (listUri: string) => void @@ -60,6 +62,7 @@ export function Component({ list={list} memberships={memberships} subject={subject} + handle={handle} onAdd={onAdd} onRemove={onRemove} /> @@ -87,6 +90,7 @@ function ListItem({ list, memberships, subject, + handle, onAdd, onRemove, }: { @@ -94,6 +98,7 @@ function ListItem({ list: GraphDefs.ListView memberships: ListMembersip[] | undefined subject: string + handle: string onAdd?: (listUri: string) => void onRemove?: (listUri: string) => void }) { @@ -182,7 +187,7 @@ function ListItem({ <ActivityIndicator /> ) : ( <Button - testID={`user-${subject}-addBtn`} + testID={`user-${handle}-addBtn`} type="default" label={membership === false ? _(msg`Add`) : _(msg`Remove`)} onPress={onToggleMembership} diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 86ea4eb39..c121c7234 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -375,7 +375,10 @@ let PostThreadItemLoaded = ({ style={styles.expandedInfoItem} href={repostsHref} title={repostsTitle}> - <Text testID="repostCount" type="lg" style={pal.textLight}> + <Text + testID="repostCount-expanded" + type="lg" + style={pal.textLight}> <Text type="xl-bold" style={pal.text}> {formatCount(post.repostCount)} </Text>{' '} @@ -390,7 +393,10 @@ let PostThreadItemLoaded = ({ style={styles.expandedInfoItem} href={likesHref} title={likesTitle}> - <Text testID="likeCount" type="lg" style={pal.textLight}> + <Text + testID="likeCount-expanded" + type="lg" + style={pal.textLight}> <Text type="xl-bold" style={pal.text}> {formatCount(post.likeCount)} </Text>{' '} diff --git a/src/view/com/profile/ProfileHeader.tsx b/src/view/com/profile/ProfileHeader.tsx index 39e3e42ec..e006cac7d 100644 --- a/src/view/com/profile/ProfileHeader.tsx +++ b/src/view/com/profile/ProfileHeader.tsx @@ -217,6 +217,7 @@ let ProfileHeaderLoaded = ({ openModal({ name: 'user-add-remove-lists', subject: profile.did, + handle: profile.handle, displayName: profile.displayName || profile.handle, onAdd: invalidateProfileQuery, onRemove: invalidateProfileQuery, diff --git a/src/view/com/testing/TestCtrls.e2e.tsx b/src/view/com/testing/TestCtrls.e2e.tsx index 41abc25d3..e1e899488 100644 --- a/src/view/com/testing/TestCtrls.e2e.tsx +++ b/src/view/com/testing/TestCtrls.e2e.tsx @@ -5,6 +5,7 @@ import {useModalControls} from '#/state/modals' import {useQueryClient} from '@tanstack/react-query' import {useSessionApi} from '#/state/session' import {useSetFeedViewPreferencesMutation} from '#/state/queries/preferences' +import {useLoggedOutViewControls} from '#/state/shell/logged-out' /** * This utility component is only included in the test simulator @@ -19,6 +20,7 @@ export function TestCtrls() { const {logout, login} = useSessionApi() const {openModal} = useModalControls() const {mutate: setFeedViewPref} = useSetFeedViewPreferencesMutation() + const {setShowLoggedOut} = useLoggedOutViewControls() const onPressSignInAlice = async () => { await login({ service: 'http://localhost:3000', @@ -95,6 +97,12 @@ export function TestCtrls() { accessibilityRole="button" style={BTN} /> + <Pressable + testID="e2eOpenLoggedOutView" + onPress={() => setShowLoggedOut(true)} + accessibilityRole="button" + style={BTN} + /> </View> ) } diff --git a/src/view/com/util/Toast.tsx b/src/view/com/util/Toast.tsx index c7134febe..5462505e1 100644 --- a/src/view/com/util/Toast.tsx +++ b/src/view/com/util/Toast.tsx @@ -7,6 +7,7 @@ import {colors} from 'lib/styles' import {useTheme} from 'lib/ThemeContext' import {usePalette} from 'lib/hooks/usePalette' import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' +import {IS_TEST} from '#/env' const TIMEOUT = 4e3 @@ -14,6 +15,7 @@ export function show( message: string, _icon: FontAwesomeProps['icon'] = 'check', ) { + if (IS_TEST) return const item = new RootSiblings(<Toast message={message} />) setTimeout(() => { item.destroy() diff --git a/src/view/shell/desktop/Search.tsx b/src/view/shell/desktop/Search.tsx index f899431b6..6201f828f 100644 --- a/src/view/shell/desktop/Search.tsx +++ b/src/view/shell/desktop/Search.tsx @@ -42,6 +42,7 @@ export function SearchResultCard({ return ( <Link + testID={`searchAutoCompleteResult-${profile.handle}`} href={makeProfileLink(profile)} title={profile.handle} asAnchor diff --git a/yarn.lock b/yarn.lock index d8c2131c6..af78ffc7b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,19 +34,6 @@ jsonpointer "^5.0.0" leven "^3.1.0" -"@atproto/api@^0.6.14": - version "0.6.14" - resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.6.14.tgz#8f07e56bc51a2a3250eae048fac22c3fe5f2aa1f" - integrity sha512-oPl+obXTzgIsoLhvMYPAHGUrBKvOJcYObW4k0DfrkzAcbOg3fsF1Y1vDO31+C3pkjJj3aUkq/PespiDK1aNIrw== - dependencies: - "@atproto/common-web" "^0.2.0" - "@atproto/lexicon" "^0.2.1" - "@atproto/syntax" "^0.1.1" - "@atproto/xrpc" "^0.3.1" - multiformats "^9.9.0" - tlds "^1.234.0" - typed-emitter "^2.1.0" - "@atproto/api@^0.6.23": version "0.6.23" resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.6.23.tgz#1c475ce505a7029733bdcb4a0f77e8000a735f67" @@ -61,51 +48,70 @@ typed-emitter "^2.1.0" zod "^3.21.4" -"@atproto/bsky@^0.0.5": - version "0.0.5" - resolved "https://registry.yarnpkg.com/@atproto/bsky/-/bsky-0.0.5.tgz#4667977158a112f27aeab14fedb3ca1e3ebbd873" - integrity sha512-dLrEvBMuwwfxcCdCdWRvPi9NuJyugxruxAO0u7Emk1jfh5vpMrgmrTMAwxh4meHSGCxVa12bOKSTDNsbU7OMXA== - dependencies: - "@atproto/api" "^0.6.14" - "@atproto/common" "^0.3.0" - "@atproto/crypto" "^0.2.2" - "@atproto/identity" "^0.2.0" - "@atproto/lexicon" "^0.2.1" - "@atproto/repo" "^0.3.1" - "@atproto/syntax" "^0.1.1" - "@atproto/xrpc-server" "^0.3.1" +"@atproto/api@^0.6.24": + version "0.6.24" + resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.6.24.tgz#79753f82649baa2993677645d809708dd5796e0a" + integrity sha512-y3gz0F5wYAtaZ5XYL8FqXW90sOnXHlh4Cir+hjrlSftSoNJcTVR+6dKT5m0ZTqqvFoFryTPKs6BEQy/VBCsNxg== + dependencies: + "@atproto/common-web" "^0.2.3" + "@atproto/lexicon" "^0.3.1" + "@atproto/syntax" "^0.1.5" + "@atproto/xrpc" "^0.4.1" + multiformats "^9.9.0" + tlds "^1.234.0" + typed-emitter "^2.1.0" + zod "^3.21.4" + +"@atproto/aws@^0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@atproto/aws/-/aws-0.1.6.tgz#c6ecbfd92b325f3c5433688534d47f43358b415b" + integrity sha512-ZWfETjv9ku/5gxs3SVVW1sbGsQMmdnwmjp3RCxXFhMgNkbNL2l7xb17nRQ1VibsFLBWpp0+MeFTZYlSEzAYfCw== + dependencies: + "@atproto/common" "^0.3.3" + "@atproto/crypto" "^0.3.0" + "@atproto/repo" "^0.3.6" + "@aws-sdk/client-cloudfront" "^3.261.0" + "@aws-sdk/client-kms" "^3.196.0" + "@aws-sdk/client-s3" "^3.224.0" + "@aws-sdk/lib-storage" "^3.226.0" + "@noble/curves" "^1.1.0" + key-encoder "^2.0.3" + multiformats "^9.9.0" + uint8arrays "3.0.0" + +"@atproto/bsky@^0.0.16": + version "0.0.16" + resolved "https://registry.yarnpkg.com/@atproto/bsky/-/bsky-0.0.16.tgz#d3a0f055746340879e3b68b4211fd6f26e10af52" + integrity sha512-FYEwXfpaDMepFkV+sJRRUp4qRZ/co4he+w9/154g3TXE2guUtmKO+b1TFN4xdJK8b2U2FGksgs52M2AK9nlUNw== + dependencies: + "@atproto/api" "^0.6.24" + "@atproto/common" "^0.3.3" + "@atproto/crypto" "^0.3.0" + "@atproto/identity" "^0.3.2" + "@atproto/lexicon" "^0.3.1" + "@atproto/repo" "^0.3.6" + "@atproto/syntax" "^0.1.5" + "@atproto/xrpc-server" "^0.4.2" "@did-plc/lib" "^0.0.1" "@isaacs/ttlcache" "^1.4.1" compression "^1.7.4" cors "^2.8.5" - dotenv "^16.0.0" express "^4.17.2" express-async-errors "^3.1.1" form-data "^4.0.0" http-errors "^2.0.0" http-terminator "^3.2.0" ioredis "^5.3.2" - iso-datestring-validator "^2.2.2" kysely "^0.22.0" multiformats "^9.9.0" p-queue "^6.6.2" pg "^8.10.0" pino "^8.15.0" pino-http "^8.2.1" - sharp "^0.31.2" + sharp "^0.32.6" typed-emitter "^2.1.0" uint8arrays "3.0.0" -"@atproto/common-web@*", "@atproto/common-web@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@atproto/common-web/-/common-web-0.2.0.tgz#8420da28e89dac64ad2a11b6ff10a4023c67151f" - integrity sha512-ugKrT8CWf6PDsZ29VOhOCs5K4z9BAFIV7SxPXA+MHC7pINqQ+wyjIq+DtUI8kmUSce1dTqc/lMN1akf/W5whVQ== - dependencies: - graphemer "^1.4.0" - multiformats "^9.6.4" - uint8arrays "3.0.0" - zod "^3.21.4" - "@atproto/common-web@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@atproto/common-web/-/common-web-0.2.3.tgz#c44c1e177ae8309d5116347d49850209e8e478cc" @@ -136,25 +142,18 @@ pino "^8.6.1" zod "^3.14.2" -"@atproto/common@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@atproto/common/-/common-0.3.0.tgz#6ddb0a9bedbf9058353a241b056ae83539da3539" - integrity sha512-R5d50Da63wQdAYaHe+rne5nM/rSYIWBaDZtVKpluysG86U1rRIgrG4qEQ/tNDt6WzYcxKXkX4EOeVvGtav2twg== +"@atproto/common@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@atproto/common/-/common-0.3.3.tgz#bc0059929e528032a55aa32fd180c6e992959dd6" + integrity sha512-ETYsHpQoytW3yJ1BoMDCZh3tdokV3HbZ2ThXq+EWbMxbGNsRDREgJK3JXJMHapf8PrnZZpE2VdWM9NHvlcmnQg== dependencies: - "@atproto/common-web" "*" + "@atproto/common-web" "^0.2.3" "@ipld/dag-cbor" "^7.0.3" cbor-x "^1.5.1" - multiformats "^9.6.4" - pino "^8.6.1" - -"@atproto/crypto@*": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@atproto/crypto/-/crypto-0.2.0.tgz#39f072c2002d818578806a955875ab24db9d8efe" - integrity sha512-tIGEaj/j5bF5y0ceFWz1K8Ad15LzgEW/5oc8+fJ0f1wcXnl3KBbqEWb5YcPDpDRGvSoqWw5JgRYcrvSUcPT7AA== - dependencies: - "@noble/curves" "^1.1.0" - "@noble/hashes" "^1.3.1" - uint8arrays "3.0.0" + iso-datestring-validator "^2.2.2" + multiformats "^9.9.0" + pino "^8.15.0" + zod "3.21.4" "@atproto/crypto@0.1.0": version "0.1.0" @@ -167,58 +166,49 @@ one-webcrypto "^1.0.3" uint8arrays "3.0.0" -"@atproto/crypto@^0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@atproto/crypto/-/crypto-0.2.2.tgz#9832dda885512a36401d24f95990489f521593ef" - integrity sha512-yepwM6pLPw/bT7Nl0nfDw251yVDpuhc0llOgD8YdCapUAH7pIn4dBcMgXiA9UzQaHA7OC9ByO5IdGPrMN/DmZw== +"@atproto/crypto@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@atproto/crypto/-/crypto-0.3.0.tgz#a79e05a85129810755f3456e9d419b49824407d7" + integrity sha512-bhcxRTL4fgRY2YX/St0x4o0oDUp18QIPD7ek+7v8UKA0HpsCGQYbo8w9d9hUvwwty5X5p00cYF2tbggUWaPy7A== dependencies: "@noble/curves" "^1.1.0" "@noble/hashes" "^1.3.1" uint8arrays "3.0.0" -"@atproto/dev-env@^0.2.5": - version "0.2.5" - resolved "https://registry.yarnpkg.com/@atproto/dev-env/-/dev-env-0.2.5.tgz#60a25e0f7123eae4d3892ccb0ee0c9f740b4df97" - integrity sha512-yiHKjgVxmzcM9P4Kg+2KRIHpQsjTlIKJaOLBZEpD0v9JMxmyW1kH/LUu+1Ak1EtMLKdK8aEQc9tu66ss0zsScw== - dependencies: - "@atproto/api" "^0.6.14" - "@atproto/bsky" "^0.0.5" - "@atproto/common-web" "^0.2.0" - "@atproto/crypto" "^0.2.2" - "@atproto/identity" "^0.2.0" - "@atproto/pds" "^0.1.14" - "@atproto/syntax" "^0.1.1" - "@atproto/xrpc-server" "^0.3.1" +"@atproto/dev-env@^0.2.16": + version "0.2.16" + resolved "https://registry.yarnpkg.com/@atproto/dev-env/-/dev-env-0.2.16.tgz#f868b6471f05033df7424e74820b350d2d1eb820" + integrity sha512-/qapGd5okbtGfspt40z1L3PwPFuKCVhtFuy99OpJPTpcKNuskZw5uIujHJ0srcRjcnGfIcM+i3H9xJdiz+sk4A== + dependencies: + "@atproto/api" "^0.6.24" + "@atproto/bsky" "^0.0.16" + "@atproto/common-web" "^0.2.3" + "@atproto/crypto" "^0.3.0" + "@atproto/identity" "^0.3.2" + "@atproto/lexicon" "^0.3.1" + "@atproto/pds" "^0.3.4" + "@atproto/syntax" "^0.1.5" + "@atproto/xrpc-server" "^0.4.2" "@did-plc/lib" "^0.0.1" "@did-plc/server" "^0.0.1" + axios "^0.27.2" better-sqlite3 "^7.6.2" chalk "^5.0.1" - dotenv "^16.0.1" + dotenv "^16.0.3" express "^4.18.2" get-port "^6.1.2" - sharp "^0.31.2" + multiformats "^9.9.0" + sharp "^0.32.6" uint8arrays "3.0.0" -"@atproto/identity@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@atproto/identity/-/identity-0.2.0.tgz#0ba1e2c0ae7a67dd3bdf89afdeaa0d148974b86c" - integrity sha512-JdnGGFPglK3nC6DN4SWZGSczA2FvO1Taj+WZfSuzVCCb3T5n44L3slPpeRjtpRvgYkdkIJ23xH5PhEER0P9dZA== +"@atproto/identity@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@atproto/identity/-/identity-0.3.2.tgz#8a0536bc19ccbc45a04df84c3f30d86f58f964ee" + integrity sha512-xZSyB3gHn/avwdAIV+mECvjjvMYXxPSvSgVBUsETMvMY72H9d84utDD58y5aAU/9mL+founaNZmniKDaR633CQ== dependencies: - "@atproto/common-web" "*" - "@atproto/crypto" "*" + "@atproto/common-web" "^0.2.3" + "@atproto/crypto" "^0.3.0" axios "^0.27.2" - zod "^3.21.4" - -"@atproto/lexicon@^0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@atproto/lexicon/-/lexicon-0.2.1.tgz#1aa6e618ce0977d972ac98f1bfb493a904b6d53a" - integrity sha512-r03gJ9g/hhfI4zHqQgS8HrWceXMhpkVSPNJw1DufpwGpISdaqO6WltdxUkdUQXl6htJmZq3QidnyWPXR5dOtWg== - dependencies: - "@atproto/common-web" "^0.2.0" - "@atproto/syntax" "^0.1.1" - iso-datestring-validator "^2.2.2" - multiformats "^9.9.0" - zod "^3.21.4" "@atproto/lexicon@^0.3.0": version "0.3.0" @@ -231,26 +221,38 @@ multiformats "^9.9.0" zod "^3.21.4" -"@atproto/pds@^0.1.14": - version "0.1.14" - resolved "https://registry.yarnpkg.com/@atproto/pds/-/pds-0.1.14.tgz#7c5a49e412d599d2105bb7ecd019832ab952b19f" - integrity sha512-XQ/BgToLmgc5l2cmSof7bHHgmbuAYX8q3hRpbI5h2DNDjUa3CrbZQMpxxcXUStpBo8JO3veWtX2/Grfzmo5sdA== - dependencies: - "@atproto/api" "^0.6.14" - "@atproto/common" "^0.3.0" - "@atproto/crypto" "^0.2.2" - "@atproto/identity" "^0.2.0" - "@atproto/lexicon" "^0.2.1" - "@atproto/repo" "^0.3.1" - "@atproto/syntax" "^0.1.1" - "@atproto/xrpc" "^0.3.1" - "@atproto/xrpc-server" "^0.3.1" +"@atproto/lexicon@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@atproto/lexicon/-/lexicon-0.3.1.tgz#5d7275d041883a1c930404e3274a6fe7affc151f" + integrity sha512-yLy6GUNP4pn0mGUIyUHvN0UeBza0S03AgjTXVR6KliC4ut2+7SjNMe4cI4G1M8/bJMaccC6ooQSm2kvwiOdr3A== + dependencies: + "@atproto/common-web" "^0.2.3" + "@atproto/syntax" "^0.1.5" + iso-datestring-validator "^2.2.2" + multiformats "^9.9.0" + zod "^3.21.4" + +"@atproto/pds@^0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@atproto/pds/-/pds-0.3.4.tgz#23c4b00a8123cfcb7a051b256ff90b1679cc91b3" + integrity sha512-+xD9RmuwcEZGGmoncG838TcDuNwcPZC1F1gZls5U4NVA4DDcZoGAIQR3uSTMJ2MbbR2B5Z7X/upc24nIV7FgLw== + dependencies: + "@atproto/api" "^0.6.24" + "@atproto/aws" "^0.1.6" + "@atproto/common" "^0.3.3" + "@atproto/crypto" "^0.3.0" + "@atproto/identity" "^0.3.2" + "@atproto/lexicon" "^0.3.1" + "@atproto/repo" "^0.3.6" + "@atproto/syntax" "^0.1.5" + "@atproto/xrpc" "^0.4.1" + "@atproto/xrpc-server" "^0.4.2" "@did-plc/lib" "^0.0.1" better-sqlite3 "^7.6.2" bytes "^3.1.2" compression "^1.7.4" cors "^2.8.5" - dotenv "^16.0.0" + disposable-email "^0.2.3" express "^4.17.2" express-async-errors "^3.1.1" file-type "^16.5.4" @@ -259,7 +261,6 @@ http-errors "^2.0.0" http-terminator "^3.2.0" ioredis "^5.3.2" - iso-datestring-validator "^2.2.2" jsonwebtoken "^8.5.1" kysely "^0.22.0" multiformats "^9.9.0" @@ -269,35 +270,28 @@ pg "^8.10.0" pino "^8.15.0" pino-http "^8.2.1" - sharp "^0.31.2" + sharp "^0.32.6" typed-emitter "^2.1.0" uint8arrays "3.0.0" zod "^3.21.4" -"@atproto/repo@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@atproto/repo/-/repo-0.3.1.tgz#9fa2e5672dd7ed8d375595dd7c0f59f885f5a738" - integrity sha512-Rcx4wdVuriytc6QCuKJfRMrO1Shhx+d6AvQS+yc6g9fWd1wy9odoDeQ1iAAM2EmWFTlHfaWTvdtbfqVRdwKEMw== - dependencies: - "@atproto/common" "^0.3.0" - "@atproto/common-web" "^0.2.0" - "@atproto/crypto" "^0.2.2" - "@atproto/identity" "^0.2.0" - "@atproto/lexicon" "^0.2.1" - "@atproto/syntax" "^0.1.1" +"@atproto/repo@^0.3.6": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@atproto/repo/-/repo-0.3.6.tgz#1732a5fdc71899be819b32b9c63c03815af4a6ce" + integrity sha512-coCYHl/0V3ucyJ2Rgx/l0MK37ui3doph7AsDn8UFxrDeZrecOgkKu66/Zo3PtdmaAQfUPDWdx4cifKeX7IRD5Q== + dependencies: + "@atproto/common" "^0.3.3" + "@atproto/common-web" "^0.2.3" + "@atproto/crypto" "^0.3.0" + "@atproto/identity" "^0.3.2" + "@atproto/lexicon" "^0.3.1" + "@atproto/syntax" "^0.1.5" "@ipld/car" "^3.2.3" "@ipld/dag-cbor" "^7.0.0" multiformats "^9.9.0" uint8arrays "3.0.0" zod "^3.21.4" -"@atproto/syntax@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@atproto/syntax/-/syntax-0.1.1.tgz#2f458dea27418e4e59425c755a4b89b96974965b" - integrity sha512-R3ZbDcA1Ax9yu81uReRcrsmCknqBjqTI+3zuNYS8gNEh0m0OUqJyR4+xSDwrSjE4NDOs1nT93HP+WrimENkihg== - dependencies: - "@atproto/common-web" "^0.2.0" - "@atproto/syntax@^0.1.4": version "0.1.4" resolved "https://registry.yarnpkg.com/@atproto/syntax/-/syntax-0.1.4.tgz#f5569bb4e87f61407d42c37766cf0c2a83ce0b26" @@ -305,14 +299,21 @@ dependencies: "@atproto/common-web" "^0.2.3" -"@atproto/xrpc-server@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@atproto/xrpc-server/-/xrpc-server-0.3.1.tgz#40eeae1dee79fcc835d7a0068ca90f9c91f0ba06" - integrity sha512-MDggh2nWlfG65jgmzlrhNqTyvoaEfz3nbDcc0c2UZadVAmaJGi94e4DTjIv/xfq2XitG80UAFVUrQWORZoIPUw== +"@atproto/syntax@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@atproto/syntax/-/syntax-0.1.5.tgz#85b6488a33da3b864e8ac22a61b5586b271206ee" + integrity sha512-pbY5lOnThoAbsmrdbN9LC/dNmckfqODJiX9zjW2t3BIHYFeGBc6w9bK3Vre8A0Hg8yWkQpv6gaBLu+ykgi2DJQ== dependencies: - "@atproto/common" "^0.3.0" - "@atproto/crypto" "^0.2.2" - "@atproto/lexicon" "^0.2.1" + "@atproto/common-web" "^0.2.3" + +"@atproto/xrpc-server@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@atproto/xrpc-server/-/xrpc-server-0.4.2.tgz#23efd89086b85933f1b0cc00c86e895adcaac315" + integrity sha512-/m8rmFQFqFJ7WaVskPx27DLPeQfRCeEBMCdNxtyJZXElQZJMgcX5382SxAqsI3fVaW3EVwcQp0VuTNFOKFgHVg== + dependencies: + "@atproto/common" "^0.3.3" + "@atproto/crypto" "^0.3.0" + "@atproto/lexicon" "^0.3.1" cbor-x "^1.5.1" express "^4.17.2" http-errors "^2.0.0" @@ -322,14 +323,6 @@ ws "^8.12.0" zod "^3.21.4" -"@atproto/xrpc@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@atproto/xrpc/-/xrpc-0.3.1.tgz#a1d69450df2d53437db5a085f7adc27e128f9b33" - integrity sha512-VVoRC/omtXFMIDUyrkFjYkwJ3vevvsGH0L1UW6mTsL40DK3iJpi0GcdJlcqdMkIFJ+QLeAluEKgEcL7bAR5LiQ== - dependencies: - "@atproto/lexicon" "^0.2.1" - zod "^3.21.4" - "@atproto/xrpc@^0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@atproto/xrpc/-/xrpc-0.4.0.tgz#8911fabcc7d34e140ef03d90d41b763116fc813a" @@ -338,6 +331,698 @@ "@atproto/lexicon" "^0.3.0" zod "^3.21.4" +"@atproto/xrpc@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@atproto/xrpc/-/xrpc-0.4.1.tgz#2fb7e81a159b019339bbcdcf4e7ce8dc4e83bef0" + integrity sha512-EMRGiu6oDvFL03Hk2rG/WCL3QK0GjZs9psH80JVf8z2nfdsGON6yn0hw3jvRB26CBXqi58U8Uicyq8Ej5pVTAA== + dependencies: + "@atproto/lexicon" "^0.3.1" + zod "^3.21.4" + +"@aws-crypto/crc32@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa" + integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/crc32c@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz#016c92da559ef638a84a245eecb75c3e97cb664f" + integrity sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/ie11-detection@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688" + integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/sha1-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz#f9083c00782b24714f528b1a1fef2174002266a3" + integrity sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766" + integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/sha256-js" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2" + integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/supports-web-crypto@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2" + integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/util@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-3.0.0.tgz#1c7ca90c29293f0883468ad48117937f0fe5bfb0" + integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w== + dependencies: + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-sdk/client-cloudfront@^3.261.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.465.0.tgz#d3481a3a97afc5a5be7ee807c9a3080df8980f60" + integrity sha512-DKnu3pv9KYjDmmTBW2ifrrXeA94I6UMLmxjsIUH/huhHqIeUG4M7gMQNerNxHvuoFbDYvBu88A4w/3TIZZhG4w== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.465.0" + "@aws-sdk/core" "3.465.0" + "@aws-sdk/credential-provider-node" "3.465.0" + "@aws-sdk/middleware-host-header" "3.465.0" + "@aws-sdk/middleware-logger" "3.465.0" + "@aws-sdk/middleware-recursion-detection" "3.465.0" + "@aws-sdk/middleware-signing" "3.465.0" + "@aws-sdk/middleware-user-agent" "3.465.0" + "@aws-sdk/region-config-resolver" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-endpoints" "3.465.0" + "@aws-sdk/util-user-agent-browser" "3.465.0" + "@aws-sdk/util-user-agent-node" "3.465.0" + "@aws-sdk/xml-builder" "3.465.0" + "@smithy/config-resolver" "^2.0.18" + "@smithy/fetch-http-handler" "^2.2.6" + "@smithy/hash-node" "^2.0.15" + "@smithy/invalid-dependency" "^2.0.13" + "@smithy/middleware-content-length" "^2.0.15" + "@smithy/middleware-endpoint" "^2.2.0" + "@smithy/middleware-retry" "^2.0.20" + "@smithy/middleware-serde" "^2.0.13" + "@smithy/middleware-stack" "^2.0.7" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/node-http-handler" "^2.1.9" + "@smithy/protocol-http" "^3.0.9" + "@smithy/smithy-client" "^2.1.15" + "@smithy/types" "^2.5.0" + "@smithy/url-parser" "^2.0.13" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.0" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.19" + "@smithy/util-defaults-mode-node" "^2.0.25" + "@smithy/util-endpoints" "^1.0.4" + "@smithy/util-retry" "^2.0.6" + "@smithy/util-stream" "^2.0.20" + "@smithy/util-utf8" "^2.0.2" + "@smithy/util-waiter" "^2.0.13" + fast-xml-parser "4.2.5" + tslib "^2.5.0" + +"@aws-sdk/client-kms@^3.196.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-kms/-/client-kms-3.465.0.tgz#7f34d928b557693bc6ffffc411ab98fad79e3075" + integrity sha512-1WCzPUpV9jF4W3FyIV8Sf22DBehZr9EbuaD/RwwGr42RHEVtjjCxoIcPCS0KjqhzVbaQ8jUrcimsOxVDYadO+g== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.465.0" + "@aws-sdk/core" "3.465.0" + "@aws-sdk/credential-provider-node" "3.465.0" + "@aws-sdk/middleware-host-header" "3.465.0" + "@aws-sdk/middleware-logger" "3.465.0" + "@aws-sdk/middleware-recursion-detection" "3.465.0" + "@aws-sdk/middleware-signing" "3.465.0" + "@aws-sdk/middleware-user-agent" "3.465.0" + "@aws-sdk/region-config-resolver" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-endpoints" "3.465.0" + "@aws-sdk/util-user-agent-browser" "3.465.0" + "@aws-sdk/util-user-agent-node" "3.465.0" + "@smithy/config-resolver" "^2.0.18" + "@smithy/fetch-http-handler" "^2.2.6" + "@smithy/hash-node" "^2.0.15" + "@smithy/invalid-dependency" "^2.0.13" + "@smithy/middleware-content-length" "^2.0.15" + "@smithy/middleware-endpoint" "^2.2.0" + "@smithy/middleware-retry" "^2.0.20" + "@smithy/middleware-serde" "^2.0.13" + "@smithy/middleware-stack" "^2.0.7" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/node-http-handler" "^2.1.9" + "@smithy/protocol-http" "^3.0.9" + "@smithy/smithy-client" "^2.1.15" + "@smithy/types" "^2.5.0" + "@smithy/url-parser" "^2.0.13" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.0" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.19" + "@smithy/util-defaults-mode-node" "^2.0.25" + "@smithy/util-endpoints" "^1.0.4" + "@smithy/util-retry" "^2.0.6" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@aws-sdk/client-s3@^3.224.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.465.0.tgz#7bad33ccfaa3d460247bbdb0e59c5ac7f4c3e2aa" + integrity sha512-S2W8aUs/SR7wabyKRldl5FKtAq2gsXo3BpbKjBvuCILwNl84ooQrsOmKtcVsINRdi+q/mZvwGenqqp/98+yjdg== + dependencies: + "@aws-crypto/sha1-browser" "3.0.0" + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.465.0" + "@aws-sdk/core" "3.465.0" + "@aws-sdk/credential-provider-node" "3.465.0" + "@aws-sdk/middleware-bucket-endpoint" "3.465.0" + "@aws-sdk/middleware-expect-continue" "3.465.0" + "@aws-sdk/middleware-flexible-checksums" "3.465.0" + "@aws-sdk/middleware-host-header" "3.465.0" + "@aws-sdk/middleware-location-constraint" "3.465.0" + "@aws-sdk/middleware-logger" "3.465.0" + "@aws-sdk/middleware-recursion-detection" "3.465.0" + "@aws-sdk/middleware-sdk-s3" "3.465.0" + "@aws-sdk/middleware-signing" "3.465.0" + "@aws-sdk/middleware-ssec" "3.465.0" + "@aws-sdk/middleware-user-agent" "3.465.0" + "@aws-sdk/region-config-resolver" "3.465.0" + "@aws-sdk/signature-v4-multi-region" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-endpoints" "3.465.0" + "@aws-sdk/util-user-agent-browser" "3.465.0" + "@aws-sdk/util-user-agent-node" "3.465.0" + "@aws-sdk/xml-builder" "3.465.0" + "@smithy/config-resolver" "^2.0.18" + "@smithy/eventstream-serde-browser" "^2.0.13" + "@smithy/eventstream-serde-config-resolver" "^2.0.13" + "@smithy/eventstream-serde-node" "^2.0.13" + "@smithy/fetch-http-handler" "^2.2.6" + "@smithy/hash-blob-browser" "^2.0.14" + "@smithy/hash-node" "^2.0.15" + "@smithy/hash-stream-node" "^2.0.15" + "@smithy/invalid-dependency" "^2.0.13" + "@smithy/md5-js" "^2.0.15" + "@smithy/middleware-content-length" "^2.0.15" + "@smithy/middleware-endpoint" "^2.2.0" + "@smithy/middleware-retry" "^2.0.20" + "@smithy/middleware-serde" "^2.0.13" + "@smithy/middleware-stack" "^2.0.7" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/node-http-handler" "^2.1.9" + "@smithy/protocol-http" "^3.0.9" + "@smithy/smithy-client" "^2.1.15" + "@smithy/types" "^2.5.0" + "@smithy/url-parser" "^2.0.13" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.0" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.19" + "@smithy/util-defaults-mode-node" "^2.0.25" + "@smithy/util-endpoints" "^1.0.4" + "@smithy/util-retry" "^2.0.6" + "@smithy/util-stream" "^2.0.20" + "@smithy/util-utf8" "^2.0.2" + "@smithy/util-waiter" "^2.0.13" + fast-xml-parser "4.2.5" + tslib "^2.5.0" + +"@aws-sdk/client-sso@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.465.0.tgz#a732c640767d8d82c3c73d798720d0a8d355184d" + integrity sha512-JXDBa3Sl+LS0KEOs0PZoIjpNKEEGfeyFwdnRxi8Y1hMXNEKyJug1cI2Psqu2olpn4KeXwoP1BuITppZYdolOew== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.465.0" + "@aws-sdk/middleware-host-header" "3.465.0" + "@aws-sdk/middleware-logger" "3.465.0" + "@aws-sdk/middleware-recursion-detection" "3.465.0" + "@aws-sdk/middleware-user-agent" "3.465.0" + "@aws-sdk/region-config-resolver" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-endpoints" "3.465.0" + "@aws-sdk/util-user-agent-browser" "3.465.0" + "@aws-sdk/util-user-agent-node" "3.465.0" + "@smithy/config-resolver" "^2.0.18" + "@smithy/fetch-http-handler" "^2.2.6" + "@smithy/hash-node" "^2.0.15" + "@smithy/invalid-dependency" "^2.0.13" + "@smithy/middleware-content-length" "^2.0.15" + "@smithy/middleware-endpoint" "^2.2.0" + "@smithy/middleware-retry" "^2.0.20" + "@smithy/middleware-serde" "^2.0.13" + "@smithy/middleware-stack" "^2.0.7" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/node-http-handler" "^2.1.9" + "@smithy/protocol-http" "^3.0.9" + "@smithy/smithy-client" "^2.1.15" + "@smithy/types" "^2.5.0" + "@smithy/url-parser" "^2.0.13" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.0" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.19" + "@smithy/util-defaults-mode-node" "^2.0.25" + "@smithy/util-endpoints" "^1.0.4" + "@smithy/util-retry" "^2.0.6" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@aws-sdk/client-sts@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.465.0.tgz#b356b90b0e31a82dc41995282245f74d023ea8b5" + integrity sha512-rHi9ba6ssNbVjlWSdhi4C5newEhGhzkY9UE4KB+/Tj21zXfEP8r6uIltnQXPtun2SdA95Krh/yS1qQ4MRuzqyA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.465.0" + "@aws-sdk/credential-provider-node" "3.465.0" + "@aws-sdk/middleware-host-header" "3.465.0" + "@aws-sdk/middleware-logger" "3.465.0" + "@aws-sdk/middleware-recursion-detection" "3.465.0" + "@aws-sdk/middleware-sdk-sts" "3.465.0" + "@aws-sdk/middleware-signing" "3.465.0" + "@aws-sdk/middleware-user-agent" "3.465.0" + "@aws-sdk/region-config-resolver" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-endpoints" "3.465.0" + "@aws-sdk/util-user-agent-browser" "3.465.0" + "@aws-sdk/util-user-agent-node" "3.465.0" + "@smithy/config-resolver" "^2.0.18" + "@smithy/fetch-http-handler" "^2.2.6" + "@smithy/hash-node" "^2.0.15" + "@smithy/invalid-dependency" "^2.0.13" + "@smithy/middleware-content-length" "^2.0.15" + "@smithy/middleware-endpoint" "^2.2.0" + "@smithy/middleware-retry" "^2.0.20" + "@smithy/middleware-serde" "^2.0.13" + "@smithy/middleware-stack" "^2.0.7" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/node-http-handler" "^2.1.9" + "@smithy/protocol-http" "^3.0.9" + "@smithy/smithy-client" "^2.1.15" + "@smithy/types" "^2.5.0" + "@smithy/url-parser" "^2.0.13" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.0" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.19" + "@smithy/util-defaults-mode-node" "^2.0.25" + "@smithy/util-endpoints" "^1.0.4" + "@smithy/util-retry" "^2.0.6" + "@smithy/util-utf8" "^2.0.2" + fast-xml-parser "4.2.5" + tslib "^2.5.0" + +"@aws-sdk/core@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.465.0.tgz#bfc9dd0fbd953f0839666e9b24c50c4543f49112" + integrity sha512-fHSIw/Rgex3KbrEKn6ZrUc2VcsOTpdBMeyYtfmsTOLSyDDOG9k3jelOvVbCbrK5N6uEUSM8hrnySEKg94UB0cg== + dependencies: + "@smithy/smithy-client" "^2.1.15" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-env@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.465.0.tgz#9bb1c2086165872ad024786e5a48ccb31c5438da" + integrity sha512-fku37AgkB9KhCuWHE6mfvbWYU0X84Df6MQ60nYH7s/PiNEhkX2cVI6X6kOKjP1MNIwRcYt+oQDvplVKdHume+A== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-ini@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.465.0.tgz#d3c3596cc5ff5ebe372bbd62d7aac044cbf3e2e3" + integrity sha512-B1MFufvdToAEMtfszilVnKer2S7P/OfMhkCizq2zuu8aU/CquRyHvKEQgWdvqunUDrFnVTc0kUZgsbBY0uPjLg== + dependencies: + "@aws-sdk/credential-provider-env" "3.465.0" + "@aws-sdk/credential-provider-process" "3.465.0" + "@aws-sdk/credential-provider-sso" "3.465.0" + "@aws-sdk/credential-provider-web-identity" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@smithy/credential-provider-imds" "^2.0.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-node@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.465.0.tgz#b11cbc927aa17aacd0b7208cef5a88045c0bcf62" + integrity sha512-R3VA9yJ0BvezvrDxcgPTv9VHbVPbzchLTrX5jLFSVuW/lPPYLUi/Cjtyg9C9Y7qRfoQS4fNMvSRhwO5/TF68gA== + dependencies: + "@aws-sdk/credential-provider-env" "3.465.0" + "@aws-sdk/credential-provider-ini" "3.465.0" + "@aws-sdk/credential-provider-process" "3.465.0" + "@aws-sdk/credential-provider-sso" "3.465.0" + "@aws-sdk/credential-provider-web-identity" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@smithy/credential-provider-imds" "^2.0.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-process@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.465.0.tgz#78134b19f7a02e7fb78afda16d7cae5b93ff324e" + integrity sha512-YE6ZrRYwvb8969hWQnr4uvOJ8RU0JrNsk3vWTe/czly37ioZUEhi8jmpQp4f2mX/6U6buoFGWu5Se3VCdw2SFQ== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-sso@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.465.0.tgz#622d03eb5c8a0d7a48ba12e849351c841eb48ca6" + integrity sha512-tLIP/4JQIJpn8yIg6RZRQ2nmvj5i4wLZvYvY4RtaFv2JrQUkmmTfyOZJuOBrIFRwJjx0fHmFu8DJjcOhMzllIQ== + dependencies: + "@aws-sdk/client-sso" "3.465.0" + "@aws-sdk/token-providers" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-web-identity@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.465.0.tgz#9db18766eeb0c58a99f7fb5d4bd95f0cf9008d4d" + integrity sha512-B4Y75fMTZIniEU0yyqat+9NsQbYlXdqP5Y3bShkaG3pGLOHzF/xMlWuG+D3kkQ806PLYi+BgfVls4BcO+NyVcA== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/lib-storage@^3.226.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.465.0.tgz#ad9d1d3bcdd8dd5c234a38a805780adfe6e07860" + integrity sha512-nsh8FgVw31N0GO6yiThg2I8yG0rRlpvnEm/MYQ8ETpmm2uq4inbup7eS8FxtfxhU6cGcJZu+YLeBwEdKrTSmvA== + dependencies: + "@smithy/abort-controller" "^2.0.1" + "@smithy/middleware-endpoint" "^2.2.0" + "@smithy/smithy-client" "^2.1.15" + buffer "5.6.0" + events "3.3.0" + stream-browserify "3.0.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-bucket-endpoint@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.465.0.tgz#215489d3cbdac037c3d5abaeabda173c3bc16b95" + integrity sha512-cyIR9Nwyie6giLypuLSUmZF3O5GqVRwia3Nq1B/6/Ho0LccH0/HT2x/nM8fFcnskWSNGTVZVvZzSrVYXynTtjA== + dependencies: + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-arn-parser" "3.465.0" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/protocol-http" "^3.0.9" + "@smithy/types" "^2.5.0" + "@smithy/util-config-provider" "^2.0.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-expect-continue@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.465.0.tgz#760aec6a19898972a4d97857ea2760bcd191c791" + integrity sha512-kthlPQDASsdtdVqKVKkJn9bHptcEpsQ6ptWeGBCYigicULvWI1fjSTeXrYczxNMVg+1Sv8xkb/bh+kUEu7mvZg== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-flexible-checksums@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.465.0.tgz#7b629873182bc107159665f0af5b6515161c8891" + integrity sha512-joWEWN0v1CpI4q9JlZki0AchVwLL8Les0+V+3JHVDcDgL4RQ04YUk9lMYbtldDwdyBNquKwW2+sGtIo/6ng0Tg== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@aws-crypto/crc32c" "3.0.0" + "@aws-sdk/types" "3.465.0" + "@smithy/is-array-buffer" "^2.0.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/types" "^2.5.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@aws-sdk/middleware-host-header@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.465.0.tgz#4f353f6ea063e1ba1df968f9f0126a53d746217d" + integrity sha512-nnGva8eplwEJqdVzcb+xF2Fwua0PpiwxMEvpnIy73gNbetbJdgFIprryMLYes00xzJEqnew+LWdpcd3YyS34ZA== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-location-constraint@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.465.0.tgz#ce2f09d3257bd288990e567f406e74bbe08a5663" + integrity sha512-2+mwaI/ltE2ibr5poC+E9kJRfVIv7aHpAJkLu7uvESch9cpuFuGJu6fq0/gA82eKZ/gwpBj+AaXBsDFfsDWFsw== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-logger@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.465.0.tgz#7d66b375ee343f00e35c64ba79b37656828bf171" + integrity sha512-aGMx1aSlzDDgjZ7fSxLhGD5rkyCfHwq04TSB5fQAgDBqUjj4IQXZwmNglX0sLRmArXZtDglUVESOfKvTANJTPg== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-recursion-detection@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.465.0.tgz#d0cb1fd9c63dbe997406253b5e0ce402103d910f" + integrity sha512-ol3dlsTnryBhV5qkUvK5Yg3dRaV1NXIxYJaIkShrl8XAv4wRNcDJDmO5NYq5eVZ3zgV1nv6xIpZ//dDnnf6Z+g== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-sdk-s3@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.465.0.tgz#fd417ce7a958066afb5c293b49eacd2f807e853e" + integrity sha512-P4cpNv0EcMSSLojjqKKQjKSGZc13QJQAscUs+fcvpBg2BNR9ByxrQgXXMqQiIqr8fgAhADqN2Tp8hJk0CzfnAg== + dependencies: + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-arn-parser" "3.465.0" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/protocol-http" "^3.0.9" + "@smithy/signature-v4" "^2.0.0" + "@smithy/smithy-client" "^2.1.15" + "@smithy/types" "^2.5.0" + "@smithy/util-config-provider" "^2.0.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-sdk-sts@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.465.0.tgz#73ad1f0940f924be1141125ceffcf4204c54c9bf" + integrity sha512-PmTM5ycUe1RLAPrQXLCR8JzKamJuKDB0aIW4rx4/skurzWsEGRI47WHggf9N7sPie41IBGUhRbXcf7sfPjvI3Q== + dependencies: + "@aws-sdk/middleware-signing" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-signing@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.465.0.tgz#2a040c39bfd6f2528ef9798944b4de2d33d2bdd1" + integrity sha512-d90KONWXSC3jA0kqJ6u8ygS4LoMg1TmSM7bPhHyibJVAEhnrlB4Aq1CWljNbbtphGpdKy5/XRM9O0/XCXWKQ4w== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/signature-v4" "^2.0.0" + "@smithy/types" "^2.5.0" + "@smithy/util-middleware" "^2.0.6" + tslib "^2.5.0" + +"@aws-sdk/middleware-ssec@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.465.0.tgz#ca6aff262527f0089a003afa33e901b81908f486" + integrity sha512-PHc1guBGp7fwoPlJkAEaHVkiYPfs93jffwsBvIevCsHcfYPv6L26/5Nk7KR+6IyuGQHpUbSC080SP1jYjOy01A== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-user-agent@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.465.0.tgz#2820d55ff7d774a4afe60f85fe88d959171f9052" + integrity sha512-1MvIWMj2nktLOJN8Kh4jiTK28oL85fTeoXHZ+V8xYMzont6C6Y8gQPtg7ka+RotHwqWMrovfnANisnX8EzEP/Q== + dependencies: + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-endpoints" "3.465.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/region-config-resolver@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.465.0.tgz#87c3d2fe96e1e759d818f179f1e72204791145e6" + integrity sha512-h0Phd2Ae873dsPSWuxqxz2yRC5NMeeWxQiJPh4j42HF8g7dZK7tMQPkYznAoA/BzSBsEX87sbr3MmigquSyUTA== + dependencies: + "@smithy/node-config-provider" "^2.1.5" + "@smithy/types" "^2.5.0" + "@smithy/util-config-provider" "^2.0.0" + "@smithy/util-middleware" "^2.0.6" + tslib "^2.5.0" + +"@aws-sdk/signature-v4-multi-region@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.465.0.tgz#c4c5b00d5998ea8e2a675cc592a0fb5eaa691147" + integrity sha512-p620S4YCr2CPNIdSnRvBqScAqWztjef9EwtD1MAkxTTrjNAyxSCf4apeQ2pdaWNNkJT1vSc/YKBAJ7l2SWn7rw== + dependencies: + "@aws-sdk/middleware-sdk-s3" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/signature-v4" "^2.0.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/token-providers@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.465.0.tgz#e063a30c73878462a5a1542a3eb28ac5e72c5921" + integrity sha512-NaZbsyLs3whzRHGV27hrRwEdXB/tEK6tqn/aCNBy862LhVzocY1A+eYLKrnrvpraOOd2vyAuOtvvB3RMIdiL6g== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/middleware-host-header" "3.465.0" + "@aws-sdk/middleware-logger" "3.465.0" + "@aws-sdk/middleware-recursion-detection" "3.465.0" + "@aws-sdk/middleware-user-agent" "3.465.0" + "@aws-sdk/region-config-resolver" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-endpoints" "3.465.0" + "@aws-sdk/util-user-agent-browser" "3.465.0" + "@aws-sdk/util-user-agent-node" "3.465.0" + "@smithy/config-resolver" "^2.0.18" + "@smithy/fetch-http-handler" "^2.2.6" + "@smithy/hash-node" "^2.0.15" + "@smithy/invalid-dependency" "^2.0.13" + "@smithy/middleware-content-length" "^2.0.15" + "@smithy/middleware-endpoint" "^2.2.0" + "@smithy/middleware-retry" "^2.0.20" + "@smithy/middleware-serde" "^2.0.13" + "@smithy/middleware-stack" "^2.0.7" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/node-http-handler" "^2.1.9" + "@smithy/property-provider" "^2.0.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/smithy-client" "^2.1.15" + "@smithy/types" "^2.5.0" + "@smithy/url-parser" "^2.0.13" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.0" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.19" + "@smithy/util-defaults-mode-node" "^2.0.25" + "@smithy/util-endpoints" "^1.0.4" + "@smithy/util-retry" "^2.0.6" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@aws-sdk/types@3.465.0", "@aws-sdk/types@^3.222.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.465.0.tgz#74977008020f3ed2e5fa0d61daef70d1cbfbfc37" + integrity sha512-Clqu2eD50OOzwSftGpzJrIOGev/7VJhJpc02SeS4cqFgI9EVd+rnFKS/Ux0kcwjLQBMiPcCLtql3KAHApFHAIA== + dependencies: + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/util-arn-parser@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.465.0.tgz#2896f6b06f69770378586853c97a0f283cbb2e20" + integrity sha512-zOJ82vzDJFqBX9yZBlNeHHrul/kpx/DCoxzW5UBbZeb26kfV53QhMSoEmY8/lEbBqlqargJ/sgRC845GFhHNQw== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-endpoints@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.465.0.tgz#b3800364bd856bdfe94e0a1c72979d1bda27a0b8" + integrity sha512-lDpBN1faVw8Udg5hIo+LJaNfllbBF86PCisv628vfcggO8/EArL/v2Eos0KeqVT8yaINXCRSagwfo5TNTuW0KQ== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/util-endpoints" "^1.0.4" + tslib "^2.5.0" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.465.0.tgz#0471428fb5eb749d4b72c427f5726f7b61fb90eb" + integrity sha512-f+QNcWGswredzC1ExNAB/QzODlxwaTdXkNT5cvke2RLX8SFU5pYk6h4uCtWC0vWPELzOfMfloBrJefBzlarhsw== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-user-agent-browser@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.465.0.tgz#2cb792c48770fe650cbb2b66ac21a8d65b0ca5ba" + integrity sha512-RM+LjkIsmUCBJ4yQeBnkJWJTjPOPqcNaKv8bpZxatIHdvzGhXLnWLNi3qHlBsJB2mKtKRet6nAUmKmzZR1sDzA== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/types" "^2.5.0" + bowser "^2.11.0" + tslib "^2.5.0" + +"@aws-sdk/util-user-agent-node@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.465.0.tgz#5838e93a0f2102fb555131f40bd454707caba3f9" + integrity sha512-XsHbq7gLCiGdy6FQ7/5nGslK0ij3Iuh051djuIICvNurlds5cqKLiBe63gX3IUUwxJcrKh4xBGviQJ52KdVSeg== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + +"@aws-sdk/util-utf8-browser@^3.0.0": + version "3.259.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" + integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/xml-builder@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.465.0.tgz#0914bc0b9708848f1fa509dd6e474e8c691a0cb2" + integrity sha512-9TKW5ZgsReygePTnAUdvaqxr/k1HXsEz2yDnk/jTLaUeRPsd5la8fFjb6OfgYYlbEVNlxTcKzaqOdrqxpUkmyQ== + dependencies: + tslib "^2.5.0" + "@babel/code-frame@7.10.4", "@babel/code-frame@~7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" @@ -4441,6 +5126,453 @@ dependencies: "@sinonjs/commons" "^1.7.0" +"@smithy/abort-controller@^2.0.1", "@smithy/abort-controller@^2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.0.14.tgz#0608c34e35289e66ba839bbdda0c2ccd971e8d26" + integrity sha512-zXtteuYLWbSXnzI3O6xq3FYvigYZFW8mdytGibfarLL2lxHto9L3ILtGVnVGmFZa7SDh62l39EnU5hesLN87Fw== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/chunked-blob-reader-native@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.0.1.tgz#0599eaed8c2cd15c7ab43a1838cef1258ff27133" + integrity sha512-N2oCZRglhWKm7iMBu7S6wDzXirjAofi7tAd26cxmgibRYOBS4D3hGfmkwCpHdASZzwZDD8rluh0Rcqw1JeZDRw== + dependencies: + "@smithy/util-base64" "^2.0.1" + tslib "^2.5.0" + +"@smithy/chunked-blob-reader@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.0.0.tgz#c44fe2c780eaf77f9e5381d982ac99a880cce51b" + integrity sha512-k+J4GHJsMSAIQPChGBrjEmGS+WbPonCXesoqP9fynIqjn7rdOThdH8FAeCmokP9mxTYKQAKoHCLPzNlm6gh7Wg== + dependencies: + tslib "^2.5.0" + +"@smithy/config-resolver@^2.0.18", "@smithy/config-resolver@^2.0.19": + version "2.0.19" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.0.19.tgz#d246fff11bdf8089e85de2e26172ba27a5ff7980" + integrity sha512-JsghnQ5zjWmjEVY8TFOulLdEOCj09SjRLugrHlkPZTIBBm7PQitCFVLThbsKPZQOP7N3ME1DU1nKUc1UaVnBog== + dependencies: + "@smithy/node-config-provider" "^2.1.6" + "@smithy/types" "^2.6.0" + "@smithy/util-config-provider" "^2.0.0" + "@smithy/util-middleware" "^2.0.7" + tslib "^2.5.0" + +"@smithy/credential-provider-imds@^2.0.0", "@smithy/credential-provider-imds@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.1.2.tgz#b0225e2f514c5394558f702184feac94453ec9d1" + integrity sha512-Y62jBWdoLPSYjr9fFvJf+KwTa1EunjVr6NryTEWCnwIY93OJxwV4t0qxjwdPl/XMsUkq79ppNJSEQN6Ohnhxjw== + dependencies: + "@smithy/node-config-provider" "^2.1.6" + "@smithy/property-provider" "^2.0.15" + "@smithy/types" "^2.6.0" + "@smithy/url-parser" "^2.0.14" + tslib "^2.5.0" + +"@smithy/eventstream-codec@^2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.0.14.tgz#e56434ae34be6682c7e9f12bb2f50e73b301914a" + integrity sha512-g/OU/MeWGfHDygoXgMWfG/Xb0QqDnAGcM9t2FRrVAhleXYRddGOEnfanR5cmHgB9ue52MJsyorqFjckzXsylaA== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@smithy/types" "^2.6.0" + "@smithy/util-hex-encoding" "^2.0.0" + tslib "^2.5.0" + +"@smithy/eventstream-serde-browser@^2.0.13": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.14.tgz#be04544b8d4efc29fa84c2b2d89bcd8a2280495b" + integrity sha512-41wmYE9smDGJi1ZXp+LogH6BR7MkSsQD91wneIFISF/mupKULvoOJUkv/Nf0NMRxWlM3Bf1Vvi9FlR2oV4KU8Q== + dependencies: + "@smithy/eventstream-serde-universal" "^2.0.14" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/eventstream-serde-config-resolver@^2.0.13": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.14.tgz#ab2a2a96b6f5c04cc3c1bebd75375015016f4735" + integrity sha512-43IyRIzQ82s+5X+t/3Ood00CcWtAXQdmUIUKMed2Qg9REPk8SVIHhpm3rwewLwg+3G2Nh8NOxXlEQu6DsPUcMw== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/eventstream-serde-node@^2.0.13": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.14.tgz#810780e40810b8d7d4545b9961c0b4626ab9906a" + integrity sha512-jVh9E2qAr6DxH5tWfCAl9HV6tI0pEQ3JVmu85JknDvYTC66djcjDdhctPV2EHuKWf2kjRiFJcMIn0eercW4THA== + dependencies: + "@smithy/eventstream-serde-universal" "^2.0.14" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/eventstream-serde-universal@^2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.14.tgz#45d7fc506bd98d5f746b45fe9bfc8e3f09aa147f" + integrity sha512-Ie35+AISNn1NmEjn5b2SchIE49pvKp4Q74bE9ME5RULWI1MgXyGkQUajWd5E6OBSr/sqGcs+rD3IjPErXnCm9g== + dependencies: + "@smithy/eventstream-codec" "^2.0.14" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/fetch-http-handler@^2.2.6", "@smithy/fetch-http-handler@^2.2.7": + version "2.2.7" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.2.7.tgz#7e06aa774ea86f6529365e439256f17979c18445" + integrity sha512-iSDBjxuH9TgrtMYAr7j5evjvkvgwLY3y+9D547uep+JNkZ1ZT+BaeU20j6I/bO/i26ilCWFImrlXTPsfQtZdIQ== + dependencies: + "@smithy/protocol-http" "^3.0.10" + "@smithy/querystring-builder" "^2.0.14" + "@smithy/types" "^2.6.0" + "@smithy/util-base64" "^2.0.1" + tslib "^2.5.0" + +"@smithy/hash-blob-browser@^2.0.14": + version "2.0.15" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-2.0.15.tgz#be745ea0e79333dbb2d2a26b4be04ce283636c98" + integrity sha512-HX/7GIyPUT/HDWVYe2HYQu0iRnSYpF4uZVNhAhZsObPRawk5Mv0PbyluBgIFI2DDCCKgL/tloCYYwycff1GtQg== + dependencies: + "@smithy/chunked-blob-reader" "^2.0.0" + "@smithy/chunked-blob-reader-native" "^2.0.1" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/hash-node@^2.0.15": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.0.16.tgz#babd9e3fb13339507ffcc182834cf10c4df028b1" + integrity sha512-Wbi9A0PacMYUOwjAulQP90Wl3mQ6NDwnyrZQzFjDz+UzjXOSyQMgBrTkUBz+pVoYVlX3DUu24gWMZBcit+wOGg== + dependencies: + "@smithy/types" "^2.6.0" + "@smithy/util-buffer-from" "^2.0.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@smithy/hash-stream-node@^2.0.15": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-2.0.16.tgz#892d211ddc2609c3e5486a5d1b7e4d0423a7fbe9" + integrity sha512-4x24GFdeWos1Z49MC5sYdM1j+z32zcUr6oWM9Ggm3WudFAcRIcbG9uDQ1XgJ0Kl+ZTjpqLKniG0iuWvQb2Ud1A== + dependencies: + "@smithy/types" "^2.6.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@smithy/invalid-dependency@^2.0.13": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.0.14.tgz#fc898c8cf0c4ceb29bb23c6a90f7522193622e75" + integrity sha512-d8ohpwZo9RzTpGlAfsWtfm1SHBSU7+N4iuZ6MzR10xDTujJJWtmXYHK1uzcr7rggbpUTaWyHpPFgnf91q0EFqQ== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/is-array-buffer@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.0.0.tgz#8fa9b8040651e7ba0b2f6106e636a91354ff7d34" + integrity sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug== + dependencies: + tslib "^2.5.0" + +"@smithy/md5-js@^2.0.15": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-2.0.16.tgz#ef1af727ebeb0a24a195904c06a91b946f3ce32d" + integrity sha512-YhWt9aKl+EMSNXyUTUo7I01WHf3HcCkPu/Hl2QmTNwrHT49eWaY7hptAMaERZuHFH0V5xHgPKgKZo2I93DFtgQ== + dependencies: + "@smithy/types" "^2.6.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@smithy/middleware-content-length@^2.0.15": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.0.16.tgz#0d77cfe0d375bfbf1e59f30a38de0e3f14a1e73f" + integrity sha512-9ddDia3pp1d3XzLXKcm7QebGxLq9iwKf+J1LapvlSOhpF8EM9SjMeSrMOOFgG+2TfW5K3+qz4IAJYYm7INYCng== + dependencies: + "@smithy/protocol-http" "^3.0.10" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/middleware-endpoint@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.2.1.tgz#7fc156aaeaa0e8bd838c57a8b37ece355a9eeaec" + integrity sha512-dVDS7HNJl/wb0lpByXor6whqDbb1YlLoaoWYoelyYzLHioXOE7y/0iDwJWtDcN36/tVCw9EPBFZ3aans84jLpg== + dependencies: + "@smithy/middleware-serde" "^2.0.14" + "@smithy/node-config-provider" "^2.1.6" + "@smithy/shared-ini-file-loader" "^2.2.5" + "@smithy/types" "^2.6.0" + "@smithy/url-parser" "^2.0.14" + "@smithy/util-middleware" "^2.0.7" + tslib "^2.5.0" + +"@smithy/middleware-retry@^2.0.20": + version "2.0.21" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.0.21.tgz#7c18cbb7ca5c7fd1777e062b3cbebc57a60bddca" + integrity sha512-EZS1EXv1k6IJX6hyu/0yNQuPcPaXwG8SWljQHYueyRbOxmqYgoWMWPtfZj0xRRQ4YtLawQSpBgAeiJltq8/MPw== + dependencies: + "@smithy/node-config-provider" "^2.1.6" + "@smithy/protocol-http" "^3.0.10" + "@smithy/service-error-classification" "^2.0.7" + "@smithy/types" "^2.6.0" + "@smithy/util-middleware" "^2.0.7" + "@smithy/util-retry" "^2.0.7" + tslib "^2.5.0" + uuid "^8.3.2" + +"@smithy/middleware-serde@^2.0.13", "@smithy/middleware-serde@^2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.0.14.tgz#147e7413f934f213dbfe4815e691409cc9c0d793" + integrity sha512-hFi3FqoYWDntCYA2IGY6gJ6FKjq2gye+1tfxF2HnIJB5uW8y2DhpRNBSUMoqP+qvYzRqZ6ntv4kgbG+o3pX57g== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/middleware-stack@^2.0.7", "@smithy/middleware-stack@^2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.0.8.tgz#76827e2818654eb5a482ede36a59de6d6db7b896" + integrity sha512-7/N59j0zWqVEKExJcA14MrLDZ/IeN+d6nbkN8ucs+eURyaDUXWYlZrQmMOd/TyptcQv0+RDlgag/zSTTV62y/Q== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/node-config-provider@^2.1.5", "@smithy/node-config-provider@^2.1.6": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.1.6.tgz#835f62902676de71a358f66a0887a09154cf43c2" + integrity sha512-HLqTs6O78m3M3z1cPLFxddxhEPv5MkVatfPuxoVO3A+cHZanNd/H5I6btcdHy6N2CB1MJ/lihJC92h30SESsBA== + dependencies: + "@smithy/property-provider" "^2.0.15" + "@smithy/shared-ini-file-loader" "^2.2.5" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/node-http-handler@^2.1.10", "@smithy/node-http-handler@^2.1.9": + version "2.1.10" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.1.10.tgz#8921a661dfb273a21dd1dff3ad1fe5196ea3c525" + integrity sha512-lkALAwtN6odygIM4nB8aHDahINM6WXXjNrZmWQAh0RSossySRT2qa31cFv0ZBuAYVWeprskRk13AFvvLmf1WLw== + dependencies: + "@smithy/abort-controller" "^2.0.14" + "@smithy/protocol-http" "^3.0.10" + "@smithy/querystring-builder" "^2.0.14" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/property-provider@^2.0.0", "@smithy/property-provider@^2.0.15": + version "2.0.15" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.0.15.tgz#7a5069f6bab4d59f640b2e73e99fa03e3fda3cc1" + integrity sha512-YbRFBn8oiiC3o1Kn3a4KjGa6k47rCM9++5W9cWqYn9WnkyH+hBWgfJAckuxpyA2Hq6Ys4eFrWzXq6fqHEw7iew== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/protocol-http@^3.0.10", "@smithy/protocol-http@^3.0.9": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.0.10.tgz#235ffdcdc3022c4a76b1785dbc6f9f8427859e1f" + integrity sha512-6+tjNk7rXW7YTeGo9qwxXj/2BFpJTe37kTj3EnZCoX/nH+NP/WLA7O83fz8XhkGqsaAhLUPo/bB12vvd47nsmg== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/querystring-builder@^2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.0.14.tgz#3ba4ba728ab10e040b46079afc983c3378032328" + integrity sha512-lQ4pm9vTv9nIhl5jt6uVMPludr6syE2FyJmHsIJJuOD7QPIJnrf9HhUGf1iHh9KJ4CUv21tpOU3X6s0rB6uJ0g== + dependencies: + "@smithy/types" "^2.6.0" + "@smithy/util-uri-escape" "^2.0.0" + tslib "^2.5.0" + +"@smithy/querystring-parser@^2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.0.14.tgz#0e3936d44c783540321fedd9d502aac22073a556" + integrity sha512-+cbtXWI9tNtQjlgQg3CA+pvL3zKTAxPnG3Pj6MP89CR3vi3QMmD0SOWoq84tqZDnJCxlsusbgIXk1ngMReXo+A== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/service-error-classification@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.0.7.tgz#9ef515fdc751a27a555f51121be5c37006a4c458" + integrity sha512-LLxgW12qGz8doYto15kZ4x1rHjtXl0BnCG6T6Wb8z2DI4PT9cJfOSvzbuLzy7+5I24PAepKgFeWHRd9GYy3Z9w== + dependencies: + "@smithy/types" "^2.6.0" + +"@smithy/shared-ini-file-loader@^2.0.6", "@smithy/shared-ini-file-loader@^2.2.5": + version "2.2.5" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.5.tgz#7fe24f5f8143e9082b61c3fab4d4d7c395dda807" + integrity sha512-LHA68Iu7SmNwfAVe8egmjDCy648/7iJR/fK1UnVw+iAOUJoEYhX2DLgVd5pWllqdDiRbQQzgaHLcRokM+UFR1w== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/signature-v4@^2.0.0": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.0.16.tgz#51456baa6992120031692e1bf28178b766bf40ac" + integrity sha512-ilLY85xS2kZZzTb83diQKYLIYALvart0KnBaKnIRnMBHAGEio5aHSlANQoxVn0VsonwmQ3CnWhnCT0sERD8uTg== + dependencies: + "@smithy/eventstream-codec" "^2.0.14" + "@smithy/is-array-buffer" "^2.0.0" + "@smithy/types" "^2.6.0" + "@smithy/util-hex-encoding" "^2.0.0" + "@smithy/util-middleware" "^2.0.7" + "@smithy/util-uri-escape" "^2.0.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@smithy/smithy-client@^2.1.15", "@smithy/smithy-client@^2.1.16": + version "2.1.16" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.1.16.tgz#eae70fac673b06494c536fa5637c2df12887ce3a" + integrity sha512-Lw67+yQSpLl4YkDLUzI2KgS8TXclXmbzSeOJUmRFS4ueT56B4pw3RZRF/SRzvgyxM/HxgkUan8oSHXCujPDafQ== + dependencies: + "@smithy/middleware-stack" "^2.0.8" + "@smithy/types" "^2.6.0" + "@smithy/util-stream" "^2.0.21" + tslib "^2.5.0" + +"@smithy/types@^2.5.0", "@smithy/types@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.6.0.tgz#a09c40b512e2df213229a20a43d0d9cfcf55ca3e" + integrity sha512-PgqxJq2IcdMF9iAasxcqZqqoOXBHufEfmbEUdN1pmJrJltT42b0Sc8UiYSWWzKkciIp9/mZDpzYi4qYG1qqg6g== + dependencies: + tslib "^2.5.0" + +"@smithy/url-parser@^2.0.13", "@smithy/url-parser@^2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.0.14.tgz#6e09902482e9fef0882e6c9f1009ca57fcf3f7b4" + integrity sha512-kbu17Y1AFXi5lNlySdDj7ZzmvupyWKCX/0jNZ8ffquRyGdbDZb+eBh0QnWqsSmnZa/ctyWaTf7n4l/pXLExrnw== + dependencies: + "@smithy/querystring-parser" "^2.0.14" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/util-base64@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.0.1.tgz#57f782dafc187eddea7c8a1ff2a7c188ed1a02c4" + integrity sha512-DlI6XFYDMsIVN+GH9JtcRp3j02JEVuWIn/QOZisVzpIAprdsxGveFed0bjbMRCqmIFe8uetn5rxzNrBtIGrPIQ== + dependencies: + "@smithy/util-buffer-from" "^2.0.0" + tslib "^2.5.0" + +"@smithy/util-body-length-browser@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.0.0.tgz#5447853003b4c73da3bc5f3c5e82c21d592d1650" + integrity sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg== + dependencies: + tslib "^2.5.0" + +"@smithy/util-body-length-node@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-2.1.0.tgz#313a5f7c5017947baf5fa018bfc22628904bbcfa" + integrity sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw== + dependencies: + tslib "^2.5.0" + +"@smithy/util-buffer-from@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.0.0.tgz#7eb75d72288b6b3001bc5f75b48b711513091deb" + integrity sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw== + dependencies: + "@smithy/is-array-buffer" "^2.0.0" + tslib "^2.5.0" + +"@smithy/util-config-provider@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-2.0.0.tgz#4dd6a793605559d94267312fd06d0f58784b4c38" + integrity sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg== + dependencies: + tslib "^2.5.0" + +"@smithy/util-defaults-mode-browser@^2.0.19": + version "2.0.20" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.20.tgz#efabf1c0dadd0d86340f796b761bf17b59dcf900" + integrity sha512-QJtnbTIl0/BbEASkx1MUFf6EaoWqWW1/IM90N++8NNscePvPf77GheYfpoPis6CBQawUWq8QepTP2QUSAdrVkw== + dependencies: + "@smithy/property-provider" "^2.0.15" + "@smithy/smithy-client" "^2.1.16" + "@smithy/types" "^2.6.0" + bowser "^2.11.0" + tslib "^2.5.0" + +"@smithy/util-defaults-mode-node@^2.0.25": + version "2.0.26" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.26.tgz#a701b6b0cc3f2bb57964049ccb0f8d147a8654df" + integrity sha512-lGFPOFCHv1ql019oegYqa54BZH7HREw6EBqjDLbAr0wquMX0BDi2sg8TJ6Eq+JGLijkZbJB73m4+aK8OFAapMg== + dependencies: + "@smithy/config-resolver" "^2.0.19" + "@smithy/credential-provider-imds" "^2.1.2" + "@smithy/node-config-provider" "^2.1.6" + "@smithy/property-provider" "^2.0.15" + "@smithy/smithy-client" "^2.1.16" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/util-endpoints@^1.0.4": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.0.5.tgz#9e6ffdc9ac9d597869209e3b83784a13f277956e" + integrity sha512-K7qNuCOD5K/90MjHvHm9kJldrfm40UxWYQxNEShMFxV/lCCCRIg8R4uu1PFAxRvPxNpIdcrh1uK6I1ISjDXZJw== + dependencies: + "@smithy/node-config-provider" "^2.1.6" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/util-hex-encoding@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.0.0.tgz#0aa3515acd2b005c6d55675e377080a7c513b59e" + integrity sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA== + dependencies: + tslib "^2.5.0" + +"@smithy/util-middleware@^2.0.6", "@smithy/util-middleware@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.0.7.tgz#92dda5d2a79915e06a275b4df3d66d4381b60a5f" + integrity sha512-tRINOTlf1G9B0ECarFQAtTgMhpnrMPSa+5j4ZEwEawCLfTFTavk6757sxhE4RY5RMlD/I3x+DCS8ZUiR8ho9Pw== + dependencies: + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/util-retry@^2.0.6", "@smithy/util-retry@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.0.7.tgz#14ad8ebe5d8428dd0216d58b883e7fd964ae1e95" + integrity sha512-fIe5yARaF0+xVT1XKcrdnHKTJ1Vc4+3e3tLDjCuIcE9b6fkBzzGFY7AFiX4M+vj6yM98DrwkuZeHf7/hmtVp0Q== + dependencies: + "@smithy/service-error-classification" "^2.0.7" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + +"@smithy/util-stream@^2.0.20", "@smithy/util-stream@^2.0.21": + version "2.0.21" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.0.21.tgz#290935084e026afae6bacec7481abdae3498ee35" + integrity sha512-0BUE16d7n1x7pi1YluXJdB33jOTyBChT0j/BlOkFa9uxfg6YqXieHxjHNuCdJRARa7AZEj32LLLEPJ1fSa4inA== + dependencies: + "@smithy/fetch-http-handler" "^2.2.7" + "@smithy/node-http-handler" "^2.1.10" + "@smithy/types" "^2.6.0" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-buffer-from" "^2.0.0" + "@smithy/util-hex-encoding" "^2.0.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@smithy/util-uri-escape@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.0.0.tgz#19955b1a0f517a87ae77ac729e0e411963dfda95" + integrity sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw== + dependencies: + tslib "^2.5.0" + +"@smithy/util-utf8@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.0.2.tgz#626b3e173ad137208e27ed329d6bea70f4a1a7f7" + integrity sha512-qOiVORSPm6Ce4/Yu6hbSgNHABLP2VMv8QOC3tTDNHHlWY19pPyc++fBTbZPtx6egPXi4HQxKDnMxVxpbtX2GoA== + dependencies: + "@smithy/util-buffer-from" "^2.0.0" + tslib "^2.5.0" + +"@smithy/util-waiter@^2.0.13": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-2.0.14.tgz#b2c8ce5728c1bb92236dfbfe3bf8f354a328c4f7" + integrity sha512-Q6gSz4GUNjNGhrfNg+2Mjy+7K4pEI3r82x1b/+3dSc03MQqobMiUrRVN/YK/4nHVagvBELCoXsiHAFQJNQ5BeA== + dependencies: + "@smithy/abort-controller" "^2.0.14" + "@smithy/types" "^2.6.0" + tslib "^2.5.0" + "@stdlib/array-float32@^0.0.x": version "0.0.6" resolved "https://registry.yarnpkg.com/@stdlib/array-float32/-/array-float32-0.0.6.tgz#7a1c89db3c911183ec249fa32455abd9328cfa27" @@ -5608,6 +6740,13 @@ dependencies: "@babel/types" "^7.20.7" +"@types/bn.js@*": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.5.tgz#2e0dacdcce2c0f16b905d20ff87aedbc6f7b4bf0" + integrity sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A== + dependencies: + "@types/node" "*" + "@types/body-parser@*": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -5638,6 +6777,13 @@ dependencies: "@types/node" "*" +"@types/elliptic@^6.4.9": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.18.tgz#bc96e26e1ccccbabe8b6f0e409c85898635482e1" + integrity sha512-UseG6H5vjRiNpQvrhy4VF/JXdA3V/Fp5amvveaL+fs28BZ6xIKJBPnUPRlEaZpysD9MbpfaLi8lbl7PGUAkpWw== + dependencies: + "@types/bn.js" "*" + "@types/eslint-scope@^3.7.3": version "3.7.4" resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" @@ -6748,6 +7894,16 @@ asap@~2.0.3, asap@~2.0.6: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== +asn1.js@^5.0.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + assert@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" @@ -6858,6 +8014,11 @@ axobject-query@^3.1.1: dependencies: dequal "^2.0.3" +b4a@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.4.tgz#ef1c1422cae5ce6535ec191baeed7567443f36c9" + integrity sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw== + babel-core@^7.0.0-bridge.0: version "7.0.0-bridge.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" @@ -7133,7 +8294,7 @@ base-64@0.1.0, base-64@^0.1.0: resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb" integrity sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA== -base64-js@^1.1.2, base64-js@^1.2.3, base64-js@^1.3.1, base64-js@^1.5.1: +base64-js@^1.0.2, base64-js@^1.1.2, base64-js@^1.2.3, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -7214,6 +8375,11 @@ blueimp-md5@^2.10.0: resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.19.0.tgz#b53feea5498dcb53dc6ec4b823adb84b729c4af0" integrity sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w== +bn.js@^4.0.0, bn.js@^4.11.8, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + body-parser@1.20.1: version "1.20.1" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" @@ -7270,6 +8436,11 @@ boolean@^3.1.4: resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b" integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw== +bowser@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" + integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== + bplist-creator@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.1.0.tgz#018a2d1b587f769e379ef5519103730f8963ba1e" @@ -7313,6 +8484,11 @@ braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + browser-process-hrtime@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" @@ -7368,6 +8544,14 @@ buffer-writer@2.0.0: resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== +buffer@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + buffer@^5.4.3, buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -8649,7 +9833,7 @@ detect-libc@^1.0.3: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== -detect-libc@^2.0.0, detect-libc@^2.0.1: +detect-libc@^2.0.0, detect-libc@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== @@ -8744,6 +9928,11 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +disposable-email@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/disposable-email/-/disposable-email-0.2.3.tgz#a21a49717f6034a8ff777dc8eae3b4d994a7b988" + integrity sha512-gkBQQ5Res431ZXqLlAafrXHizG7/1FWmi8U2RTtriD78Vc10HhBUvdJun3R4eSF0KRIQQJs+wHlxjkED/Hr1EQ== + dlv@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" @@ -8895,7 +10084,7 @@ dotenv@^10.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== -dotenv@^16.0.0, dotenv@^16.0.1, dotenv@^16.3.1: +dotenv@^16.0.3, dotenv@^16.3.1: version "16.3.1" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== @@ -8963,6 +10152,19 @@ electron-to-chromium@^1.4.477: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.498.tgz#cef35341123f62a35ba7084e439c911d25e0d81b" integrity sha512-4LODxAzKGVy7CJyhhN5mebwe7U2L29P+0G+HUriHnabm0d7LSff8Yn7t+Wq+2/9ze2Fu1dhX7mww090xfv7qXQ== +elliptic@^6.4.1: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + email-validator@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/email-validator/-/email-validator-2.0.4.tgz#b8dfaa5d0dae28f1b03c95881d904d4e40bfe7ed" @@ -9643,7 +10845,7 @@ eventemitter3@^5.0.1: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== -events@^3.2.0, events@^3.3.0: +events@3.3.0, events@^3.2.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -10070,6 +11272,11 @@ 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-fifo@^1.1.0, fast-fifo@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" + integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== + fast-glob@^3.2.12, fast-glob@^3.2.5, fast-glob@^3.2.7, fast-glob@^3.2.9: version "3.3.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" @@ -10130,6 +11337,13 @@ fast-uri@^2.1.0: resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.2.0.tgz#519a0f849bef714aad10e9753d69d8f758f7445a" integrity sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg== +fast-xml-parser@4.2.5: + version "4.2.5" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f" + integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g== + dependencies: + strnum "^1.0.5" + fast-xml-parser@^4.0.12: version "4.2.7" resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.7.tgz#871f2ca299dc4334b29f8da3658c164e68395167" @@ -10893,6 +12107,14 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + he@1.2.0, he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -10924,6 +12146,15 @@ history@^5.3.0: dependencies: "@babel/runtime" "^7.7.6" +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" @@ -11164,7 +12395,7 @@ identity-obj-proxy@^3.0.0: dependencies: harmony-reflect "^1.4.6" -ieee754@^1.1.13, ieee754@^1.2.1: +ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -11238,7 +12469,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -13048,6 +14279,16 @@ jws@^3.2.2: jwa "^1.4.1" safe-buffer "^5.0.1" +key-encoder@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/key-encoder/-/key-encoder-2.0.3.tgz#77073bb48ff1fe2173bb2088b83b91152c8fa4ba" + integrity sha512-fgBtpAGIr/Fy5/+ZLQZIPPhsZEcbSlYu/Wu96tNDFNSjSACw5lEIOFeaVdQ/iwrb8oxjlWi6wmWdH76hV6GZjg== + dependencies: + "@types/elliptic" "^6.4.9" + asn1.js "^5.0.1" + bn.js "^4.11.8" + elliptic "^6.4.1" + kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -14017,11 +15258,16 @@ mini-css-extract-plugin@^2.4.5, mini-css-extract-plugin@^2.5.2: dependencies: schema-utils "^4.0.0" -minimalistic-assert@^1.0.0: +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + "minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -14282,10 +15528,10 @@ node-abort-controller@^3.1.1: resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== -node-addon-api@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" - integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== +node-addon-api@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" + integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== node-dir@^0.1.17: version "0.1.17" @@ -16189,6 +17435,11 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +queue-tick@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" + integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== + queue@6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" @@ -16722,7 +17973,7 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@~2.3.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -17237,7 +18488,7 @@ safe-stable-stringify@^2.3.1, safe-stable-stringify@^2.4.3: resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -17519,18 +18770,18 @@ shallow-equal@^1.2.1: resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== -sharp@^0.31.2: - version "0.31.3" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.31.3.tgz#60227edc5c2be90e7378a210466c99aefcf32688" - integrity sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg== +sharp@^0.32.6: + version "0.32.6" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.32.6.tgz#6ad30c0b7cd910df65d5f355f774aa4fce45732a" + integrity sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w== dependencies: color "^4.2.3" - detect-libc "^2.0.1" - node-addon-api "^5.0.0" + detect-libc "^2.0.2" + node-addon-api "^6.1.0" prebuild-install "^7.1.1" - semver "^7.3.8" + semver "^7.5.4" simple-get "^4.0.1" - tar-fs "^2.1.1" + tar-fs "^3.0.4" tunnel-agent "^0.6.0" shebang-command@^1.2.0: @@ -17837,6 +19088,14 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +stream-browserify@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" + integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== + dependencies: + inherits "~2.0.4" + readable-stream "^3.5.0" + stream-buffers@2.2.x: version "2.2.0" resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4" @@ -17854,6 +19113,14 @@ stream-json@^1.7.4: dependencies: stream-chain "^2.2.5" +streamx@^2.15.0: + version "2.15.5" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.5.tgz#87bcef4dc7f0b883f9359671203344a4e004c7f1" + integrity sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg== + dependencies: + fast-fifo "^1.1.0" + queue-tick "^1.0.1" + strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" @@ -18240,7 +19507,7 @@ tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar-fs@^2.0.0, tar-fs@^2.1.1: +tar-fs@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== @@ -18250,6 +19517,15 @@ tar-fs@^2.0.0, tar-fs@^2.1.1: pump "^3.0.0" tar-stream "^2.1.4" +tar-fs@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.4.tgz#a21dc60a2d5d9f55e0089ccd78124f1d3771dbbf" + integrity sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w== + dependencies: + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^3.1.5" + tar-stream@^2.1.4: version "2.2.0" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" @@ -18261,6 +19537,15 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" +tar-stream@^3.1.5: + version "3.1.6" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.6.tgz#6520607b55a06f4a2e2e04db360ba7d338cc5bab" + integrity sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg== + dependencies: + b4a "^1.6.4" + fast-fifo "^1.2.0" + streamx "^2.15.0" + tar@^6.0.2, tar@^6.0.5: version "6.1.15" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" @@ -18585,12 +19870,12 @@ tsconfig-paths@^3.14.2: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.4.1, "tslib@^2.4.1 || ^1.9.3": +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1, "tslib@^2.4.1 || ^1.9.3", tslib@^2.5.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -19919,6 +21204,11 @@ zeego@^1.6.2: "@radix-ui/react-dropdown-menu" "^2.0.1" sf-symbols-typescript "^1.0.0" +zod@3.21.4: + version "3.21.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db" + integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw== + zod@^3.14.2, zod@^3.20.2, zod@^3.21.4: version "3.22.2" resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.2.tgz#3add8c682b7077c05ac6f979fea6998b573e157b" |