From a47269cfe2ce522aa3f33ff3982a7e9e466ec12c Mon Sep 17 00:00:00 2001 From: Saturnino Abril <5334504+saturninoabril@users.noreply.github.com> Date: Tue, 1 Apr 2025 08:52:56 +0800 Subject: [PATCH] MM-62954 E2E/Playwright shared library (#30177) * feat: Add package.json for Playwright library with dependencies * feat: Add explicit exports for test.config in playwright-lib package * feat: Add initialization setup for Mattermost E2E testing with admin and user client * fix: Update package dependencies and resolve TypeScript build errors * feat: Update package exports for test.config to support both CommonJS and ESM * playwright shared library * add README, fix pipeline * keep file structures, move report up to playwright * minimize API, use the prerelease versions of client and types * bump version * update package*.json * resolve merge conflict * update depedencies and merge conflicts * update readme and fix ci * remove unnecessary export and list all external packages * fix import for Client4 --- .github/workflows/e2e-fulltests-ci.yml | 2 +- e2e-tests/.ci/.e2erc | 2 +- e2e-tests/.ci/report.publish.sh | 2 +- e2e-tests/.ci/server.generate.sh | 2 +- e2e-tests/.ci/server.run_playwright.sh | 7 +- e2e-tests/playwright/.gitignore | 16 + e2e-tests/playwright/eslint.config.mjs | 38 +- e2e-tests/playwright/lib/README.md | 214 + e2e-tests/playwright/lib/package.json | 68 + e2e-tests/playwright/lib/rollup.config.js | 41 + .../src}/asset/mattermost-icon_128x128.png | Bin .../{support => lib/src}/browser_context.ts | 8 +- .../{support => lib/src}/constant.ts | 0 e2e-tests/playwright/lib/src/file.ts | 93 + .../playwright/{support => lib/src}/flag.ts | 10 +- .../playwright/{ => lib/src}/global_setup.ts | 41 +- e2e-tests/playwright/lib/src/index.ts | 22 + .../{support => lib/src}/mock_browser_api.ts | 0 .../{support => lib/src}/server/channel.ts | 3 +- e2e-tests/playwright/lib/src/server/client.ts | 58 + .../src}/server/default_config.ts | 4 +- .../{support => lib/src}/server/index.ts | 3 +- .../{support => lib/src}/server/init.ts | 12 +- .../{support => lib/src}/server/post.ts | 3 +- .../{support => lib/src}/server/team.ts | 3 +- .../{support => lib/src}/server/user.ts | 5 +- .../{support => lib/src}/test_action.ts | 5 - e2e-tests/playwright/lib/src/test_config.ts | 63 + .../{support => lib/src}/test_fixture.ts | 80 +- e2e-tests/playwright/{ => lib/src}/types.ts | 23 - .../src}/ui/components/channels/app_bar.ts | 4 +- .../ui/components/channels/center_view.ts | 32 +- .../delete_post_confirmation_dialog.ts | 4 +- .../components/channels/delete_post_modal.ts | 4 +- .../components/channels/emoji_gif_picker.ts | 4 +- .../channels/find_channels_modal.ts | 4 +- .../channels/generic_confirm_modal.ts | 4 +- .../src}/ui/components/channels/header.ts | 4 +- .../components/channels/message_priority.ts | 4 +- .../src}/ui/components/channels/post.ts | 11 +- .../ui/components/channels/post_create.ts | 36 +- .../ui/components/channels/post_dot_menu.ts | 4 +- .../src}/ui/components/channels/post_edit.ts | 19 +- .../src}/ui/components/channels/post_menu.ts | 4 +- .../components/channels/post_reminder_menu.ts | 4 +- .../restore_post_confirmation_dialog.ts | 4 +- .../channels/scheduled_draft_menu.ts | 4 +- .../channels/scheduled_draft_modal.ts | 4 +- .../ui/components/channels/search_popover.ts | 4 +- .../settings/notification_settings.ts | 4 +- .../channels/settings/settings_modal.ts | 6 +- .../ui/components/channels/sidebar_left.ts | 4 +- .../ui/components/channels/sidebar_right.ts | 18 +- .../ui/components/channels/thread_footer.ts | 4 +- .../channels/user_profile_popover.ts | 4 +- .../src}/ui/components/footer.ts | 4 +- .../src}/ui/components/global_header.ts | 4 +- .../playwright/lib/src/ui/components/index.ts | 96 + .../src}/ui/components/main_header.ts | 4 +- .../ui/components/system_console/navbar.ts | 4 +- .../system_users/column_toggle_menu.ts | 6 +- .../system_users/feature_discovery.ts | 2 - .../sections/system_users/filter_menu.ts | 6 +- .../sections/system_users/filter_popover.ts | 6 +- .../sections/system_users/mobile_security.ts | 2 - .../sections/system_users/system_users.ts | 4 +- .../ui/components/system_console/sidebar.ts | 4 +- .../{support => lib/src}/ui/pages/channels.ts | 6 +- .../{support => lib/src}/ui/pages/drafts.ts | 4 +- .../playwright/lib/src/ui/pages/index.ts | 34 + .../src}/ui/pages/landing_login.ts | 4 +- .../{support => lib/src}/ui/pages/login.ts | 7 +- .../src}/ui/pages/reset_password.ts | 6 +- .../src}/ui/pages/scheduled_draft.ts | 4 +- .../{support => lib/src}/ui/pages/signup.ts | 8 +- .../src}/ui/pages/system_console.ts | 11 +- .../playwright/{support => lib/src}/util.ts | 0 .../{support => lib/src}/visual/index.ts | 10 +- .../{support => lib/src}/visual/percy.ts | 4 +- e2e-tests/playwright/lib/tsconfig.json | 20 + e2e-tests/playwright/package-lock.json | 10101 +++++++++------- e2e-tests/playwright/package.json | 72 +- e2e-tests/playwright/report.webhookgen.js | 8 +- e2e-tests/playwright/support/file.ts | 65 - e2e-tests/playwright/support/server/client.ts | 162 - .../playwright/support/ui/components/index.ts | 98 - .../playwright/support/ui/pages/index.ts | 25 - e2e-tests/playwright/test.config.ts | 44 - e2e-tests/playwright/{ => test}/.percy.yml | 0 e2e-tests/playwright/{ => test}/README.md | 17 +- .../{support => test}/asset/archive.zip | Bin .../test/asset/mattermost-icon_128x128.png | Bin 0 -> 13311 bytes .../{support => test}/asset/mattermost.png | Bin .../asset/sample_text_file.txt | 0 e2e-tests/playwright/test/global_setup.ts | 22 + e2e-tests/playwright/test/package.json | 26 + .../{ => test}/playwright.config.ts | 8 +- e2e-tests/playwright/{ => test}/sample.env | 0 .../{ => test}/script/post_install.sh | 0 .../channels/intro_channel.spec.ts | 2 +- .../specs}/accessibility/common/login.spec.ts | 2 +- .../common/reset_password.spec.ts | 2 +- .../common/signup_user_complete.spec.ts | 2 +- .../{tests => test/specs}/client/schema.ts | 0 .../specs}/client/upload_file.spec.ts | 35 +- .../profile/popover_fields.spec.ts | 5 +- .../drafts/drafts_on_deleted_message.spec.ts | 5 +- .../edit_file_attachment.spec.ts | 18 +- .../gif_picker/gif_picker_search.spec.ts | 2 +- .../standard_priority.spec.ts | 13 +- .../notifications/notification.spec.ts | 2 +- .../create_scheduled_draft.spec.ts | 34 +- .../channels/search/find_channels.spec.ts | 5 +- .../search/search_box_suggestions.spec.ts | 2 +- .../channels/search/team_selector.spec.ts | 7 +- .../highlight_without_notification.spec.ts | 15 +- .../system_console/desktop_landing.spec.ts | 8 +- .../system_console/mobile_security.spec.ts | 9 +- .../system_users/actions.spec.ts | 19 +- .../system_users/column_sort.spec.ts | 18 +- .../system_users/column_toggler.spec.ts | 4 +- .../system_users/export_data.spec.ts | 13 +- .../system_users/filter_popover.spec.ts | 19 +- .../system_users/search.spec.ts | 26 +- .../visual/channels/intro_channel.spec.ts | 4 +- ...o-channel-as-regular-user-chrome-linux.png | Bin 0 -> 69294 bytes ...-channel-as-regular-user-firefox-linux.png | Bin 0 -> 109423 bytes ...-to-channel-as-regular-user-ipad-linux.png | Bin 0 -> 87790 bytes .../specs}/visual/common/landing_page.spec.ts | 2 +- .../landing-login-chrome-linux.png | Bin .../landing-login-firefox-linux.png | Bin .../landing-login-ipad-linux.png | Bin .../specs}/visual/common/login.spec.ts | 2 +- .../login-chrome-linux.png | Bin .../login-error-chrome-linux.png | Bin .../login-error-firefox-linux.png | Bin .../login-error-free-edition-chrome-linux.png | Bin ...login-error-free-edition-firefox-linux.png | Bin .../login-error-free-edition-ipad-linux.png | Bin .../login-error-ipad-linux.png | Bin .../login-firefox-linux.png | Bin .../login-free-edition-chrome-linux.png | Bin .../login-free-edition-firefox-linux.png | Bin .../login-free-edition-ipad-linux.png | Bin .../login-ipad-linux.png | Bin .../specs}/visual/common/signup_email.spec.ts | 2 +- .../signup-email-chrome-linux.png | Bin .../signup-email-error-chrome-linux.png | Bin .../signup-email-error-firefox-linux.png | Bin ...-email-error-free-edition-chrome-linux.png | Bin ...email-error-free-edition-firefox-linux.png | Bin ...up-email-error-free-edition-ipad-linux.png | Bin .../signup-email-error-ipad-linux.png | Bin .../signup-email-firefox-linux.png | Bin ...signup-email-free-edition-chrome-linux.png | Bin ...ignup-email-free-edition-firefox-linux.png | Bin .../signup-email-free-edition-ipad-linux.png | Bin .../signup-email-ipad-linux.png | Bin e2e-tests/playwright/test/tsconfig.json | 21 + ...o-channel-as-regular-user-chrome-linux.png | Bin 84054 -> 0 bytes ...-channel-as-regular-user-firefox-linux.png | Bin 112948 -> 0 bytes ...-to-channel-as-regular-user-ipad-linux.png | Bin 81622 -> 0 bytes e2e-tests/playwright/tsconfig.json | 19 - 163 files changed, 7203 insertions(+), 5048 deletions(-) create mode 100644 e2e-tests/playwright/.gitignore create mode 100644 e2e-tests/playwright/lib/README.md create mode 100644 e2e-tests/playwright/lib/package.json create mode 100644 e2e-tests/playwright/lib/rollup.config.js rename e2e-tests/playwright/{support => lib/src}/asset/mattermost-icon_128x128.png (100%) rename e2e-tests/playwright/{support => lib/src}/browser_context.ts (94%) rename e2e-tests/playwright/{support => lib/src}/constant.ts (100%) create mode 100644 e2e-tests/playwright/lib/src/file.ts rename e2e-tests/playwright/{support => lib/src}/flag.ts (89%) rename e2e-tests/playwright/{ => lib/src}/global_setup.ts (87%) create mode 100644 e2e-tests/playwright/lib/src/index.ts rename e2e-tests/playwright/{support => lib/src}/mock_browser_api.ts (100%) rename e2e-tests/playwright/{support => lib/src}/server/channel.ts (95%) create mode 100644 e2e-tests/playwright/lib/src/server/client.ts rename e2e-tests/playwright/{support => lib/src}/server/default_config.ts (99%) rename e2e-tests/playwright/{support => lib/src}/server/index.ts (82%) rename e2e-tests/playwright/{support => lib/src}/server/init.ts (92%) rename e2e-tests/playwright/{support => lib/src}/server/post.ts (95%) rename e2e-tests/playwright/{support => lib/src}/server/team.ts (91%) rename e2e-tests/playwright/{support => lib/src}/server/user.ts (90%) rename e2e-tests/playwright/{support => lib/src}/test_action.ts (90%) create mode 100644 e2e-tests/playwright/lib/src/test_config.ts rename e2e-tests/playwright/{support => lib/src}/test_fixture.ts (81%) rename e2e-tests/playwright/{ => lib/src}/types.ts (87%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/app_bar.ts (86%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/center_view.ts (82%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/delete_post_confirmation_dialog.ts (92%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/delete_post_modal.ts (89%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/emoji_gif_picker.ts (95%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/find_channels_modal.ts (87%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/generic_confirm_modal.ts (94%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/header.ts (82%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/message_priority.ts (97%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/post.ts (85%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/post_create.ts (76%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/post_dot_menu.ts (95%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/post_edit.ts (82%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/post_menu.ts (96%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/post_reminder_menu.ts (91%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/restore_post_confirmation_dialog.ts (90%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/scheduled_draft_menu.ts (88%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/scheduled_draft_modal.ts (97%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/search_popover.ts (95%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/settings/notification_settings.ts (95%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/settings/settings_modal.ts (87%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/sidebar_left.ts (95%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/sidebar_right.ts (85%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/thread_footer.ts (89%) rename e2e-tests/playwright/{support => lib/src}/ui/components/channels/user_profile_popover.ts (85%) rename e2e-tests/playwright/{support => lib/src}/ui/components/footer.ts (92%) rename e2e-tests/playwright/{support => lib/src}/ui/components/global_header.ts (95%) create mode 100644 e2e-tests/playwright/lib/src/ui/components/index.ts rename e2e-tests/playwright/{support => lib/src}/ui/components/main_header.ts (87%) rename e2e-tests/playwright/{support => lib/src}/ui/components/system_console/navbar.ts (81%) rename e2e-tests/playwright/{support => lib/src}/ui/components/system_console/sections/system_users/column_toggle_menu.ts (90%) rename e2e-tests/playwright/{support => lib/src}/ui/components/system_console/sections/system_users/feature_discovery.ts (95%) rename e2e-tests/playwright/{support => lib/src}/ui/components/system_console/sections/system_users/filter_menu.ts (89%) rename e2e-tests/playwright/{support => lib/src}/ui/components/system_console/sections/system_users/filter_popover.ts (93%) rename e2e-tests/playwright/{support => lib/src}/ui/components/system_console/sections/system_users/mobile_security.ts (99%) rename e2e-tests/playwright/{support => lib/src}/ui/components/system_console/sections/system_users/system_users.ts (98%) rename e2e-tests/playwright/{support => lib/src}/ui/components/system_console/sidebar.ts (92%) rename e2e-tests/playwright/{support => lib/src}/ui/pages/channels.ts (95%) rename e2e-tests/playwright/{support => lib/src}/ui/pages/drafts.ts (98%) create mode 100644 e2e-tests/playwright/lib/src/ui/pages/index.ts rename e2e-tests/playwright/{support => lib/src}/ui/pages/landing_login.ts (93%) rename e2e-tests/playwright/{support => lib/src}/ui/pages/login.ts (95%) rename e2e-tests/playwright/{support => lib/src}/ui/pages/reset_password.ts (91%) rename e2e-tests/playwright/{support => lib/src}/ui/pages/scheduled_draft.ts (98%) rename e2e-tests/playwright/{support => lib/src}/ui/pages/signup.ts (95%) rename e2e-tests/playwright/{support => lib/src}/ui/pages/system_console.ts (91%) rename e2e-tests/playwright/{support => lib/src}/util.ts (100%) rename e2e-tests/playwright/{support => lib/src}/visual/index.ts (87%) rename e2e-tests/playwright/{support => lib/src}/visual/percy.ts (90%) create mode 100644 e2e-tests/playwright/lib/tsconfig.json delete mode 100644 e2e-tests/playwright/support/file.ts delete mode 100644 e2e-tests/playwright/support/server/client.ts delete mode 100644 e2e-tests/playwright/support/ui/components/index.ts delete mode 100644 e2e-tests/playwright/support/ui/pages/index.ts delete mode 100644 e2e-tests/playwright/test.config.ts rename e2e-tests/playwright/{ => test}/.percy.yml (100%) rename e2e-tests/playwright/{ => test}/README.md (71%) rename e2e-tests/playwright/{support => test}/asset/archive.zip (100%) create mode 100644 e2e-tests/playwright/test/asset/mattermost-icon_128x128.png rename e2e-tests/playwright/{support => test}/asset/mattermost.png (100%) rename e2e-tests/playwright/{support => test}/asset/sample_text_file.txt (100%) create mode 100644 e2e-tests/playwright/test/global_setup.ts create mode 100644 e2e-tests/playwright/test/package.json rename e2e-tests/playwright/{ => test}/playwright.config.ts (93%) rename e2e-tests/playwright/{ => test}/sample.env (100%) rename e2e-tests/playwright/{ => test}/script/post_install.sh (100%) rename e2e-tests/playwright/{tests => test/specs}/accessibility/channels/intro_channel.spec.ts (99%) rename e2e-tests/playwright/{tests => test/specs}/accessibility/common/login.spec.ts (98%) rename e2e-tests/playwright/{tests => test/specs}/accessibility/common/reset_password.spec.ts (97%) rename e2e-tests/playwright/{tests => test/specs}/accessibility/common/signup_user_complete.spec.ts (98%) rename e2e-tests/playwright/{tests => test/specs}/client/schema.ts (100%) rename e2e-tests/playwright/{tests => test/specs}/client/upload_file.spec.ts (84%) rename e2e-tests/playwright/{tests => test/specs}/functional/channels/account_settings/profile/popover_fields.spec.ts (93%) rename e2e-tests/playwright/{tests => test/specs}/functional/channels/drafts/drafts_on_deleted_message.spec.ts (96%) rename e2e-tests/playwright/{tests => test/specs}/functional/channels/edit_file_attachments/edit_file_attachment.spec.ts (97%) rename e2e-tests/playwright/{tests => test/specs}/functional/channels/gif_picker/gif_picker_search.spec.ts (98%) rename e2e-tests/playwright/{tests => test/specs}/functional/channels/message_priority/standard_priority.spec.ts (78%) rename e2e-tests/playwright/{tests => test/specs}/functional/channels/notifications/notification.spec.ts (98%) rename e2e-tests/playwright/{tests => test/specs}/functional/channels/scheduled_drafts/create_scheduled_draft.spec.ts (93%) rename e2e-tests/playwright/{tests => test/specs}/functional/channels/search/find_channels.spec.ts (91%) rename e2e-tests/playwright/{tests => test/specs}/functional/channels/search/search_box_suggestions.spec.ts (97%) rename e2e-tests/playwright/{tests => test/specs}/functional/channels/search/team_selector.spec.ts (91%) rename e2e-tests/playwright/{tests => test/specs}/functional/channels/settings/notifications/highlight_without_notification.spec.ts (96%) rename e2e-tests/playwright/{tests => test/specs}/functional/system_console/desktop_landing.spec.ts (85%) rename e2e-tests/playwright/{tests => test/specs}/functional/system_console/mobile_security.spec.ts (92%) rename e2e-tests/playwright/{tests => test/specs}/functional/system_console/system_users/actions.spec.ts (91%) rename e2e-tests/playwright/{tests => test/specs}/functional/system_console/system_users/column_sort.spec.ts (87%) rename e2e-tests/playwright/{tests => test/specs}/functional/system_console/system_users/column_toggler.spec.ts (98%) rename e2e-tests/playwright/{tests => test/specs}/functional/system_console/system_users/export_data.spec.ts (88%) rename e2e-tests/playwright/{tests => test/specs}/functional/system_console/system_users/filter_popover.spec.ts (89%) rename e2e-tests/playwright/{tests => test/specs}/functional/system_console/system_users/search.spec.ts (85%) rename e2e-tests/playwright/{tests => test/specs}/visual/channels/intro_channel.spec.ts (83%) create mode 100644 e2e-tests/playwright/test/specs/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-chrome-linux.png create mode 100644 e2e-tests/playwright/test/specs/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-firefox-linux.png create mode 100644 e2e-tests/playwright/test/specs/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-ipad-linux.png rename e2e-tests/playwright/{tests => test/specs}/visual/common/landing_page.spec.ts (89%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/landing_page.spec.ts-snapshots/landing-login-chrome-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/landing_page.spec.ts-snapshots/landing-login-firefox-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/landing_page.spec.ts-snapshots/landing-login-ipad-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/login.spec.ts (96%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/login.spec.ts-snapshots/login-chrome-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/login.spec.ts-snapshots/login-error-chrome-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/login.spec.ts-snapshots/login-error-firefox-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/login.spec.ts-snapshots/login-error-free-edition-chrome-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/login.spec.ts-snapshots/login-error-free-edition-firefox-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/login.spec.ts-snapshots/login-error-free-edition-ipad-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/login.spec.ts-snapshots/login-error-ipad-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/login.spec.ts-snapshots/login-firefox-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/login.spec.ts-snapshots/login-free-edition-chrome-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/login.spec.ts-snapshots/login-free-edition-firefox-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/login.spec.ts-snapshots/login-free-edition-ipad-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/login.spec.ts-snapshots/login-ipad-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/signup_email.spec.ts (96%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/signup_email.spec.ts-snapshots/signup-email-chrome-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/signup_email.spec.ts-snapshots/signup-email-error-chrome-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/signup_email.spec.ts-snapshots/signup-email-error-firefox-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/signup_email.spec.ts-snapshots/signup-email-error-free-edition-chrome-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/signup_email.spec.ts-snapshots/signup-email-error-free-edition-firefox-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/signup_email.spec.ts-snapshots/signup-email-error-free-edition-ipad-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/signup_email.spec.ts-snapshots/signup-email-error-ipad-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/signup_email.spec.ts-snapshots/signup-email-firefox-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/signup_email.spec.ts-snapshots/signup-email-free-edition-chrome-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/signup_email.spec.ts-snapshots/signup-email-free-edition-firefox-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/signup_email.spec.ts-snapshots/signup-email-free-edition-ipad-linux.png (100%) rename e2e-tests/playwright/{tests => test/specs}/visual/common/signup_email.spec.ts-snapshots/signup-email-ipad-linux.png (100%) create mode 100644 e2e-tests/playwright/test/tsconfig.json delete mode 100644 e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-chrome-linux.png delete mode 100644 e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-firefox-linux.png delete mode 100644 e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-ipad-linux.png delete mode 100644 e2e-tests/playwright/tsconfig.json diff --git a/.github/workflows/e2e-fulltests-ci.yml b/.github/workflows/e2e-fulltests-ci.yml index c8e2d0c5d6..4a800565b4 100644 --- a/.github/workflows/e2e-fulltests-ci.yml +++ b/.github/workflows/e2e-fulltests-ci.yml @@ -70,7 +70,7 @@ jobs: SERVER: "${{ steps.generate.outputs.SERVER }}" ENABLED_DOCKER_SERVICES: "${{ steps.generate.outputs.ENABLED_DOCKER_SERVICES }}" TEST_FILTER_CYPRESS: "${{ steps.generate.outputs.TEST_FILTER_CYPRESS }}" - TEST_FILTER_PLAYWRIGHT: "tests/ --project=chrome" # Note: Run on chrome but eventually will enable to all projects which include firefox and ipad. + TEST_FILTER_PLAYWRIGHT: "tests" BUILD_ID: "${{ steps.generate.outputs.BUILD_ID }}" TM4J_ENABLE: "${{ steps.generate.outputs.TM4J_ENABLE }}" REPORT_TYPE: "${{ steps.generate.outputs.REPORT_TYPE }}" diff --git a/e2e-tests/.ci/.e2erc b/e2e-tests/.ci/.e2erc index e9e263eb30..60dc5937eb 100644 --- a/e2e-tests/.ci/.e2erc +++ b/e2e-tests/.ci/.e2erc @@ -98,7 +98,7 @@ case "${TEST:-$TEST_DEFAULT}" in cypress ) export TEST_FILTER_DEFAULT='--stage=@prod --group=@smoke' ;; playwright ) - export TEST_FILTER_DEFAULT='tests/functional/system_console/system_users/actions.spec.ts --project=chrome' ;; + export TEST_FILTER_DEFAULT='functional/system_console/system_users/actions.spec.ts' ;; * ) export TEST_FILTER_DEFAULT='' ;; esac diff --git a/e2e-tests/.ci/report.publish.sh b/e2e-tests/.ci/report.publish.sh index 31e7076c57..01f48ab3b7 100755 --- a/e2e-tests/.ci/report.publish.sh +++ b/e2e-tests/.ci/report.publish.sh @@ -105,7 +105,7 @@ case "$TEST" in if [ -n "$WEBHOOK_URL" ]; then PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm i # Utilize environment data and report files to generate the webhook body - ./report.webhookgen.js | curl -X POST -fsSL -H 'Content-Type: application/json' -d @- "$WEBHOOK_URL" + node report.webhookgen.js | curl -X POST -fsSL -H 'Content-Type: application/json' -d @- "$WEBHOOK_URL" fi ;; esac diff --git a/e2e-tests/.ci/server.generate.sh b/e2e-tests/.ci/server.generate.sh index 4ae5cdf895..1ee1288bf2 100755 --- a/e2e-tests/.ci/server.generate.sh +++ b/e2e-tests/.ci/server.generate.sh @@ -276,7 +276,7 @@ $(if mme2e_is_token_in_list "webhook-interactions" "$ENABLED_DOCKER_SERVICES"; t $(if mme2e_is_token_in_list "playwright" "$ENABLED_DOCKER_SERVICES"; then echo ' playwright: - image: mcr.microsoft.com/playwright:v1.49.1-noble + image: mcr.microsoft.com/playwright:v1.51.1-noble entrypoint: ["/bin/bash", "-c"] command: ["until [ -f /var/run/mm_terminate ]; do sleep 5; done"] env_file: diff --git a/e2e-tests/.ci/server.run_playwright.sh b/e2e-tests/.ci/server.run_playwright.sh index 1c1d252ffc..a103bb1318 100755 --- a/e2e-tests/.ci/server.run_playwright.sh +++ b/e2e-tests/.ci/server.run_playwright.sh @@ -37,13 +37,18 @@ EOF # Run Playwright test # NB: do not exit the script if some testcases fail -${MME2E_DC_SERVER} exec -i -u "$MME2E_UID" -- playwright bash -c "cd e2e-tests/playwright && npm run test -- ${TEST_FILTER}" | tee ../playwright/logs/playwright.log || true +${MME2E_DC_SERVER} exec -i -u "$MME2E_UID" -- playwright bash -c "cd e2e-tests/playwright && npm run test:ci -- ${TEST_FILTER}" | tee ../playwright/logs/playwright.log || true # Collect run results # Documentation on the results.json file: https://playwright.dev/docs/api/class-testcase#test-case-expected-status # NB: the following line is needed only for compatibility reasons, to support RollingRelease tests for versions prior to v10.1.0 # It can be removed after releases <=v10.0.x are phased out mv -v ../playwright/playwright-report/results.json ../playwright/results/reporter/results.json 2>/dev/null || true + +# NB: the following line is needed only for compatibility reasons, to support RollingRelease tests for versions prior to v10.6.0 +# It can be removed once 10.5 (ESR) is no longer supported +mv -v ../playwright/test/results/ ../playwright/ 2>/dev/null || true + jq -f /dev/stdin ../playwright/results/reporter/results.json > ../playwright/results/summary.json < ({ - ...config, - files: ['**/*.ts', '**/*.s'], - })), + ...compat + .extends('eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:import/recommended') + .map((config) => ({ + ...config, + files: ['**/*.ts', '**/*.js'], + })), { - files: ['**/*.ts', '**/*.s'], + files: ['**/*.ts', '**/*.js'], plugins: { '@typescript-eslint': typescriptEslint, + header: eslintPluginHeader, }, languageOptions: { globals: { @@ -35,11 +41,31 @@ export default [ ecmaVersion: 5, sourceType: 'module', }, + settings: { + 'import/resolver': { + typescript: true, + node: true, + }, + }, rules: { '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-var-requires': 'off', 'no-console': 'error', + 'header/header': [ + 'error', + 'line', + ' Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n See LICENSE.txt for license information.', + 2, + ], + 'import/order': [ + 'error', + { + 'newlines-between': 'always', + groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'], + }, + ], + 'import/no-unresolved': 'off', }, }, ]; diff --git a/e2e-tests/playwright/lib/README.md b/e2e-tests/playwright/lib/README.md new file mode 100644 index 0000000000..8bb098ba71 --- /dev/null +++ b/e2e-tests/playwright/lib/README.md @@ -0,0 +1,214 @@ +# @mattermost/playwright-lib + +A comprehensive end-to-end testing library for Mattermost web, desktop and plugin applications using Playwright. + +## Overview + +This library provides: + +- Pre-built page objects and components for common Mattermost UI elements +- Server configuration and initialization utilities +- Test fixtures and helpers +- Visual testing support with Percy integration +- Accessibility testing support with [axe-core](https://github.com/dequelabs/axe-core) +- Browser notification mocking +- File handling utilities +- Common test actions and assertions + +## Installation + +```bash +npm install @mattermost/playwright-lib +``` + +## Usage + +Basic example of logging in and posting a message: + +```typescript +import {test, expect} from '@mattermost/playwright-lib'; + +test('user can post message', async ({pw}) => { + // # Create and login a new user + const {user} = await pw.initSetup(); + const {channelsPage} = await pw.testBrowser.login(user); + + // # Navigate and post a message + await channelsPage.goto(); + const message = 'Hello World!'; + await channelsPage.postMessage(message); + + // * Verify message appears + const lastPost = await channelsPage.getLastPost(); + await expect(lastPost).toHaveText(message); +}); +``` + +## Key Components + +### Page Objects + +Ready-to-use page objects for common Mattermost pages: + +- Login +- Signup +- Channels +- System Console +- And more... + +### UI Components + +Reusable component objects for UI elements: + +- Headers +- Posts +- Menus +- Modals +- And more... + +### Test Utilities + +Helper functions for common testing needs: + +- Server setup and configuration +- User/team creation +- File handling +- Visual testing +- And more... + +## Configuration + +The library can be configured via optional environment variables: + +### Environment Variables + +All environment variables are optional with sensible defaults. + +#### Server Configuration + +| Variable | Description | Default | +| ----------------------------- | ------------------------------------------ | -------------------------------- | +| `PW_BASE_URL` | Server URL | `http://localhost:8065` | +| `PW_ADMIN_USERNAME` | Admin username | `sysadmin` | +| `PW_ADMIN_PASSWORD` | Admin password | `Sys@dmin-sample1` | +| `PW_ADMIN_EMAIL` | Admin email | `sysadmin@sample.mattermost.com` | +| `PW_ENSURE_PLUGINS_INSTALLED` | Comma-separated list of plugins to install | `[]` | +| `PW_RESET_BEFORE_TEST` | Reset server before test | `false` | + +#### High Availability Cluster Settings + +| Variable | Description | Default | +| -------------------------- | ----------------------- | ---------------- | +| `PW_HA_CLUSTER_ENABLED` | Enable HA cluster | `false` | +| `PW_HA_CLUSTER_NODE_COUNT` | Number of cluster nodes | `2` | +| `PW_HA_CLUSTER_NAME` | Cluster name | `mm_dev_cluster` | + +#### Push Notifications + +| Variable | Description | Default | +| ----------------------------- | ---------------------------- | ---------------------------------- | +| `PW_PUSH_NOTIFICATION_SERVER` | Push notification server URL | `https://push-test.mattermost.com` | + +#### Playwright Settings + +| Variable | Description | Default | +| ------------- | ------------------------------- | ------- | +| `PW_HEADLESS` | Run tests headless | `true` | +| `PW_SLOWMO` | Add delay between actions in ms | `0` | +| `PW_WORKERS` | Number of parallel workers | `1` | + +#### Visual Testing + +| Variable | Description | Default | +| -------------------- | --------------------------- | ------- | +| `PW_SNAPSHOT_ENABLE` | Enable snapshot testing | `false` | +| `PW_PERCY_ENABLE` | Enable Percy visual testing | `false` | + +#### CI Settings + +| Variable | Description | Default | +| -------- | ------------------------------------ | ------- | +| `CI` | Set automatically in CI environments | N/A | + +## Accessibility Testing + +The library includes built-in accessibility testing using [axe-core](https://github.com/dequelabs/axe-core): + +```typescript +import {test, expect} from '@mattermost/playwright-lib'; + +test('verify login page accessibility', async ({page, axe}) => { + // # Navigate to login page + await page.goto('/login'); + + // # Run accessibility scan + const results = await axe.builder(page).analyze(); + + // * Verify no accessibility violations + expect(results.violations).toHaveLength(0); +}); +``` + +The axe-core integration: + +- Runs WCAG 2.0 Level A & AA rules by default +- Provides detailed violation reports +- Supports rule customization +- Can be configured per-test or globally + +## Visual Testing + +The library supports visual testing through [Playwright's built-in visual comparisons](https://playwright.dev/docs/test-snapshots) and [Percy](https://www.browserstack.com/percy) integration: + +```typescript +import {test, expect} from '@mattermost/playwright-lib'; + +test('verify channel header appearance', async ({pw, browserName, viewport}, testInfo) => { + // # Setup and login + const {user} = await pw.initSetup(); + const {page, channelsPage} = await pw.testBrowser.login(user); + + // # Navigate and prepare page + await channelsPage.goto(); + await expect(channelsPage.appBar.playbooksIcon).toBeVisible(); + await pw.hideDynamicChannelsContent(page); + + // * Take and verify snapshot + await pw.matchSnapshot(testInfo, {page, browserName, viewport}); +}); +``` + +## Browser Notifications + +Mock and verify browser notifications: + +```typescript +import {test, expect} from '@mattermost/playwright-lib'; + +test('verify notification on mention', async ({pw}) => { + // # Setup users and team + const {team, adminUser, user} = await pw.initSetup(); + + // # Setup admin browser with notifications + const {page: adminPage, channelsPage: adminChannelsPage} = await pw.testBrowser.login(adminUser); + await adminChannelsPage.goto(team.name, 'town-square'); + await pw.stubNotification(adminPage, 'granted'); + + // # Setup user browser and post mention + const {channelsPage: userChannelsPage} = await pw.testBrowser.login(user); + await userChannelsPage.goto(team.name, 'off-topic'); + await userChannelsPage.postMessage(`@ALL good morning, ${team.name}!`); + + // * Verify notification received + const notifications = await pw.waitForNotification(adminPage); + expect(notifications.length).toBe(1); +}); +``` + +## Contributing + +See [CONTRIBUTING.md](https://github.com/mattermost/mattermost/blob/master/CONTRIBUTING.md) for development setup and guidelines. + +## License + +See [LICENSE.txt](https://github.com/mattermost/mattermost/blob/master/LICENSE.txt) for license information. diff --git a/e2e-tests/playwright/lib/package.json b/e2e-tests/playwright/lib/package.json new file mode 100644 index 0000000000..aa9de2fb5b --- /dev/null +++ b/e2e-tests/playwright/lib/package.json @@ -0,0 +1,68 @@ +{ + "name": "@mattermost/playwright-lib", + "version": "10.6.1", + "description": "A comprehensive end-to-end testing library for Mattermost web, desktop and plugin applications using Playwright", + "repository": { + "type": "git", + "url": "git+https://github.com/mattermost/mattermost.git" + }, + "author": "mattermost", + "license": "MIT", + "bugs": { + "url": "https://github.com/mattermost/mattermost/issues" + }, + "homepage": "https://github.com/mattermost/mattermost/tree/master/e2e-tests/playwright/lib#readme", + "type": "commonjs", + "files": [ + "dist" + ], + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.js" + } + }, + "keywords": [ + "mattermost", + "e2e", + "playwright", + "test-automation" + ], + "scripts": { + "build": "rollup -c --bundleConfigAsCjs", + "build:watch": "npm run build -- --watch", + "build-tsc": "tsc --build --verbose", + "build-tsc:watch": "tsc --watch --preserveWatchOutput", + "clean": "rm -rf dist node_modules *.tsbuildinfo", + "tsc": "tsc -b" + }, + "publishConfig": { + "access": "public" + }, + "dependencies": { + "@axe-core/playwright": "4.10.1", + "@mattermost/client": "file:../../../webapp/platform/client", + "@mattermost/types": "file:../../../webapp/platform/types", + "@percy/cli": "1.30.7", + "@percy/playwright": "1.0.7", + "async-wait-until": "2.0.23", + "axe-core": "4.10.3", + "deepmerge": "4.3.1", + "dotenv": "16.4.7", + "mime-types": "3.0.1", + "uuid": "11.1.0" + }, + "devDependencies": { + "@rollup/plugin-typescript": "12.1.2", + "@types/mime-types": "2.1.4", + "@types/node": "22.13.14", + "@types/react": "19.0.12", + "rollup": "4.38.0", + "rollup-plugin-copy": "3.5.0" + }, + "peerDependencies": { + "@playwright/test": "1.51.1" + } +} diff --git a/e2e-tests/playwright/lib/rollup.config.js b/e2e-tests/playwright/lib/rollup.config.js new file mode 100644 index 0000000000..e5e2f5760b --- /dev/null +++ b/e2e-tests/playwright/lib/rollup.config.js @@ -0,0 +1,41 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import typescript from '@rollup/plugin-typescript'; +import copy from 'rollup-plugin-copy'; + +export default { + input: 'src/index.ts', + output: [ + { + dir: 'dist', + format: 'cjs', // CommonJS for Playwright + sourcemap: true, + preserveModules: true, // Keep file structure + preserveModulesRoot: 'src', + }, + ], + plugins: [ + typescript(), + copy({ + targets: [{src: 'src/asset/**/*', dest: 'dist/asset'}], // Copy assets to dist/ + }), + ], + external: [ + '@playwright/test', + '@mattermost/client', + '@mattermost/types/config', + '@axe-core/playwright', + '@percy/playwright', + 'dotenv', + 'node:fs/promises', + 'node:path', + 'node:fs', + 'node:os', + 'mime-types', + 'uuid', + 'async-wait-until', + 'chalk', + 'deepmerge', + ], +}; diff --git a/e2e-tests/playwright/support/asset/mattermost-icon_128x128.png b/e2e-tests/playwright/lib/src/asset/mattermost-icon_128x128.png similarity index 100% rename from e2e-tests/playwright/support/asset/mattermost-icon_128x128.png rename to e2e-tests/playwright/lib/src/asset/mattermost-icon_128x128.png diff --git a/e2e-tests/playwright/support/browser_context.ts b/e2e-tests/playwright/lib/src/browser_context.ts similarity index 94% rename from e2e-tests/playwright/support/browser_context.ts rename to e2e-tests/playwright/lib/src/browser_context.ts index ab1f5995ef..3b23a6b149 100644 --- a/e2e-tests/playwright/support/browser_context.ts +++ b/e2e-tests/playwright/lib/src/browser_context.ts @@ -3,11 +3,11 @@ import {writeFile} from 'node:fs/promises'; -import {request, Browser, BrowserContext} from '@playwright/test'; - +import {Browser, BrowserContext, request} from '@playwright/test'; import {UserProfile} from '@mattermost/types/users'; -import testConfig from '@e2e-test.config'; -import pages from '@e2e-support/ui/pages'; + +import {testConfig} from './test_config'; +import {pages} from './ui/pages'; export class TestBrowser { readonly browser: Browser; diff --git a/e2e-tests/playwright/support/constant.ts b/e2e-tests/playwright/lib/src/constant.ts similarity index 100% rename from e2e-tests/playwright/support/constant.ts rename to e2e-tests/playwright/lib/src/constant.ts diff --git a/e2e-tests/playwright/lib/src/file.ts b/e2e-tests/playwright/lib/src/file.ts new file mode 100644 index 0000000000..f84e6603f6 --- /dev/null +++ b/e2e-tests/playwright/lib/src/file.ts @@ -0,0 +1,93 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import path from 'node:path'; +import fs from 'node:fs'; + +import mime from 'mime-types'; + +const commonAssetPath = path.resolve(__dirname, 'asset'); +export const assetPath = path.resolve(process.cwd(), 'asset'); + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +const availableFiles = ['mattermost-icon_128x128.png'] as const; +type AvailableFilename = (typeof availableFiles)[number]; + +/** + * Reads file data and creates a File object. + * @param filePath - The path to the file. + * @returns A File object containing the file data. + * @throws If the file does not exist. + */ +export function getFileData(filePath: string): File { + if (!fs.existsSync(filePath)) { + throw new Error(`File not found at path: ${filePath}`); + } + + const mimeType = mime.lookup(filePath) || undefined; + const fileName = path.basename(filePath); + const fileBuffer = fs.readFileSync(filePath); + + return new File([fileBuffer], fileName, {type: mimeType}); +} + +/** + * Reads file data and creates a Blob object. + * @param filePath - The path to the file. + * @returns A Blob object containing the file data. + * @throws If the file does not exist. + */ +export function getBlobData(filePath: string): Blob { + if (!fs.existsSync(filePath)) { + throw new Error(`File not found at path: ${filePath}`); + } + + const mimeType = mime.lookup(filePath) || undefined; + const fileBuffer = fs.readFileSync(filePath); + + return new Blob([fileBuffer], {type: mimeType}); +} + +/** + * Reads file data from the "asset" directory and creates a File object. + * @param filename - The name of the file in the "asset" directory. + * @returns An object containing a File object + */ +export function getFileFromAsset(filename: string) { + const filePath = path.join(assetPath, filename); + + return getFileData(filePath); +} + +/** + * Reads file data from the "asset" directory and creates a Blob object. + * @param filename - The name of the file in the "asset" directory. + * @returns An object containing a Blob object + */ +export function getBlobFromAsset(filename: string) { + const filePath = path.join(assetPath, filename); + + return getBlobData(filePath); +} + +/** + * Reads file data from the lib "asset" directory and creates a File object. + * @param filename - The name of the file in the "asset" directory. + * @returns An object containing a File object + */ +export function getFileFromCommonAsset(filename: AvailableFilename) { + const filePath = path.join(commonAssetPath, filename); + + return getFileData(filePath); +} + +/** + * Reads file data from the lib "asset" directory and creates a Blob object. + * @param filename - The name of the file in the "asset" directory. + * @returns An object containing a Blob object + */ +export function getBlobFromCommonAsset(filename: AvailableFilename) { + const filePath = path.join(commonAssetPath, filename); + + return getBlobData(filePath); +} diff --git a/e2e-tests/playwright/support/flag.ts b/e2e-tests/playwright/lib/src/flag.ts similarity index 89% rename from e2e-tests/playwright/support/flag.ts rename to e2e-tests/playwright/lib/src/flag.ts index 2f56bb64bc..a1efd4d798 100644 --- a/e2e-tests/playwright/support/flag.ts +++ b/e2e-tests/playwright/lib/src/flag.ts @@ -3,9 +3,8 @@ import os from 'node:os'; -import {expect} from '@playwright/test'; +import {expect, test} from '@playwright/test'; -import {test} from './test_fixture'; import {callsPluginId} from './constant'; import {getAdminClient} from './server/init'; @@ -56,12 +55,17 @@ export async function ensureLicense() { export async function requestTrialLicense() { const {adminClient} = await getAdminClient(); + const admin = await adminClient.getMe(); try { - // @ts-expect-error This may fail requesting for trial license await adminClient.requestTrialLicense({ receive_emails_accepted: true, terms_accepted: true, users: 100, + contact_name: admin.first_name + ' ' + admin.last_name, + contact_email: admin.email, + company_name: 'Mattermost Playwright E2E Tests', + company_size: '101-250', + company_country: 'United States', }); } catch (error) { expect(error, 'Failed to request trial license').toBeFalsy(); diff --git a/e2e-tests/playwright/global_setup.ts b/e2e-tests/playwright/lib/src/global_setup.ts similarity index 87% rename from e2e-tests/playwright/global_setup.ts rename to e2e-tests/playwright/lib/src/global_setup.ts index 25dbf38c53..ae9f81c360 100644 --- a/e2e-tests/playwright/global_setup.ts +++ b/e2e-tests/playwright/lib/src/global_setup.ts @@ -2,21 +2,22 @@ // See LICENSE.txt for license information. import {expect} from '@playwright/test'; - +import {Client4} from '@mattermost/client'; import {UserProfile} from '@mattermost/types/users'; +import {PluginManifest} from '@mattermost/types/plugins'; import {PreferenceType} from '@mattermost/types/preferences'; -import {Client, createRandomTeam, getAdminClient, getDefaultAdminUser, makeClient} from './support/server'; -import {defaultTeam} from './support/util'; -import testConfig from './test.config'; +import {defaultTeam} from './util'; +import {createRandomTeam, getAdminClient, getDefaultAdminUser, makeClient} from './server'; +import {testConfig} from './test_config'; -async function globalSetup() { - let adminClient: Client; +export async function baseGlobalSetup() { + let adminClient: Client4; let adminUser: UserProfile | null; ({adminClient, adminUser} = await getAdminClient({skipLog: true})); if (!adminUser) { - const firstClient = new Client(); + const firstClient = new Client4(); firstClient.setUrl(testConfig.baseURL); const defaultAdmin = getDefaultAdminUser(); await firstClient.createUser(defaultAdmin, '', ''); @@ -25,13 +26,9 @@ async function globalSetup() { } await sysadminSetup(adminClient, adminUser); - - return function () { - // placeholder for teardown setup - }; } -async function sysadminSetup(client: Client, user: UserProfile | null) { +async function sysadminSetup(client: Client4, user: UserProfile | null) { // Ensure admin's email is verified. if (!user) { await client.verifyUserEmail(client.token); @@ -79,7 +76,7 @@ async function sysadminSetup(client: Client, user: UserProfile | null) { await ensureServerDeployment(client); } -async function printLicenseInfo(client: Client) { +async function printLicenseInfo(client: Client4) { const license = await client.getClientLicenseOld(); // eslint-disable-next-line no-console console.log(`Server License: @@ -91,7 +88,7 @@ async function printLicenseInfo(client: Client) { - Users = ${license.Users}`); } -async function printClientInfo(client: Client) { +async function printClientInfo(client: Client4) { const config = await client.getClientConfigOld(); // eslint-disable-next-line no-console console.log(`Build Info: @@ -111,7 +108,7 @@ async function printClientInfo(client: Client) { - LogSettings.EnableDiagnostics = ${LogSettings?.EnableDiagnostics}`); } -export async function ensurePluginsLoaded(client: Client) { +export async function ensurePluginsLoaded(client: Client4) { const pluginStatus = await client.getPluginStatuses(); const plugins = await client.getPlugins(); @@ -123,7 +120,7 @@ export async function ensurePluginsLoaded(client: Client) { return; } - const isActive = plugins.active.some((plugin) => plugin.id === pluginId); + const isActive = plugins.active.some((plugin: PluginManifest) => plugin.id === pluginId); if (!isActive) { await client.enablePlugin(pluginId); @@ -136,7 +133,7 @@ export async function ensurePluginsLoaded(client: Client) { }); } -async function printPluginDetails(client: Client) { +async function printPluginDetails(client: Client4) { const plugins = await client.getPlugins(); if (plugins.active.length) { @@ -144,7 +141,7 @@ async function printPluginDetails(client: Client) { console.log('Active plugins:'); } - plugins.active.forEach((plugin) => { + plugins.active.forEach((plugin: PluginManifest) => { // eslint-disable-next-line no-console console.log(` - ${plugin.id}@${plugin.version} | min_server@${plugin.min_server_version}`); }); @@ -154,7 +151,7 @@ async function printPluginDetails(client: Client) { console.log('Inactive plugins:'); } - plugins.inactive.forEach((plugin) => { + plugins.inactive.forEach((plugin: PluginManifest) => { // eslint-disable-next-line no-console console.log(` - ${plugin.id}@${plugin.version} | min_server@${plugin.min_server_version}`); }); @@ -163,7 +160,7 @@ async function printPluginDetails(client: Client) { console.log(''); } -async function ensureServerDeployment(client: Client) { +async function ensureServerDeployment(client: Client4) { if (testConfig.haClusterEnabled) { const {haClusterNodeCount, haClusterName} = testConfig; @@ -194,7 +191,7 @@ async function ensureServerDeployment(client: Client) { } } -async function savePreferences(client: Client, userId: UserProfile['id']) { +async function savePreferences(client: Client4, userId: UserProfile['id']) { try { if (!userId) { throw new Error('userId is not defined'); @@ -211,5 +208,3 @@ async function savePreferences(client: Client, userId: UserProfile['id']) { console.log('Error saving preferences', error); } } - -export default globalSetup; diff --git a/e2e-tests/playwright/lib/src/index.ts b/e2e-tests/playwright/lib/src/index.ts new file mode 100644 index 0000000000..75c342614b --- /dev/null +++ b/e2e-tests/playwright/lib/src/index.ts @@ -0,0 +1,22 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +export {test, expect, PlaywrightExtended} from './test_fixture'; +export {testConfig} from './test_config'; +export {baseGlobalSetup} from './global_setup'; +export {TestBrowser} from './browser_context'; +export {getBlobFromAsset, getFileFromAsset} from './file'; +export {duration, wait} from './util'; + +export { + ChannelsPage, + LandingLoginPage, + LoginPage, + ResetPasswordPage, + SignupPage, + ScheduledDraftPage, + SystemConsolePage, + DraftPage, +} from './ui/pages'; + +export {TestArgs, ScreenshotOptions} from './types'; diff --git a/e2e-tests/playwright/support/mock_browser_api.ts b/e2e-tests/playwright/lib/src/mock_browser_api.ts similarity index 100% rename from e2e-tests/playwright/support/mock_browser_api.ts rename to e2e-tests/playwright/lib/src/mock_browser_api.ts diff --git a/e2e-tests/playwright/support/server/channel.ts b/e2e-tests/playwright/lib/src/server/channel.ts similarity index 95% rename from e2e-tests/playwright/support/server/channel.ts rename to e2e-tests/playwright/lib/src/server/channel.ts index 44293f341f..e0b46450ff 100644 --- a/e2e-tests/playwright/support/server/channel.ts +++ b/e2e-tests/playwright/lib/src/server/channel.ts @@ -1,9 +1,10 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {getRandomId} from '@e2e-support/util'; import {Channel, ChannelType} from '@mattermost/types/channels'; +import {getRandomId} from '@/util'; + type ChannelInput = { teamId: string; name: string; diff --git a/e2e-tests/playwright/lib/src/server/client.ts b/e2e-tests/playwright/lib/src/server/client.ts new file mode 100644 index 0000000000..98543aaea8 --- /dev/null +++ b/e2e-tests/playwright/lib/src/server/client.ts @@ -0,0 +1,58 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import {Client4} from '@mattermost/client'; +import {UserProfile} from '@mattermost/types/users'; + +import {testConfig} from '@/test_config'; + +// Variable to hold cache +const clients: Record = {}; + +export async function makeClient( + userRequest?: UserRequest, + opts: {useCache?: boolean; skipLog?: boolean} = {useCache: true, skipLog: false}, +): Promise { + const client = new Client4(); + client.setUrl(testConfig.baseURL); + + try { + if (!userRequest) { + return {client, user: null}; + } + + const cacheKey = userRequest.username + userRequest.password; + if (opts?.useCache && clients[cacheKey] != null) { + return clients[cacheKey]; + } + + const userProfile = await client.login(userRequest.username, userRequest.password); + const user = {...userProfile, password: userRequest.password}; + + if (opts?.useCache) { + clients[cacheKey] = {client, user}; + } + + return {client, user}; + } catch (err) { + if (!opts?.skipLog) { + // log an error for debugging + // eslint-disable-next-line no-console + console.log('makeClient', err); + } + return {client, user: null}; + } +} + +// Client types + +type UserRequest = { + username: string; + email?: string; + password: string; +}; + +type ClientCache = { + client: Client4; + user: UserProfile | null; +}; diff --git a/e2e-tests/playwright/support/server/default_config.ts b/e2e-tests/playwright/lib/src/server/default_config.ts similarity index 99% rename from e2e-tests/playwright/support/server/default_config.ts rename to e2e-tests/playwright/lib/src/server/default_config.ts index e55832a8b1..3088892c13 100644 --- a/e2e-tests/playwright/support/server/default_config.ts +++ b/e2e-tests/playwright/lib/src/server/default_config.ts @@ -2,7 +2,6 @@ // See LICENSE.txt for license information. import merge from 'deepmerge'; - import { AdminConfig, ClusterSettings, @@ -15,7 +14,8 @@ import { ServiceSettings, TeamSettings, } from '@mattermost/types/config'; -import testConfig from '@e2e-test.config'; + +import {testConfig} from '@/test_config'; export function getOnPremServerConfig(): AdminConfig { return merge(defaultServerConfig, onPremServerConfig() as AdminConfig); diff --git a/e2e-tests/playwright/support/server/index.ts b/e2e-tests/playwright/lib/src/server/index.ts similarity index 82% rename from e2e-tests/playwright/support/server/index.ts rename to e2e-tests/playwright/lib/src/server/index.ts index 1da928b60c..dd0d3b08fd 100644 --- a/e2e-tests/playwright/support/server/index.ts +++ b/e2e-tests/playwright/lib/src/server/index.ts @@ -1,9 +1,10 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -export {Client, makeClient} from './client'; +export {makeClient} from './client'; export {createRandomChannel} from './channel'; export {getOnPremServerConfig} from './default_config'; export {initSetup, getAdminClient} from './init'; +export {createRandomPost} from './post'; export {createRandomTeam} from './team'; export {createRandomUser, getDefaultAdminUser} from './user'; diff --git a/e2e-tests/playwright/support/server/init.ts b/e2e-tests/playwright/lib/src/server/init.ts similarity index 92% rename from e2e-tests/playwright/support/server/init.ts rename to e2e-tests/playwright/lib/src/server/init.ts index 7dfced0d57..9dccf71c23 100644 --- a/e2e-tests/playwright/support/server/init.ts +++ b/e2e-tests/playwright/lib/src/server/init.ts @@ -2,16 +2,16 @@ // See LICENSE.txt for license information. import {expect} from '@playwright/test'; - import {PreferenceType} from '@mattermost/types/preferences'; -import testConfig from '@e2e-test.config'; -import {getFileDataFromAsset} from '@e2e-support/file'; -import {makeClient} from '.'; +import {makeClient} from './client'; import {getOnPremServerConfig} from './default_config'; import {createRandomTeam} from './team'; import {createRandomUser} from './user'; +import {getFileFromCommonAsset} from '@/file'; +import {testConfig} from '@/test_config'; + export async function initSetup({ userPrefix = 'user', teamPrefix = {name: 'team', displayName: 'Team'}, @@ -30,7 +30,7 @@ export async function initSetup({ } // Reset server config - const adminConfig = await adminClient.updateConfig(getOnPremServerConfig()); + const adminConfig = await adminClient.updateConfig(getOnPremServerConfig() as any); // Create new team const team = await adminClient.createTeam(createRandomTeam(teamPrefix.name, teamPrefix.displayName)); @@ -45,7 +45,7 @@ export async function initSetup({ const {client: userClient} = await makeClient(user); if (withDefaultProfileImage) { - const {file} = getFileDataFromAsset('mattermost-icon_128x128.png', 'image/png'); + const file = getFileFromCommonAsset('mattermost-icon_128x128.png'); await userClient.uploadProfileImage(user.id, file); } diff --git a/e2e-tests/playwright/support/server/post.ts b/e2e-tests/playwright/lib/src/server/post.ts similarity index 95% rename from e2e-tests/playwright/support/server/post.ts rename to e2e-tests/playwright/lib/src/server/post.ts index 514056fad4..bdd40f9c9b 100644 --- a/e2e-tests/playwright/support/server/post.ts +++ b/e2e-tests/playwright/lib/src/server/post.ts @@ -2,7 +2,8 @@ // See LICENSE.txt for license information. import {Post, PostMetadata} from '@mattermost/types/posts'; -import {getRandomId} from '@e2e-support/util'; + +import {getRandomId} from '@/util'; export function createRandomPost(post?: Partial): Post { if (post && post.channel_id && post.user_id) { diff --git a/e2e-tests/playwright/support/server/team.ts b/e2e-tests/playwright/lib/src/server/team.ts similarity index 91% rename from e2e-tests/playwright/support/server/team.ts rename to e2e-tests/playwright/lib/src/server/team.ts index 63830ec3bb..6e0be52463 100644 --- a/e2e-tests/playwright/support/server/team.ts +++ b/e2e-tests/playwright/lib/src/server/team.ts @@ -2,7 +2,8 @@ // See LICENSE.txt for license information. import {Team, TeamType} from '@mattermost/types/teams'; -import {getRandomId} from '@e2e-support/util'; + +import {getRandomId} from '@/util'; export function createRandomTeam(name = 'team', displayName = 'Team', type: TeamType = 'O', unique = true): Team { const randomSuffix = getRandomId(); diff --git a/e2e-tests/playwright/support/server/user.ts b/e2e-tests/playwright/lib/src/server/user.ts similarity index 90% rename from e2e-tests/playwright/support/server/user.ts rename to e2e-tests/playwright/lib/src/server/user.ts index 16e0f5c58f..6f8c931590 100644 --- a/e2e-tests/playwright/support/server/user.ts +++ b/e2e-tests/playwright/lib/src/server/user.ts @@ -2,8 +2,9 @@ // See LICENSE.txt for license information. import {UserProfile} from '@mattermost/types/users'; -import {getRandomId} from '@e2e-support/util'; -import testConfig from '@e2e-test.config'; + +import {getRandomId} from '@/util'; +import {testConfig} from '@/test_config'; export function createRandomUser(prefix = 'user') { const randomId = getRandomId(); diff --git a/e2e-tests/playwright/support/test_action.ts b/e2e-tests/playwright/lib/src/test_action.ts similarity index 90% rename from e2e-tests/playwright/support/test_action.ts rename to e2e-tests/playwright/lib/src/test_action.ts index 2df488c18a..54fb471f22 100644 --- a/e2e-tests/playwright/support/test_action.ts +++ b/e2e-tests/playwright/lib/src/test_action.ts @@ -2,7 +2,6 @@ // See LICENSE.txt for license information. import {Locator, Page} from '@playwright/test'; - export {waitUntil} from 'async-wait-until'; const visibilityHidden = 'visibility: hidden !important;'; @@ -19,7 +18,3 @@ export async function waitForAnimationEnd(locator: Locator) { Promise.all(element.getAnimations({subtree: true}).map((animation) => animation.finished)), ); } - -export async function moveMouseToCenter(page: Page) { - await page.mouse.move(0, 0); -} diff --git a/e2e-tests/playwright/lib/src/test_config.ts b/e2e-tests/playwright/lib/src/test_config.ts new file mode 100644 index 0000000000..d5134e1d29 --- /dev/null +++ b/e2e-tests/playwright/lib/src/test_config.ts @@ -0,0 +1,63 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import * as dotenv from 'dotenv'; + +dotenv.config(); + +// All process.env should be defined here +export class TestConfig { + baseURL: string; + adminUsername: string; + adminPassword: string; + adminEmail: string; + ensurePluginsInstalled: string[]; + haClusterEnabled: boolean; + haClusterNodeCount: number; + haClusterName: string; + pushNotificationServer: string; + resetBeforeTest: boolean; + isCI: boolean; + headless: boolean; + slowMo: number; + workers: number; + snapshotEnabled: boolean; + percyEnabled: boolean; + + constructor() { + // Server + this.baseURL = process.env.PW_BASE_URL || 'http://localhost:8065'; + this.adminUsername = process.env.PW_ADMIN_USERNAME || 'sysadmin'; + this.adminPassword = process.env.PW_ADMIN_PASSWORD || 'Sys@dmin-sample1'; + this.adminEmail = process.env.PW_ADMIN_EMAIL || 'sysadmin@sample.mattermost.com'; + this.ensurePluginsInstalled = + typeof process.env?.PW_ENSURE_PLUGINS_INSTALLED === 'string' + ? process.env.PW_ENSURE_PLUGINS_INSTALLED.split(',').filter((plugin) => Boolean(plugin)) + : []; + this.haClusterEnabled = parseBool(process.env.PW_HA_CLUSTER_ENABLED, false); + this.haClusterNodeCount = parseNumber(process.env.PW_HA_CLUSTER_NODE_COUNT, 2); + this.haClusterName = process.env.PW_HA_CLUSTER_NAME || 'mm_dev_cluster'; + this.pushNotificationServer = process.env.PW_PUSH_NOTIFICATION_SERVER || 'https://push-test.mattermost.com'; + this.resetBeforeTest = parseBool(process.env.PW_RESET_BEFORE_TEST, false); + // CI + this.isCI = !!process.env.CI; + // Playwright + this.headless = parseBool(process.env.PW_HEADLESS, true); + this.slowMo = parseNumber(process.env.PW_SLOWMO, 0); + this.workers = parseNumber(process.env.PW_WORKERS, 1); + // Visual tests + this.snapshotEnabled = parseBool(process.env.PW_SNAPSHOT_ENABLE, false); + this.percyEnabled = parseBool(process.env.PW_PERCY_ENABLE, false); + } +} + +// Create a singleton instance +export const testConfig = new TestConfig(); + +function parseBool(actualValue: string | undefined, defaultValue: boolean) { + return actualValue ? actualValue === 'true' : defaultValue; +} + +function parseNumber(actualValue: string | undefined, defaultValue: number) { + return actualValue ? parseInt(actualValue, 10) : defaultValue; +} diff --git a/e2e-tests/playwright/support/test_fixture.ts b/e2e-tests/playwright/lib/src/test_fixture.ts similarity index 81% rename from e2e-tests/playwright/support/test_fixture.ts rename to e2e-tests/playwright/lib/src/test_fixture.ts index f78d0c4dbe..3a2a480d70 100644 --- a/e2e-tests/playwright/support/test_fixture.ts +++ b/e2e-tests/playwright/lib/src/test_fixture.ts @@ -1,26 +1,37 @@ -import {test as base, Browser, Page} from '@playwright/test'; +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import {Browser, Page, test as base} from '@playwright/test'; import {AxeResults} from 'axe-core'; -import AxeBuilder from '@axe-core/playwright'; +import {AxeBuilder} from '@axe-core/playwright'; import {TestBrowser} from './browser_context'; import { + ensureLicense, shouldHaveCallsEnabled, shouldHaveFeatureFlag, shouldRunInLinux, - ensureLicense, - skipIfNoLicense, skipIfFeatureFlagNotSet, + skipIfNoLicense, } from './flag'; -import {initSetup, getAdminClient} from './server'; +import {getBlobFromAsset, getFileFromAsset} from './file'; +import { + createRandomChannel, + createRandomPost, + createRandomTeam, + createRandomUser, + getAdminClient, + initSetup, +} from './server'; import {hideDynamicChannelsContent, waitForAnimationEnd, waitUntil} from './test_action'; -import pages from './ui/pages'; +import {pages} from './ui/pages'; import {matchSnapshot} from './visual'; import {stubNotification, waitForNotification} from './mock_browser_api'; -import {duration} from './util'; +import {duration, getRandomId, simpleEmailRe, wait} from './util'; export {expect} from '@playwright/test'; -type ExtendedFixtures = { +export type ExtendedFixtures = { axe: AxeBuilderExtended; pw: PlaywrightExtended; }; @@ -43,7 +54,7 @@ export const test = base.extend({ }, }); -class PlaywrightExtended { +export class PlaywrightExtended { // ./browser_context readonly testBrowser; @@ -55,6 +66,10 @@ class PlaywrightExtended { readonly skipIfNoLicense; readonly skipIfFeatureFlagNotSet; + // ./file + readonly getBlobFromAsset; + readonly getFileFromAsset; + // ./server readonly getAdminClient; readonly initSetup; @@ -64,19 +79,27 @@ class PlaywrightExtended { readonly waitForAnimationEnd; readonly waitUntil; + // ./mock_browser_api + readonly stubNotification; + readonly waitForNotification; + + // ./visual + readonly matchSnapshot; + + // ./util + readonly duration; + readonly simpleEmailRe; + readonly wait; + + // random + readonly random; + // unauthenticated page readonly loginPage; readonly landingLoginPage; readonly signupPage; readonly resetPasswordPage; - // ./visual - readonly matchSnapshot; - - // ./mock_browser_api - readonly stubNotification; - readonly waitForNotification; - readonly hasSeenLandingPage; constructor(browser: Browser, page: Page, isMobile: boolean) { @@ -91,6 +114,10 @@ class PlaywrightExtended { this.skipIfNoLicense = skipIfNoLicense; this.skipIfFeatureFlagNotSet = skipIfFeatureFlagNotSet; + // ./file + this.getBlobFromAsset = getBlobFromAsset; + this.getFileFromAsset = getFileFromAsset; + // ./server this.initSetup = initSetup; this.getAdminClient = getAdminClient; @@ -106,13 +133,26 @@ class PlaywrightExtended { this.signupPage = new pages.SignupPage(page); this.resetPasswordPage = new pages.ResetPasswordPage(page); - // ./visual - this.matchSnapshot = matchSnapshot; - // ./mock_browser_api this.stubNotification = stubNotification; this.waitForNotification = waitForNotification; + // ./visual + this.matchSnapshot = matchSnapshot; + + // ./util + this.duration = duration; + this.wait = wait; + this.simpleEmailRe = simpleEmailRe; + + this.random = { + id: getRandomId, + channel: createRandomChannel, + post: createRandomPost, + team: createRandomTeam, + user: createRandomUser, + }; + this.hasSeenLandingPage = async () => { // Visit the base URL to be able to set the localStorage await page.goto('/'); @@ -121,7 +161,7 @@ class PlaywrightExtended { } } -class AxeBuilderExtended { +export class AxeBuilderExtended { readonly builder: (page: Page, options?: AxeBuilderOptions) => AxeBuilder; // See https://github.com/dequelabs/axe-core/blob/master/doc/API.md#axe-core-tags diff --git a/e2e-tests/playwright/types.ts b/e2e-tests/playwright/lib/src/types.ts similarity index 87% rename from e2e-tests/playwright/types.ts rename to e2e-tests/playwright/lib/src/types.ts index 58d51233b0..04c01a1098 100644 --- a/e2e-tests/playwright/types.ts +++ b/e2e-tests/playwright/lib/src/types.ts @@ -9,29 +9,6 @@ export type TestArgs = { viewport?: ViewportSize | null; }; -export type TestConfig = { - // Server - baseURL: string; - adminUsername: string; - adminPassword: string; - adminEmail: string; - ensurePluginsInstalled: string[]; - resetBeforeTest: boolean; - haClusterEnabled: boolean; - haClusterNodeCount: number; - haClusterName: string; - pushNotificationServer: string; - // CI - isCI: boolean; - // Playwright - headless: boolean; - slowMo: number; - workers: number; - // Visual tests - snapshotEnabled: boolean; - percyEnabled: boolean; -}; - // Based on https://github.com/microsoft/playwright/blob/d6ec1ae3994f127e38b866a231a34efc6a4cac0d/packages/playwright/types/test.d.ts#L5692-L5759 export type ScreenshotOptions = { /** diff --git a/e2e-tests/playwright/support/ui/components/channels/app_bar.ts b/e2e-tests/playwright/lib/src/ui/components/channels/app_bar.ts similarity index 86% rename from e2e-tests/playwright/support/ui/components/channels/app_bar.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/app_bar.ts index 740856d53c..66df135e35 100644 --- a/e2e-tests/playwright/support/ui/components/channels/app_bar.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/app_bar.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class ChannelsAppBar { readonly container: Locator; @@ -18,5 +18,3 @@ export default class ChannelsAppBar { await expect(this.container).toBeVisible(); } } - -export {ChannelsAppBar}; diff --git a/e2e-tests/playwright/support/ui/components/channels/center_view.ts b/e2e-tests/playwright/lib/src/ui/components/channels/center_view.ts similarity index 82% rename from e2e-tests/playwright/support/ui/components/channels/center_view.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/center_view.ts index 6d811f1e59..70558c71b4 100644 --- a/e2e-tests/playwright/support/ui/components/channels/center_view.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/center_view.ts @@ -1,11 +1,15 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; -import {components} from '@e2e-support/ui/components'; -import {waitUntil} from '@e2e-support/test_action'; -import {duration} from '@e2e-support/util'; +import ChannelsHeader from './header'; +import ChannelsPostCreate from './post_create'; +import ChannelsPostEdit from './post_edit'; +import ChannelsPost from './post'; + +import {duration} from '@/util'; +import {waitUntil} from '@/test_action'; export default class ChannelsCenterView { readonly container: Locator; @@ -25,12 +29,10 @@ export default class ChannelsCenterView { constructor(container: Locator) { this.container = container; this.scheduledDraftChannelInfoMessageLocator = 'span:has-text("Message scheduled for")'; - this.header = new components.ChannelsHeader(this.container.locator('.channel-header')); - this.postCreate = new components.ChannelsPostCreate(container.getByTestId('post-create')); - this.scheduledDraftOptions = new components.ChannelsPostCreate( - container.locator('#dropdown_send_post_options'), - ); - this.postEdit = new components.ChannelsPostEdit(container.locator('.post-edit__container')); + this.header = new ChannelsHeader(this.container.locator('.channel-header')); + this.postCreate = new ChannelsPostCreate(container.getByTestId('post-create')); + this.scheduledDraftOptions = new ChannelsPostCreate(container.locator('#dropdown_send_post_options')); + this.postEdit = new ChannelsPostEdit(container.locator('.post-edit__container')); this.postBoxIndicator = container.locator('div.postBoxIndicator'); this.scheduledDraftChannelIcon = container.locator('#create_post i.icon-draft-indicator'); this.scheduledDraftChannelInfoMessage = container.locator('div.ScheduledPostIndicator span'); @@ -58,7 +60,7 @@ export default class ChannelsCenterView { async getFirstPost() { const firstPost = this.container.getByTestId('postView').first(); await firstPost.waitFor(); - return new components.ChannelsPost(firstPost); + return new ChannelsPost(firstPost); } /** @@ -67,7 +69,7 @@ export default class ChannelsCenterView { async getLastPost() { const lastPost = this.container.getByTestId('postView').last(); await lastPost.waitFor(); - return new components.ChannelsPost(lastPost); + return new ChannelsPost(lastPost); } /** @@ -89,7 +91,7 @@ export default class ChannelsCenterView { async getNthPost(index: number) { const nthPost = this.container.getByTestId('postView').nth(index); await nthPost.waitFor(); - return new components.ChannelsPost(nthPost); + return new ChannelsPost(nthPost); } /** @@ -99,7 +101,7 @@ export default class ChannelsCenterView { async getPostById(id: string) { const postById = this.container.locator(`[id="post_${id}"]`); await postById.waitFor(); - return new components.ChannelsPost(postById); + return new ChannelsPost(postById); } async waitUntilLastPostContains(text: string, timeout = duration.ten_sec) { @@ -138,5 +140,3 @@ export default class ChannelsCenterView { } } } - -export {ChannelsCenterView}; diff --git a/e2e-tests/playwright/support/ui/components/channels/delete_post_confirmation_dialog.ts b/e2e-tests/playwright/lib/src/ui/components/channels/delete_post_confirmation_dialog.ts similarity index 92% rename from e2e-tests/playwright/support/ui/components/channels/delete_post_confirmation_dialog.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/delete_post_confirmation_dialog.ts index 7c5984e3b7..1d6f4c55b8 100644 --- a/e2e-tests/playwright/support/ui/components/channels/delete_post_confirmation_dialog.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/delete_post_confirmation_dialog.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class DeletePostConfirmationDialog { readonly container: Locator; @@ -36,5 +36,3 @@ export default class DeletePostConfirmationDialog { await this.confirmButton.click(); } } - -export {DeletePostConfirmationDialog}; diff --git a/e2e-tests/playwright/support/ui/components/channels/delete_post_modal.ts b/e2e-tests/playwright/lib/src/ui/components/channels/delete_post_modal.ts similarity index 89% rename from e2e-tests/playwright/support/ui/components/channels/delete_post_modal.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/delete_post_modal.ts index af92689ae1..e554820781 100644 --- a/e2e-tests/playwright/support/ui/components/channels/delete_post_modal.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/delete_post_modal.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class DeletePostModal { readonly container: Locator; @@ -24,5 +24,3 @@ export default class DeletePostModal { await expect(this.container).not.toBeVisible(); } } - -export {DeletePostModal}; diff --git a/e2e-tests/playwright/support/ui/components/channels/emoji_gif_picker.ts b/e2e-tests/playwright/lib/src/ui/components/channels/emoji_gif_picker.ts similarity index 95% rename from e2e-tests/playwright/support/ui/components/channels/emoji_gif_picker.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/emoji_gif_picker.ts index 08faa65683..0622ff7f1c 100644 --- a/e2e-tests/playwright/support/ui/components/channels/emoji_gif_picker.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/emoji_gif_picker.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class EmojiGifPicker { readonly container: Locator; @@ -57,5 +57,3 @@ export default class EmojiGifPicker { }; } } - -export {EmojiGifPicker}; diff --git a/e2e-tests/playwright/support/ui/components/channels/find_channels_modal.ts b/e2e-tests/playwright/lib/src/ui/components/channels/find_channels_modal.ts similarity index 87% rename from e2e-tests/playwright/support/ui/components/channels/find_channels_modal.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/find_channels_modal.ts index 2ff87cd900..41b415cde2 100644 --- a/e2e-tests/playwright/support/ui/components/channels/find_channels_modal.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/find_channels_modal.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class FindChannelsModal { readonly container: Locator; @@ -19,5 +19,3 @@ export default class FindChannelsModal { await expect(this.container).toBeVisible(); } } - -export {FindChannelsModal}; diff --git a/e2e-tests/playwright/support/ui/components/channels/generic_confirm_modal.ts b/e2e-tests/playwright/lib/src/ui/components/channels/generic_confirm_modal.ts similarity index 94% rename from e2e-tests/playwright/support/ui/components/channels/generic_confirm_modal.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/generic_confirm_modal.ts index c6a8cf4d54..f13f1f8fe2 100644 --- a/e2e-tests/playwright/support/ui/components/channels/generic_confirm_modal.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/generic_confirm_modal.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; /** * This is the generic confirm modal that is used in the app. @@ -41,5 +41,3 @@ export default class GenericConfirmModal { await expect(this.container).not.toBeVisible(); } } - -export {GenericConfirmModal}; diff --git a/e2e-tests/playwright/support/ui/components/channels/header.ts b/e2e-tests/playwright/lib/src/ui/components/channels/header.ts similarity index 82% rename from e2e-tests/playwright/support/ui/components/channels/header.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/header.ts index 4bb69e90fb..e590d2a8d1 100644 --- a/e2e-tests/playwright/support/ui/components/channels/header.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/header.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class ChannelsHeader { readonly container: Locator; @@ -14,5 +14,3 @@ export default class ChannelsHeader { await expect(this.container).toBeVisible(); } } - -export {ChannelsHeader}; diff --git a/e2e-tests/playwright/support/ui/components/channels/message_priority.ts b/e2e-tests/playwright/lib/src/ui/components/channels/message_priority.ts similarity index 97% rename from e2e-tests/playwright/support/ui/components/channels/message_priority.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/message_priority.ts index e219d46ef3..29994083bd 100644 --- a/e2e-tests/playwright/support/ui/components/channels/message_priority.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/message_priority.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class MessagePriority { readonly container: Locator; @@ -74,5 +74,3 @@ export default class MessagePriority { await expect(standardOption.locator('svg.StyledCheckIcon-dFKfoY')).toBeVisible(); } } - -export {MessagePriority}; diff --git a/e2e-tests/playwright/support/ui/components/channels/post.ts b/e2e-tests/playwright/lib/src/ui/components/channels/post.ts similarity index 85% rename from e2e-tests/playwright/support/ui/components/channels/post.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/post.ts index 3aea5e44e8..2cae21cb7d 100644 --- a/e2e-tests/playwright/support/ui/components/channels/post.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/post.ts @@ -1,9 +1,10 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; -import {components} from '@e2e-support/ui/components'; +import PostMenu from './post_menu'; +import ThreadFooter from './thread_footer'; export default class ChannelsPost { readonly container: Locator; @@ -25,8 +26,8 @@ export default class ChannelsPost { this.removePostButton = container.locator('.post__remove'); - this.postMenu = new components.PostMenu(container.locator('.post-menu')); - this.threadFooter = new components.ThreadFooter(container.locator('.ThreadFooter')); + this.postMenu = new PostMenu(container.locator('.post-menu')); + this.threadFooter = new ThreadFooter(container.locator('.ThreadFooter')); } async toBeVisible() { @@ -72,5 +73,3 @@ export default class ChannelsPost { await expect(this.container).toContainText(text); } } - -export {ChannelsPost}; diff --git a/e2e-tests/playwright/support/ui/components/channels/post_create.ts b/e2e-tests/playwright/lib/src/ui/components/channels/post_create.ts similarity index 76% rename from e2e-tests/playwright/support/ui/components/channels/post_create.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/post_create.ts index e74d669cb7..f6fd368c84 100644 --- a/e2e-tests/playwright/support/ui/components/channels/post_create.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/post_create.ts @@ -1,9 +1,13 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; import path from 'node:path'; -import {waitUntil} from '@e2e-support/test_action'; + +import {Locator, expect} from '@playwright/test'; + +import {duration} from '@/util'; +import {assetPath} from '@/file'; +import {waitUntil} from '@/test_action'; export default class ChannelsPostCreate { readonly container: Locator; @@ -15,6 +19,7 @@ export default class ChannelsPostCreate { readonly scheduleDraftMessageButton; readonly priorityButton; readonly suggestionList; + readonly filePreview; constructor(container: Locator, isRHS = false) { this.container = container; @@ -31,6 +36,7 @@ export default class ChannelsPostCreate { this.scheduleDraftMessageButton = container.getByLabel('Schedule message'); this.priorityButton = container.getByLabel('Message priority'); this.suggestionList = container.getByTestId('suggestionList'); + this.filePreview = container.locator('.file-preview__container'); } async toBeVisible() { @@ -101,18 +107,16 @@ export default class ChannelsPostCreate { await this.writeMessage(message); if (files) { - const filePaths = files.map((file) => path.join(path.resolve(__dirname), '../../../asset', file)); + const filePaths = files.map((file) => path.join(assetPath, file)); this.container.page().once('filechooser', async (fileChooser) => { await fileChooser.setFiles(filePaths); }); + // Click on the attachment button await this.attachmentButton.click(); - // wait for all files to be uploaded - await waitUntil(async () => { - const attachment = await this.container.locator('.file-preview').count(); - return attachment === files.length; - }); + // Wait until the file preview is displayed + await this.waitUntilFilePreviewContains(files); } await this.sendMessage(); @@ -122,6 +126,18 @@ export default class ChannelsPostCreate { await expect(this.emojiButton).toBeVisible(); await this.emojiButton.click(); } -} -export {ChannelsPostCreate}; + async waitUntilFilePreviewContains(files: string[], timeout = duration.ten_sec) { + await waitUntil( + async () => { + const previews = this.filePreview.locator('.file-preview'); + const details = this.filePreview.locator('.post-image__details'); + + const [previewsCount, detailsCount] = await Promise.all([previews.count(), details.count()]); + + return previewsCount === files.length && detailsCount === files.length; + }, + {timeout}, + ); + } +} diff --git a/e2e-tests/playwright/support/ui/components/channels/post_dot_menu.ts b/e2e-tests/playwright/lib/src/ui/components/channels/post_dot_menu.ts similarity index 95% rename from e2e-tests/playwright/support/ui/components/channels/post_dot_menu.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/post_dot_menu.ts index e6f1717422..8fd77e6a84 100644 --- a/e2e-tests/playwright/support/ui/components/channels/post_dot_menu.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/post_dot_menu.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class PostDotMenu { readonly container: Locator; @@ -46,5 +46,3 @@ export default class PostDotMenu { await expect(this.container).toBeVisible(); } } - -export {PostDotMenu}; diff --git a/e2e-tests/playwright/support/ui/components/channels/post_edit.ts b/e2e-tests/playwright/lib/src/ui/components/channels/post_edit.ts similarity index 82% rename from e2e-tests/playwright/support/ui/components/channels/post_edit.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/post_edit.ts index aa5477f8e9..59ef66f58a 100644 --- a/e2e-tests/playwright/support/ui/components/channels/post_edit.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/post_edit.ts @@ -1,9 +1,14 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; import path from 'node:path'; -import {components} from '@e2e-support/ui/components'; + +import {Locator, expect} from '@playwright/test'; + +import DeletePostConfirmationDialog from './delete_post_confirmation_dialog'; +import RestorePostConfirmationDialog from './restore_post_confirmation_dialog'; + +import {assetPath} from '@/file'; export default class ChannelsPostEdit { readonly container: Locator; @@ -23,10 +28,8 @@ export default class ChannelsPostEdit { this.attachmentButton = container.locator('#fileUploadButton'); this.emojiButton = container.getByLabel('select an emoji'); this.sendMessageButton = container.locator('.save'); - this.deleteConfirmationDialog = new components.DeletePostConfirmationDialog( - container.page().locator('#deletePostModal'), - ); - this.restorePostConfirmationDialog = new components.RestorePostConfirmationDialog( + this.deleteConfirmationDialog = new DeletePostConfirmationDialog(container.page().locator('#deletePostModal')); + this.restorePostConfirmationDialog = new RestorePostConfirmationDialog( container.page().locator('#restorePostModal'), ); } @@ -51,7 +54,7 @@ export default class ChannelsPostEdit { } async addFiles(files: string[]) { - const filePaths = files.map((file) => path.join(path.resolve(__dirname), '../../../asset', file)); + const filePaths = files.map((file) => path.join(assetPath, file)); this.container.page().once('filechooser', async (fileChooser) => { await fileChooser.setFiles(filePaths); }); @@ -90,5 +93,3 @@ export default class ChannelsPostEdit { await expect(this.container).toContainText(text); } } - -export {ChannelsPostEdit}; diff --git a/e2e-tests/playwright/support/ui/components/channels/post_menu.ts b/e2e-tests/playwright/lib/src/ui/components/channels/post_menu.ts similarity index 96% rename from e2e-tests/playwright/support/ui/components/channels/post_menu.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/post_menu.ts index f3c9c44173..e9e39e510e 100644 --- a/e2e-tests/playwright/support/ui/components/channels/post_menu.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/post_menu.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class PostMenu { readonly container: Locator; @@ -55,5 +55,3 @@ export default class PostMenu { await this.dotMenuButton.click(); } } - -export {PostMenu}; diff --git a/e2e-tests/playwright/support/ui/components/channels/post_reminder_menu.ts b/e2e-tests/playwright/lib/src/ui/components/channels/post_reminder_menu.ts similarity index 91% rename from e2e-tests/playwright/support/ui/components/channels/post_reminder_menu.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/post_reminder_menu.ts index 08e3e53f33..e1f2a61af2 100644 --- a/e2e-tests/playwright/support/ui/components/channels/post_reminder_menu.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/post_reminder_menu.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class PostReminderMenu { readonly container: Locator; @@ -28,5 +28,3 @@ export default class PostReminderMenu { await expect(this.container).toBeVisible(); } } - -export {PostReminderMenu}; diff --git a/e2e-tests/playwright/support/ui/components/channels/restore_post_confirmation_dialog.ts b/e2e-tests/playwright/lib/src/ui/components/channels/restore_post_confirmation_dialog.ts similarity index 90% rename from e2e-tests/playwright/support/ui/components/channels/restore_post_confirmation_dialog.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/restore_post_confirmation_dialog.ts index 8d8f411bfc..2a3540824f 100644 --- a/e2e-tests/playwright/support/ui/components/channels/restore_post_confirmation_dialog.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/restore_post_confirmation_dialog.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class RestorePostConfirmationDialog { readonly container: Locator; @@ -30,5 +30,3 @@ export default class RestorePostConfirmationDialog { await this.confirmButton.click(); } } - -export {RestorePostConfirmationDialog}; diff --git a/e2e-tests/playwright/support/ui/components/channels/scheduled_draft_menu.ts b/e2e-tests/playwright/lib/src/ui/components/channels/scheduled_draft_menu.ts similarity index 88% rename from e2e-tests/playwright/support/ui/components/channels/scheduled_draft_menu.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/scheduled_draft_menu.ts index a8a23b7096..4a0a602d49 100644 --- a/e2e-tests/playwright/support/ui/components/channels/scheduled_draft_menu.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/scheduled_draft_menu.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class ScheduledDraftMenu { readonly container: Locator; @@ -22,5 +22,3 @@ export default class ScheduledDraftMenu { await this.scheduleDraftMessageCustomTimeOption.click(); } } - -export {ScheduledDraftMenu}; diff --git a/e2e-tests/playwright/support/ui/components/channels/scheduled_draft_modal.ts b/e2e-tests/playwright/lib/src/ui/components/channels/scheduled_draft_modal.ts similarity index 97% rename from e2e-tests/playwright/support/ui/components/channels/scheduled_draft_modal.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/scheduled_draft_modal.ts index 99ef0e4440..b59e0bff48 100644 --- a/e2e-tests/playwright/support/ui/components/channels/scheduled_draft_modal.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/scheduled_draft_modal.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class ScheduledDraftModal { readonly container: Locator; @@ -93,5 +93,3 @@ export default class ScheduledDraftModal { return pacificTime; } } - -export {ScheduledDraftModal}; diff --git a/e2e-tests/playwright/support/ui/components/channels/search_popover.ts b/e2e-tests/playwright/lib/src/ui/components/channels/search_popover.ts similarity index 95% rename from e2e-tests/playwright/support/ui/components/channels/search_popover.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/search_popover.ts index e1f5903cf8..57afd477b9 100644 --- a/e2e-tests/playwright/support/ui/components/channels/search_popover.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/search_popover.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class SearchPopover { readonly container: Locator; @@ -43,5 +43,3 @@ export default class SearchPopover { return this.searchHints.locator('.suggestion--selected'); } } - -export {SearchPopover}; diff --git a/e2e-tests/playwright/support/ui/components/channels/settings/notification_settings.ts b/e2e-tests/playwright/lib/src/ui/components/channels/settings/notification_settings.ts similarity index 95% rename from e2e-tests/playwright/support/ui/components/channels/settings/notification_settings.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/settings/notification_settings.ts index 5877cd623f..f8d20f3d9c 100644 --- a/e2e-tests/playwright/support/ui/components/channels/settings/notification_settings.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/settings/notification_settings.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; type NotificationSettingsSection = 'keysWithHighlight' | 'keysWithNotification'; @@ -52,5 +52,3 @@ export default class NotificationsSettings { await this.container.getByText('Save').click(); } } - -export {NotificationsSettings}; diff --git a/e2e-tests/playwright/support/ui/components/channels/settings/settings_modal.ts b/e2e-tests/playwright/lib/src/ui/components/channels/settings/settings_modal.ts similarity index 87% rename from e2e-tests/playwright/support/ui/components/channels/settings/settings_modal.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/settings/settings_modal.ts index 61d3adb607..eab2639124 100644 --- a/e2e-tests/playwright/support/ui/components/channels/settings/settings_modal.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/settings/settings_modal.ts @@ -1,9 +1,9 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; -import {NotificationsSettings} from './notification_settings'; +import NotificationsSettings from './notification_settings'; export default class SettingsModal { readonly container: Locator; @@ -35,5 +35,3 @@ export default class SettingsModal { await expect(this.container).not.toBeVisible(); } } - -export {SettingsModal}; diff --git a/e2e-tests/playwright/support/ui/components/channels/sidebar_left.ts b/e2e-tests/playwright/lib/src/ui/components/channels/sidebar_left.ts similarity index 95% rename from e2e-tests/playwright/support/ui/components/channels/sidebar_left.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/sidebar_left.ts index c4f0fa12aa..7d2e632b5a 100644 --- a/e2e-tests/playwright/support/ui/components/channels/sidebar_left.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/sidebar_left.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class ChannelsSidebarLeft { readonly container: Locator; @@ -56,5 +56,3 @@ export default class ChannelsSidebarLeft { await expect(channel).not.toBeVisible(); } } - -export {ChannelsSidebarLeft}; diff --git a/e2e-tests/playwright/support/ui/components/channels/sidebar_right.ts b/e2e-tests/playwright/lib/src/ui/components/channels/sidebar_right.ts similarity index 85% rename from e2e-tests/playwright/support/ui/components/channels/sidebar_right.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/sidebar_right.ts index cb9b28a5c4..f53a9af0df 100644 --- a/e2e-tests/playwright/support/ui/components/channels/sidebar_right.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/sidebar_right.ts @@ -1,9 +1,11 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; -import {components} from '@e2e-support/ui/components'; +import ChannelsPostCreate from './post_create'; +import ChannelsPostEdit from './post_edit'; +import ChannelsPost from './post'; export default class ChannelsSidebarRight { readonly container: Locator; @@ -28,11 +30,11 @@ export default class ChannelsSidebarRight { this.scheduledDraftSeeAllLink = container.locator('a:has-text("See all")'); this.scheduledDraftChannelInfoMessageText = container.locator('span:has-text("Message scheduled for")'); this.rhsPostBody = container.locator('.post-message__text'); - this.postCreate = new components.ChannelsPostCreate(container.getByTestId('comment-create'), true); + this.postCreate = new ChannelsPostCreate(container.getByTestId('comment-create'), true); this.closeButton = container.locator('.sidebar--right__close'); this.editTextbox = container.locator('#edit_textbox'); - this.postEdit = new components.ChannelsPostEdit(container.locator('.post-edit__container')); + this.postEdit = new ChannelsPostEdit(container.locator('.post-edit__container')); this.currentVersionEditedPosttext = (postID: any) => container.locator(`#rhsPostMessageText_${postID} p`); this.restorePreviousPostVersionIcon = container.locator( 'button[aria-label="Select to restore an old message."]', @@ -50,7 +52,7 @@ export default class ChannelsSidebarRight { async getPostById(postId: string) { const post = this.container.locator(`[id="rhsPost_${postId}"]`); await post.waitFor(); - return new components.ChannelsPost(post); + return new ChannelsPost(post); } /** @@ -59,13 +61,13 @@ export default class ChannelsSidebarRight { async getLastPost() { const post = this.container.getByTestId('rhsPostView').last(); await post.waitFor(); - return new components.ChannelsPost(post); + return new ChannelsPost(post); } async getFirstPost() { const post = this.container.getByTestId('rhsPostView').first(); await post.waitFor(); - return new components.ChannelsPost(post); + return new ChannelsPost(post); } /** @@ -96,5 +98,3 @@ export default class ChannelsSidebarRight { await this.restorePreviousPostVersionIcon.click(); } } - -export {ChannelsSidebarRight}; diff --git a/e2e-tests/playwright/support/ui/components/channels/thread_footer.ts b/e2e-tests/playwright/lib/src/ui/components/channels/thread_footer.ts similarity index 89% rename from e2e-tests/playwright/support/ui/components/channels/thread_footer.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/thread_footer.ts index 310aebe3d3..50e8d112dd 100644 --- a/e2e-tests/playwright/support/ui/components/channels/thread_footer.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/thread_footer.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class ThreadFooter { readonly container: Locator; @@ -26,5 +26,3 @@ export default class ThreadFooter { await this.replyButton.click(); } } - -export {ThreadFooter}; diff --git a/e2e-tests/playwright/support/ui/components/channels/user_profile_popover.ts b/e2e-tests/playwright/lib/src/ui/components/channels/user_profile_popover.ts similarity index 85% rename from e2e-tests/playwright/support/ui/components/channels/user_profile_popover.ts rename to e2e-tests/playwright/lib/src/ui/components/channels/user_profile_popover.ts index a351be3714..e9cabc171f 100644 --- a/e2e-tests/playwright/support/ui/components/channels/user_profile_popover.ts +++ b/e2e-tests/playwright/lib/src/ui/components/channels/user_profile_popover.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class UserProfilePopover { readonly container: Locator; @@ -18,5 +18,3 @@ export default class UserProfilePopover { await this.container.getByLabel('Close user profile popover').click(); } } - -export {UserProfilePopover}; diff --git a/e2e-tests/playwright/support/ui/components/footer.ts b/e2e-tests/playwright/lib/src/ui/components/footer.ts similarity index 92% rename from e2e-tests/playwright/support/ui/components/footer.ts rename to e2e-tests/playwright/lib/src/ui/components/footer.ts index d531e9a585..bf97ab193b 100644 --- a/e2e-tests/playwright/support/ui/components/footer.ts +++ b/e2e-tests/playwright/lib/src/ui/components/footer.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class Footer { readonly container: Locator; @@ -26,5 +26,3 @@ export default class Footer { await expect(this.copyright).toBeVisible(); } } - -export {Footer}; diff --git a/e2e-tests/playwright/support/ui/components/global_header.ts b/e2e-tests/playwright/lib/src/ui/components/global_header.ts similarity index 95% rename from e2e-tests/playwright/support/ui/components/global_header.ts rename to e2e-tests/playwright/lib/src/ui/components/global_header.ts index 4dff67f135..b0b21bea7a 100644 --- a/e2e-tests/playwright/support/ui/components/global_header.ts +++ b/e2e-tests/playwright/lib/src/ui/components/global_header.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class GlobalHeader { readonly container: Locator; @@ -49,5 +49,3 @@ export default class GlobalHeader { await this.searchBox.getByTestId('searchBoxClose').click(); } } - -export {GlobalHeader}; diff --git a/e2e-tests/playwright/lib/src/ui/components/index.ts b/e2e-tests/playwright/lib/src/ui/components/index.ts new file mode 100644 index 0000000000..7074a6bc3d --- /dev/null +++ b/e2e-tests/playwright/lib/src/ui/components/index.ts @@ -0,0 +1,96 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import ChannelsHeader from './channels/header'; +import ChannelsAppBar from './channels/app_bar'; +import ChannelsPostCreate from './channels/post_create'; +import ChannelsPost from './channels/post'; +import ChannelsCenterView from './channels/center_view'; +import ChannelsSidebarLeft from './channels/sidebar_left'; +import ChannelsSidebarRight from './channels/sidebar_right'; +import DeletePostModal from './channels/delete_post_modal'; +import FindChannelsModal from './channels/find_channels_modal'; +import SettingsModal from './channels/settings/settings_modal'; +import Footer from './footer'; +import GlobalHeader from './global_header'; +import SearchPopover from './channels/search_popover'; +import MainHeader from './main_header'; +import PostDotMenu from './channels/post_dot_menu'; +import PostReminderMenu from './channels/post_reminder_menu'; +import PostMenu from './channels/post_menu'; +import ThreadFooter from './channels/thread_footer'; +import EmojiGifPicker from './channels/emoji_gif_picker'; +import GenericConfirmModal from './channels/generic_confirm_modal'; +import MessagePriority from './channels/message_priority'; +import ScheduledDraftMenu from './channels/scheduled_draft_menu'; +import ScheduledDraftModal from './channels/scheduled_draft_modal'; +import UserProfilePopover from './channels/user_profile_popover'; +import SystemConsoleSidebar from './system_console/sidebar'; +import SystemConsoleNavbar from './system_console/navbar'; +import SystemUsers from './system_console/sections/system_users/system_users'; +import SystemUsersFilterPopover from './system_console/sections/system_users/filter_popover'; +import SystemUsersFilterMenu from './system_console/sections/system_users/filter_menu'; +import SystemUsersColumnToggleMenu from './system_console/sections/system_users/column_toggle_menu'; +import ChannelsPostEdit from './channels/post_edit'; +import DeletePostConfirmationDialog from './channels/delete_post_confirmation_dialog'; +import RestorePostConfirmationDialog from './channels/restore_post_confirmation_dialog'; +import SystemConsoleFeatureDiscovery from './system_console/sections/system_users/feature_discovery'; +import SystemConsoleMobileSecurity from './system_console/sections/system_users/mobile_security'; + +const components = { + GlobalHeader, + SearchPopover, + ChannelsCenterView, + ChannelsSidebarLeft, + ChannelsSidebarRight, + ChannelsAppBar, + ChannelsHeader, + ChannelsPostCreate, + ChannelsPostEdit, + ChannelsPost, + FindChannelsModal, + DeletePostModal, + SettingsModal, + PostDotMenu, + PostMenu, + ThreadFooter, + Footer, + MainHeader, + PostReminderMenu, + EmojiGifPicker, + GenericConfirmModal, + ScheduledDraftMenu, + ScheduledDraftModal, + SystemConsoleSidebar, + SystemConsoleNavbar, + SystemUsers, + SystemUsersFilterPopover, + SystemUsersFilterMenu, + SystemUsersColumnToggleMenu, + SystemConsoleFeatureDiscovery, + SystemConsoleMobileSecurity, + MessagePriority, + UserProfilePopover, + DeletePostConfirmationDialog, + RestorePostConfirmationDialog, +}; + +export { + components, + GlobalHeader, + ChannelsCenterView, + ChannelsSidebarLeft, + ChannelsSidebarRight, + ChannelsAppBar, + ChannelsHeader, + ChannelsPostCreate, + ChannelsPostEdit, + ChannelsPost, + FindChannelsModal, + DeletePostModal, + PostDotMenu, + PostMenu, + ThreadFooter, + MessagePriority, + DeletePostConfirmationDialog, +}; diff --git a/e2e-tests/playwright/support/ui/components/main_header.ts b/e2e-tests/playwright/lib/src/ui/components/main_header.ts similarity index 87% rename from e2e-tests/playwright/support/ui/components/main_header.ts rename to e2e-tests/playwright/lib/src/ui/components/main_header.ts index b3e7c99f25..a208b78570 100644 --- a/e2e-tests/playwright/support/ui/components/main_header.ts +++ b/e2e-tests/playwright/lib/src/ui/components/main_header.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class MainHeader { readonly container: Locator; @@ -20,5 +20,3 @@ export default class MainHeader { await expect(this.container).toBeVisible(); } } - -export {MainHeader}; diff --git a/e2e-tests/playwright/support/ui/components/system_console/navbar.ts b/e2e-tests/playwright/lib/src/ui/components/system_console/navbar.ts similarity index 81% rename from e2e-tests/playwright/support/ui/components/system_console/navbar.ts rename to e2e-tests/playwright/lib/src/ui/components/system_console/navbar.ts index 2c847d7889..8ac2a4c999 100644 --- a/e2e-tests/playwright/support/ui/components/system_console/navbar.ts +++ b/e2e-tests/playwright/lib/src/ui/components/system_console/navbar.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class SystemConsoleNavbar { readonly container: Locator; @@ -14,5 +14,3 @@ export default class SystemConsoleNavbar { await expect(this.container).toBeVisible(); } } - -export {SystemConsoleNavbar}; diff --git a/e2e-tests/playwright/support/ui/components/system_console/sections/system_users/column_toggle_menu.ts b/e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/column_toggle_menu.ts similarity index 90% rename from e2e-tests/playwright/support/ui/components/system_console/sections/system_users/column_toggle_menu.ts rename to e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/column_toggle_menu.ts index 469cf1d29b..11145a62d1 100644 --- a/e2e-tests/playwright/support/ui/components/system_console/sections/system_users/column_toggle_menu.ts +++ b/e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/column_toggle_menu.ts @@ -1,9 +1,9 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; -class SystemUsersColumnToggleMenu { +export default class SystemUsersColumnToggleMenu { readonly container: Locator; constructor(container: Locator) { @@ -48,5 +48,3 @@ class SystemUsersColumnToggleMenu { await expect(this.container).not.toBeVisible(); } } - -export {SystemUsersColumnToggleMenu}; diff --git a/e2e-tests/playwright/support/ui/components/system_console/sections/system_users/feature_discovery.ts b/e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/feature_discovery.ts similarity index 95% rename from e2e-tests/playwright/support/ui/components/system_console/sections/system_users/feature_discovery.ts rename to e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/feature_discovery.ts index 2a4ba637ea..cbca8dab26 100644 --- a/e2e-tests/playwright/support/ui/components/system_console/sections/system_users/feature_discovery.ts +++ b/e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/feature_discovery.ts @@ -21,5 +21,3 @@ export default class FeatureDiscovery { await expect(this.container.getByTestId('featureDiscovery_title')).toHaveText(title); } } - -export {FeatureDiscovery}; diff --git a/e2e-tests/playwright/support/ui/components/system_console/sections/system_users/filter_menu.ts b/e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/filter_menu.ts similarity index 89% rename from e2e-tests/playwright/support/ui/components/system_console/sections/system_users/filter_menu.ts rename to e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/filter_menu.ts index 2e4a7b1411..a39fff19c5 100644 --- a/e2e-tests/playwright/support/ui/components/system_console/sections/system_users/filter_menu.ts +++ b/e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/filter_menu.ts @@ -1,12 +1,12 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; /** * The dropdown menu which appears for both Role and Status filter. */ -class SystemUsersFilterMenu { +export default class SystemUsersFilterMenu { readonly container: Locator; constructor(container: Locator) { @@ -42,5 +42,3 @@ class SystemUsersFilterMenu { await this.container.press('Escape'); } } - -export {SystemUsersFilterMenu}; diff --git a/e2e-tests/playwright/support/ui/components/system_console/sections/system_users/filter_popover.ts b/e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/filter_popover.ts similarity index 93% rename from e2e-tests/playwright/support/ui/components/system_console/sections/system_users/filter_popover.ts rename to e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/filter_popover.ts index 80b1529b15..e88256c5ff 100644 --- a/e2e-tests/playwright/support/ui/components/system_console/sections/system_users/filter_popover.ts +++ b/e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/filter_popover.ts @@ -1,9 +1,9 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; -class SystemUsersFilterPopover { +export default class SystemUsersFilterPopover { readonly container: Locator; readonly teamMenuInput: Locator; @@ -66,5 +66,3 @@ class SystemUsersFilterPopover { await expect(this.container).not.toBeVisible(); } } - -export {SystemUsersFilterPopover}; diff --git a/e2e-tests/playwright/support/ui/components/system_console/sections/system_users/mobile_security.ts b/e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/mobile_security.ts similarity index 99% rename from e2e-tests/playwright/support/ui/components/system_console/sections/system_users/mobile_security.ts rename to e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/mobile_security.ts index 18f5e91ab1..8bb78d2df2 100644 --- a/e2e-tests/playwright/support/ui/components/system_console/sections/system_users/mobile_security.ts +++ b/e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/mobile_security.ts @@ -77,5 +77,3 @@ export default class MobileSecurity { await this.saveButton.click(); } } - -export {MobileSecurity}; diff --git a/e2e-tests/playwright/support/ui/components/system_console/sections/system_users/system_users.ts b/e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/system_users.ts similarity index 98% rename from e2e-tests/playwright/support/ui/components/system_console/sections/system_users/system_users.ts rename to e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/system_users.ts index 7346fdf14e..a916d402d7 100644 --- a/e2e-tests/playwright/support/ui/components/system_console/sections/system_users/system_users.ts +++ b/e2e-tests/playwright/lib/src/ui/components/system_console/sections/system_users/system_users.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; /** * System Console -> User Management -> Users @@ -130,5 +130,3 @@ export default class SystemUsers { await expect(foundUser).not.toBeVisible(); } } - -export {SystemUsers}; diff --git a/e2e-tests/playwright/support/ui/components/system_console/sidebar.ts b/e2e-tests/playwright/lib/src/ui/components/system_console/sidebar.ts similarity index 92% rename from e2e-tests/playwright/support/ui/components/system_console/sidebar.ts rename to e2e-tests/playwright/lib/src/ui/components/system_console/sidebar.ts index 0591325077..05d8c76692 100644 --- a/e2e-tests/playwright/support/ui/components/system_console/sidebar.ts +++ b/e2e-tests/playwright/lib/src/ui/components/system_console/sidebar.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Locator} from '@playwright/test'; +import {Locator, expect} from '@playwright/test'; export default class SystemConsoleSidebar { readonly container: Locator; @@ -37,5 +37,3 @@ export default class SystemConsoleSidebar { await this.searchInput.fill(itemName); } } - -export {SystemConsoleSidebar}; diff --git a/e2e-tests/playwright/support/ui/pages/channels.ts b/e2e-tests/playwright/lib/src/ui/pages/channels.ts similarity index 95% rename from e2e-tests/playwright/support/ui/pages/channels.ts rename to e2e-tests/playwright/lib/src/ui/pages/channels.ts index 7767faac9f..4e4bda789b 100644 --- a/e2e-tests/playwright/support/ui/pages/channels.ts +++ b/e2e-tests/playwright/lib/src/ui/pages/channels.ts @@ -3,7 +3,7 @@ import {Page} from '@playwright/test'; -import {components} from '@e2e-support/ui/components'; +import {components} from '@/ui/components'; export default class ChannelsPage { readonly channels = 'Channels'; @@ -19,6 +19,7 @@ export default class ChannelsPage { readonly sidebarRight; readonly appBar; readonly userProfilePopover; + readonly messagePriority; readonly findChannelsModal; readonly deletePostModal; @@ -40,6 +41,7 @@ export default class ChannelsPage { this.sidebarLeft = new components.ChannelsSidebarLeft(page.locator('#SidebarContainer')); this.sidebarRight = new components.ChannelsSidebarRight(page.locator('#sidebar-right')); this.appBar = new components.ChannelsAppBar(page.locator('.app-bar')); + this.messagePriority = new components.MessagePriority(page.locator('body')); // Modals this.findChannelsModal = new components.FindChannelsModal(page.getByRole('dialog', {name: 'Find Channels'})); @@ -88,5 +90,3 @@ export default class ChannelsPage { await this.centerView.postCreate.postMessage(message); } } - -export {ChannelsPage}; diff --git a/e2e-tests/playwright/support/ui/pages/drafts.ts b/e2e-tests/playwright/lib/src/ui/pages/drafts.ts similarity index 98% rename from e2e-tests/playwright/support/ui/pages/drafts.ts rename to e2e-tests/playwright/lib/src/ui/pages/drafts.ts index 5c5732f9bd..aea9604bb0 100644 --- a/e2e-tests/playwright/support/ui/pages/drafts.ts +++ b/e2e-tests/playwright/lib/src/ui/pages/drafts.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Page} from '@playwright/test'; +import {Page, expect} from '@playwright/test'; export default class DraftPage { readonly page: Page; @@ -124,5 +124,3 @@ export default class DraftPage { await this.confirmbutton.click(); } } - -export {DraftPage}; diff --git a/e2e-tests/playwright/lib/src/ui/pages/index.ts b/e2e-tests/playwright/lib/src/ui/pages/index.ts new file mode 100644 index 0000000000..e8cef6c301 --- /dev/null +++ b/e2e-tests/playwright/lib/src/ui/pages/index.ts @@ -0,0 +1,34 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import ChannelsPage from './channels'; +import LandingLoginPage from './landing_login'; +import LoginPage from './login'; +import ResetPasswordPage from './reset_password'; +import SignupPage from './signup'; +import SystemConsolePage from './system_console'; +import ScheduledDraftPage from './scheduled_draft'; +import DraftPage from './drafts'; + +const pages = { + ChannelsPage, + LandingLoginPage, + LoginPage, + ResetPasswordPage, + SignupPage, + ScheduledDraftPage, + SystemConsolePage, + DraftPage, +}; + +export { + pages, + ChannelsPage, + LandingLoginPage, + LoginPage, + ResetPasswordPage, + SignupPage, + ScheduledDraftPage, + SystemConsolePage, + DraftPage, +}; diff --git a/e2e-tests/playwright/support/ui/pages/landing_login.ts b/e2e-tests/playwright/lib/src/ui/pages/landing_login.ts similarity index 93% rename from e2e-tests/playwright/support/ui/pages/landing_login.ts rename to e2e-tests/playwright/lib/src/ui/pages/landing_login.ts index 238d28bb89..ad21c661ca 100644 --- a/e2e-tests/playwright/support/ui/pages/landing_login.ts +++ b/e2e-tests/playwright/lib/src/ui/pages/landing_login.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Page} from '@playwright/test'; +import {Page, expect} from '@playwright/test'; export default class LandingLoginPage { readonly page: Page; @@ -37,5 +37,3 @@ export default class LandingLoginPage { await this.page.goto('/landing#/login'); } } - -export {LandingLoginPage}; diff --git a/e2e-tests/playwright/support/ui/pages/login.ts b/e2e-tests/playwright/lib/src/ui/pages/login.ts similarity index 95% rename from e2e-tests/playwright/support/ui/pages/login.ts rename to e2e-tests/playwright/lib/src/ui/pages/login.ts index bb1223e07e..2f662aa2e0 100644 --- a/e2e-tests/playwright/support/ui/pages/login.ts +++ b/e2e-tests/playwright/lib/src/ui/pages/login.ts @@ -1,11 +1,10 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Page} from '@playwright/test'; - +import {Page, expect} from '@playwright/test'; import {UserProfile} from '@mattermost/types/users'; -import {components} from '@e2e-support/ui/components'; +import {components} from '@/ui/components'; export default class LoginPage { readonly page: Page; @@ -67,5 +66,3 @@ export default class LoginPage { await Promise.all([this.page.waitForNavigation(), this.signInButton.click()]); } } - -export {LoginPage}; diff --git a/e2e-tests/playwright/support/ui/pages/reset_password.ts b/e2e-tests/playwright/lib/src/ui/pages/reset_password.ts similarity index 91% rename from e2e-tests/playwright/support/ui/pages/reset_password.ts rename to e2e-tests/playwright/lib/src/ui/pages/reset_password.ts index b8dd056fb5..c0954e63eb 100644 --- a/e2e-tests/playwright/support/ui/pages/reset_password.ts +++ b/e2e-tests/playwright/lib/src/ui/pages/reset_password.ts @@ -1,9 +1,9 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Page} from '@playwright/test'; +import {Page, expect} from '@playwright/test'; -import {components} from '@e2e-support/ui/components'; +import {components} from '@/ui/components'; export default class ResetPasswordPage { readonly page: Page; @@ -47,5 +47,3 @@ export default class ResetPasswordPage { await Promise.all([this.page.waitForNavigation(), this.resetButton.click()]); } } - -export {ResetPasswordPage}; diff --git a/e2e-tests/playwright/support/ui/pages/scheduled_draft.ts b/e2e-tests/playwright/lib/src/ui/pages/scheduled_draft.ts similarity index 98% rename from e2e-tests/playwright/support/ui/pages/scheduled_draft.ts rename to e2e-tests/playwright/lib/src/ui/pages/scheduled_draft.ts index 8416d45800..b1bc9bfecc 100644 --- a/e2e-tests/playwright/support/ui/pages/scheduled_draft.ts +++ b/e2e-tests/playwright/lib/src/ui/pages/scheduled_draft.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Page} from '@playwright/test'; +import {Page, expect} from '@playwright/test'; export default class ScheduledDraftPage { readonly page: Page; @@ -157,5 +157,3 @@ export default class ScheduledDraftPage { await this.copyIcon.click(); } } - -export {ScheduledDraftPage}; diff --git a/e2e-tests/playwright/support/ui/pages/signup.ts b/e2e-tests/playwright/lib/src/ui/pages/signup.ts similarity index 95% rename from e2e-tests/playwright/support/ui/pages/signup.ts rename to e2e-tests/playwright/lib/src/ui/pages/signup.ts index 6012e70e87..974e3a21a9 100644 --- a/e2e-tests/playwright/support/ui/pages/signup.ts +++ b/e2e-tests/playwright/lib/src/ui/pages/signup.ts @@ -1,10 +1,10 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Page} from '@playwright/test'; +import {Page, expect} from '@playwright/test'; -import {duration, wait} from '@e2e-support/util'; -import {components} from '@e2e-support/ui/components'; +import {duration, wait} from '@/util'; +import {components} from '@/ui/components'; export default class SignupPage { readonly page: Page; @@ -86,5 +86,3 @@ export default class SignupPage { } } } - -export {SignupPage}; diff --git a/e2e-tests/playwright/support/ui/pages/system_console.ts b/e2e-tests/playwright/lib/src/ui/pages/system_console.ts similarity index 91% rename from e2e-tests/playwright/support/ui/pages/system_console.ts rename to e2e-tests/playwright/lib/src/ui/pages/system_console.ts index f15dd88251..daf5cbd31a 100644 --- a/e2e-tests/playwright/support/ui/pages/system_console.ts +++ b/e2e-tests/playwright/lib/src/ui/pages/system_console.ts @@ -2,9 +2,10 @@ // See LICENSE.txt for license information. import {Page} from '@playwright/test'; -import {components} from '../components'; -class SystemConsolePage { +import {components} from '@/ui/components'; + +export default class SystemConsolePage { readonly page: Page; readonly sidebar; @@ -39,10 +40,10 @@ class SystemConsolePage { // Sections and sub-sections this.systemUsers = new components.SystemUsers(page.getByTestId('systemUsersSection')); - this.mobileSecurity = new components.MobileSecurity( + this.mobileSecurity = new components.SystemConsoleMobileSecurity( page.getByTestId('sysconsole_section_MobileSecuritySettings'), ); - this.featureDiscovery = new components.FeatureDiscovery(page.getByTestId('featureDiscovery')); + this.featureDiscovery = new components.SystemConsoleFeatureDiscovery(page.getByTestId('featureDiscovery')); // Menus & Popovers this.systemUsersFilterPopover = new components.SystemUsersFilterPopover( @@ -84,5 +85,3 @@ class SystemConsolePage { await this.saveChangesModal.container.locator('button.btn-primary:has-text("Reset")').click(); } } - -export {SystemConsolePage}; diff --git a/e2e-tests/playwright/support/util.ts b/e2e-tests/playwright/lib/src/util.ts similarity index 100% rename from e2e-tests/playwright/support/util.ts rename to e2e-tests/playwright/lib/src/util.ts diff --git a/e2e-tests/playwright/support/visual/index.ts b/e2e-tests/playwright/lib/src/visual/index.ts similarity index 87% rename from e2e-tests/playwright/support/visual/index.ts rename to e2e-tests/playwright/lib/src/visual/index.ts index 9380480a96..59e4682091 100644 --- a/e2e-tests/playwright/support/visual/index.ts +++ b/e2e-tests/playwright/lib/src/visual/index.ts @@ -4,14 +4,14 @@ import os from 'node:os'; import chalk from 'chalk'; -import {expect, TestInfo} from '@playwright/test'; - -import {duration, illegalRe, wait} from '@e2e-support/util'; -import testConfig from '@e2e-test.config'; -import {ScreenshotOptions, TestArgs} from '@e2e-types'; +import {TestInfo, expect} from '@playwright/test'; import snapshotWithPercy from './percy'; +import {duration, illegalRe, wait} from '@/util'; +import {testConfig} from '@/test_config'; +import {ScreenshotOptions, TestArgs} from '@/types'; + export async function matchSnapshot(testInfo: TestInfo, testArgs: TestArgs, options: ScreenshotOptions = {}) { if (os.platform() !== 'linux') { // eslint-disable-next-line no-console diff --git a/e2e-tests/playwright/support/visual/percy.ts b/e2e-tests/playwright/lib/src/visual/percy.ts similarity index 90% rename from e2e-tests/playwright/support/visual/percy.ts rename to e2e-tests/playwright/lib/src/visual/percy.ts index b5cf4d9e84..bbc340bed3 100644 --- a/e2e-tests/playwright/support/visual/percy.ts +++ b/e2e-tests/playwright/lib/src/visual/percy.ts @@ -3,8 +3,8 @@ import percySnapshot from '@percy/playwright'; -import testConfig from '@e2e-test.config'; -import {TestArgs} from '@e2e-types'; +import {testConfig} from '@/test_config'; +import {TestArgs} from '@/types'; export default async function snapshotWithPercy(name: string, testArgs: TestArgs) { if (testArgs.browserName === 'chromium' && testConfig.percyEnabled && testArgs.viewport) { diff --git a/e2e-tests/playwright/lib/tsconfig.json b/e2e-tests/playwright/lib/tsconfig.json new file mode 100644 index 0000000000..8b214bab03 --- /dev/null +++ b/e2e-tests/playwright/lib/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "outDir": "dist", + "target": "ES2022", + "esModuleInterop": true, + "strict": true, + "declaration": true, + "moduleResolution": "node", + "module": "esnext", + "resolveJsonModule": true, + "skipLibCheck": true, + "downlevelIteration": true, + "baseUrl": "src", + "paths": { + "@/*": ["*"] + } + }, + "include": ["src"], + "exclude": ["node_modules"] +} diff --git a/e2e-tests/playwright/package-lock.json b/e2e-tests/playwright/package-lock.json index a9b390fecd..f31e595ff7 100644 --- a/e2e-tests/playwright/package-lock.json +++ b/e2e-tests/playwright/package-lock.json @@ -1,4149 +1,5964 @@ { - "name": "playwright", - "version": "0.1.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "hasInstallScript": true, - "dependencies": { - "@axe-core/playwright": "4.10.1", - "@percy/cli": "1.30.6", - "@percy/playwright": "1.0.7", - "@playwright/test": "1.49.1", - "async-wait-until": "2.0.18", - "axe-core": "4.10.2", - "chalk": "4.1.2", - "dayjs": "1.11.13", - "deepmerge": "4.3.1", - "dotenv": "16.4.7", - "form-data-encoder": "4.0.2", - "formdata-node": "6.0.3", - "uuid": "11.0.5", - "zod": "3.24.1" - }, - "devDependencies": { - "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "8.20.0", - "@typescript-eslint/parser": "8.20.0", - "cross-env": "7.0.3", - "eslint": "9.18.0", - "prettier": "3.4.2", - "typescript": "5.7.3" - } - }, - "node_modules/@axe-core/playwright": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/@axe-core/playwright/-/playwright-4.10.1.tgz", - "integrity": "sha512-EV5t39VV68kuAfMKqb/RL+YjYKhfuGim9rgIaQ6Vntb2HgaCaau0h98Y3WEUqW1+PbdzxDtDNjFAipbtZuBmEA==", - "license": "MPL-2.0", - "dependencies": { - "axe-core": "~4.10.2" - }, - "peerDependencies": { - "playwright-core": ">= 1.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", - "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", - "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.4", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/core": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", - "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", - "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/js": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", - "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", - "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.10.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", - "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@percy/cli": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/cli/-/cli-1.30.6.tgz", - "integrity": "sha512-bR6niEywRPMXe3Koadk9ryQtCYP62LOTVQddi8I6STlOy8iEUsD2GMa8Sw4oU9hvD250Im0zpe5jP08BwrSfnw==", - "license": "MIT", - "dependencies": { - "@percy/cli-app": "1.30.6", - "@percy/cli-build": "1.30.6", - "@percy/cli-command": "1.30.6", - "@percy/cli-config": "1.30.6", - "@percy/cli-exec": "1.30.6", - "@percy/cli-snapshot": "1.30.6", - "@percy/cli-upload": "1.30.6", - "@percy/client": "1.30.6", - "@percy/logger": "1.30.6" - }, - "bin": { - "percy": "bin/run.cjs" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/cli-app": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/cli-app/-/cli-app-1.30.6.tgz", - "integrity": "sha512-IjsWqXcjjXBPErU87Zrvui2k8nogz6trXVUpiGVkPGlFXeGjQXzB95wUECRDqvDTRRrisW1p/XVJi62dUAOX2A==", - "license": "MIT", - "dependencies": { - "@percy/cli-command": "1.30.6", - "@percy/cli-exec": "1.30.6" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/cli-build": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/cli-build/-/cli-build-1.30.6.tgz", - "integrity": "sha512-8MxuqrjIn2pxuGOVm2V1XkVNrC88a2Xog6qC9omqf69LQfFB5hR1+s40M/MC/9oM8MJFRsNJJ5PUDRHOwgM02Q==", - "license": "MIT", - "dependencies": { - "@percy/cli-command": "1.30.6" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/cli-command": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/cli-command/-/cli-command-1.30.6.tgz", - "integrity": "sha512-k+/5GTXcbPfgKV6N7yqqt2E3OwQYJl/+fXQZSy7LAfNMR9X0w26ah2ErznyaCsLTPeDyurAJ7SPIOXHsq28uRA==", - "license": "MIT", - "dependencies": { - "@percy/config": "1.30.6", - "@percy/core": "1.30.6", - "@percy/logger": "1.30.6" - }, - "bin": { - "percy-cli-readme": "bin/readme.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/cli-config": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/cli-config/-/cli-config-1.30.6.tgz", - "integrity": "sha512-hKsadKRizSxe+SuuDItDZV0qd32FNpfUYHhpA1gxkAhAtgZy4d1bINmKgrB6I55cSD1yYZgRGXI1e2+NI5q5ig==", - "license": "MIT", - "dependencies": { - "@percy/cli-command": "1.30.6" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/cli-exec": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/cli-exec/-/cli-exec-1.30.6.tgz", - "integrity": "sha512-N/vdTi5NJWT7AqQt8XgheGgB+vByZtX/WkpG5/a0WsJltOIYJKM0ZZIaUxZsUtXwgustdrEFchlAin/87aasvg==", - "license": "MIT", - "dependencies": { - "@percy/cli-command": "1.30.6", - "@percy/logger": "1.30.6", - "cross-spawn": "^7.0.3", - "which": "^2.0.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/cli-snapshot": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/cli-snapshot/-/cli-snapshot-1.30.6.tgz", - "integrity": "sha512-D5qYBLVXBmIYloVfCGfIwYBg3vUXWaTA0dne0aEvIVWBN7QRKncFTHeehGe4CXal9tceFbJyx7yJCu3XXP10hg==", - "license": "MIT", - "dependencies": { - "@percy/cli-command": "1.30.6", - "yaml": "^2.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/cli-upload": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/cli-upload/-/cli-upload-1.30.6.tgz", - "integrity": "sha512-5buyO7tljBOeCKARLegoxT8NvtiZs/kIXt63d7BRVTfJKa7rn/2Xw0Y/DVseGixHFryZ6C//osvE50nHifcKYw==", - "license": "MIT", - "dependencies": { - "@percy/cli-command": "1.30.6", - "fast-glob": "^3.2.11", - "image-size": "^1.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/client": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/client/-/client-1.30.6.tgz", - "integrity": "sha512-iHcYK4djy/WA3ZqIVcgOmuOtDeMiGDmJZ0DlDG38HMmAPgXHSThNXNz9bnXb2OSJFxXVRdlAE8DoqFK5FnwNsg==", - "license": "MIT", - "dependencies": { - "@percy/env": "1.30.6", - "@percy/logger": "1.30.6", - "pako": "^2.1.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/config": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/config/-/config-1.30.6.tgz", - "integrity": "sha512-qYUu4TVLJgtG/RIwa/AM+d3f1xH4D3uSvCoWUhX4y5rK5QDZ0UqWEvDOD6CJDn8i1xXi4ZY/JB7HKYKUTHeppQ==", - "license": "MIT", - "dependencies": { - "@percy/logger": "1.30.6", - "ajv": "^8.6.2", - "cosmiconfig": "^8.0.0", - "yaml": "^2.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/core": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/core/-/core-1.30.6.tgz", - "integrity": "sha512-G0ULd3pHz8s4RajxUGTWGx8Ngl+jhOjIPNxOBtKh0ywgAnbvUWNWLKYvs9QinZcoPGfWgwc5+1btbeJxTAVGQg==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "@percy/client": "1.30.6", - "@percy/config": "1.30.6", - "@percy/dom": "1.30.6", - "@percy/logger": "1.30.6", - "@percy/webdriver-utils": "1.30.6", - "content-disposition": "^0.5.4", - "cross-spawn": "^7.0.3", - "extract-zip": "^2.0.1", - "fast-glob": "^3.2.11", - "micromatch": "^4.0.8", - "mime-types": "^2.1.34", - "pako": "^2.1.0", - "path-to-regexp": "^6.3.0", - "rimraf": "^3.0.2", - "ws": "^8.17.1", - "yaml": "^2.4.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/dom": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/dom/-/dom-1.30.6.tgz", - "integrity": "sha512-pMlzYYJfgVdNYbw1iJIQZxXzszL3EmIrbGvvpkred3RciJ4T3/pFlqiLiPS7TTUovMFFgRjTR1gLOH1eeWyM5A==", - "license": "MIT" - }, - "node_modules/@percy/env": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/env/-/env-1.30.6.tgz", - "integrity": "sha512-GU3ZcyiCUM3KiRmcpa5fpOIkuHBUonvBhNeg1jErZFEZFQDNm238SFnKQFEJIYCX96W5Q9qqXMwjApj7qBpiWg==", - "license": "MIT", - "dependencies": { - "@percy/logger": "1.30.6" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/logger": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/logger/-/logger-1.30.6.tgz", - "integrity": "sha512-HDhAIjjqOlpAIqClu+fvuWSA2cvxh3aMHtKN3gRdRMppHCvyyfmVbKd1PoLPV7Z0SQzZkyaBMAjiRXWMPksLig==", - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/playwright": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@percy/playwright/-/playwright-1.0.7.tgz", - "integrity": "sha512-eHRnbMcBqNB9krGUoSCFjr9Su4Njk1NjDquEgZ4zYzOzjoeoNdnvnXX+EFN5iNwiyiBuXk9qLxF1Bfi86ccyiA==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "playwright-core": ">=1" - } - }, - "node_modules/@percy/sdk-utils": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/sdk-utils/-/sdk-utils-1.30.6.tgz", - "integrity": "sha512-LSayDfxAaXJaSv5SIDKMf7EjDl+k4kufYO88YQwc9+9Yr58qqrPFon11x0PvJdA2IDGBo1G6QbvpLUO0Vem2FQ==", - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/webdriver-utils": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/webdriver-utils/-/webdriver-utils-1.30.6.tgz", - "integrity": "sha512-B1M9HWP3ZEM5CuDSMUx+68mrrKm9/JjJ0KO/OLztRh+v7TOsgOWpHMHalurwEIfoNf/olduQ4/Vv9TPrTSj72Q==", - "license": "MIT", - "dependencies": { - "@percy/config": "1.30.6", - "@percy/sdk-utils": "1.30.6" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@playwright/test": { - "version": "1.49.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.49.1.tgz", - "integrity": "sha512-Ky+BVzPz8pL6PQxHqNRW1k3mIyv933LML7HktS8uik0bUXNCdPhoS/kLihiO1tMf/egaJb4IutXd7UywvXEW+g==", - "license": "Apache-2.0", - "dependencies": { - "playwright": "1.49.1" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.10.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz", - "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==", - "license": "MIT", - "optional": true, - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/uuid": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "license": "MIT", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.20.0.tgz", - "integrity": "sha512-naduuphVw5StFfqp4Gq4WhIBE2gN1GEmMUExpJYknZJdRnc+2gDzB8Z3+5+/Kv33hPQRDGzQO/0opHE72lZZ6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.20.0", - "@typescript-eslint/type-utils": "8.20.0", - "@typescript-eslint/utils": "8.20.0", - "@typescript-eslint/visitor-keys": "8.20.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.20.0.tgz", - "integrity": "sha512-gKXG7A5HMyjDIedBi6bUrDcun8GIjnI8qOwVLiY3rx6T/sHP/19XLJOnIq/FgQvWLHja5JN/LSE7eklNBr612g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.20.0", - "@typescript-eslint/types": "8.20.0", - "@typescript-eslint/typescript-estree": "8.20.0", - "@typescript-eslint/visitor-keys": "8.20.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.20.0.tgz", - "integrity": "sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.20.0", - "@typescript-eslint/visitor-keys": "8.20.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.20.0.tgz", - "integrity": "sha512-bPC+j71GGvA7rVNAHAtOjbVXbLN5PkwqMvy1cwGeaxUoRQXVuKCebRoLzm+IPW/NtFFpstn1ummSIasD5t60GA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "8.20.0", - "@typescript-eslint/utils": "8.20.0", - "debug": "^4.3.4", - "ts-api-utils": "^2.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.20.0.tgz", - "integrity": "sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.20.0.tgz", - "integrity": "sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.20.0", - "@typescript-eslint/visitor-keys": "8.20.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.20.0.tgz", - "integrity": "sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.20.0", - "@typescript-eslint/types": "8.20.0", - "@typescript-eslint/typescript-estree": "8.20.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.20.0.tgz", - "integrity": "sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.20.0", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/async-wait-until": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/async-wait-until/-/async-wait-until-2.0.18.tgz", - "integrity": "sha512-K8L6m7bkSqCp4i1GYj8OkZTPyVcCOslzlvQbzhir/yMjEoIj1XZKnKJbIQTCW7ervgJgjFi23liDqN4in2BYtQ==", - "license": "MIT", - "engines": { - "node": ">= 0.14.0", - "npm": ">= 1.0.0" - } - }, - "node_modules/axe-core": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", - "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", - "license": "MPL-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/chalk/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/chalk/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/chalk/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT" - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "license": "MIT", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.1" - }, - "bin": { - "cross-env": "src/bin/cross-env.js", - "cross-env-shell": "src/bin/cross-env-shell.js" - }, - "engines": { - "node": ">=10.14", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" - }, - "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dotenv": { - "version": "16.4.7", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", - "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", - "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.10.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.18.0", - "@eslint/plugin-kit": "^0.2.5", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.14.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "license": "BSD-2-Clause", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.5.tgz", - "integrity": "sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/fastq": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", - "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", - "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", - "dev": true, - "license": "ISC" - }, - "node_modules/form-data-encoder": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-4.0.2.tgz", - "integrity": "sha512-KQVhvhK8ZkWzxKxOr56CPulAhH3dobtuQ4+hNQ+HekH/Wp5gSOafqRAeTphQUJAIk0GBvHZgJ2ZGRWd5kphMuw==", - "license": "MIT", - "engines": { - "node": ">= 18" - } - }, - "node_modules/formdata-node": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-6.0.3.tgz", - "integrity": "sha512-8e1++BCiTzUno9v5IZ2J6bv4RU+3UKDmqWUQD0MIMVCd9AdhWkO1gw57oo1mNEX1dMq2EGI+FbWz4B92pscSQg==", - "license": "MIT", - "engines": { - "node": ">= 18" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.0.tgz", - "integrity": "sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w==", - "license": "MIT", - "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=16.x" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", - "license": "(MIT AND Zlib)" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-to-regexp": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", - "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/playwright": { - "version": "1.49.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.49.1.tgz", - "integrity": "sha512-VYL8zLoNTBxVOrJBbDuRgDWa3i+mfQgDTrL8Ah9QXZ7ax4Dsj0MSq5bYgytRnDVVe+njoKnfsYkH3HzqVj5UZA==", - "license": "Apache-2.0", - "dependencies": { - "playwright-core": "1.49.1" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "fsevents": "2.3.2" - } - }, - "node_modules/playwright-core": { - "version": "1.49.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.49.1.tgz", - "integrity": "sha512-BzmpVcs4kE2CH15rWfzpjzVGhWERJfmnXmniSyKeRZUs9Ws65m+RGIi7mjJK/euCegfn3i7jvqWeWyHe9y3Vgg==", - "license": "Apache-2.0", - "bin": { - "playwright-core": "cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", - "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "license": "MIT", - "dependencies": { - "inherits": "~2.0.3" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-api-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", - "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", - "devOptional": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "license": "MIT", - "optional": true - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uuid": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.5.tgz", - "integrity": "sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/esm/bin/uuid" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/yaml": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zod": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", - "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - } + "name": "mattermost-playwright", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "mattermost-playwright", + "hasInstallScript": true, + "workspaces": [ + "lib", + "test" + ], + "dependencies": { + "@playwright/test": "1.51.1", + "dayjs": "1.11.13" + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "8.28.0", + "eslint": "9.23.0", + "eslint-import-resolver-typescript": "4.2.7", + "eslint-plugin-header": "3.1.1", + "eslint-plugin-import": "2.31.0", + "prettier": "3.5.3", + "typescript": "5.7.3" + } }, - "dependencies": { - "@axe-core/playwright": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/@axe-core/playwright/-/playwright-4.10.1.tgz", - "integrity": "sha512-EV5t39VV68kuAfMKqb/RL+YjYKhfuGim9rgIaQ6Vntb2HgaCaau0h98Y3WEUqW1+PbdzxDtDNjFAipbtZuBmEA==", - "requires": { - "axe-core": "~4.10.2" - } - }, - "@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "requires": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==" - }, - "@eslint-community/eslint-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", - "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.4.3" - } - }, - "@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "dev": true - }, - "@eslint/config-array": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", - "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", - "dev": true, - "requires": { - "@eslint/object-schema": "^2.1.4", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "@eslint/core": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", - "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.15" - } - }, - "@eslint/eslintrc": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", - "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "@eslint/js": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", - "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", - "dev": true - }, - "@eslint/object-schema": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", - "dev": true - }, - "@eslint/plugin-kit": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", - "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", - "dev": true, - "requires": { - "@eslint/core": "^0.10.0", - "levn": "^0.4.1" - } - }, - "@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true - }, - "@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", - "dev": true, - "requires": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" - }, - "dependencies": { - "@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true - } - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/retry": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", - "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", - "dev": true - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@percy/cli": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/cli/-/cli-1.30.6.tgz", - "integrity": "sha512-bR6niEywRPMXe3Koadk9ryQtCYP62LOTVQddi8I6STlOy8iEUsD2GMa8Sw4oU9hvD250Im0zpe5jP08BwrSfnw==", - "requires": { - "@percy/cli-app": "1.30.6", - "@percy/cli-build": "1.30.6", - "@percy/cli-command": "1.30.6", - "@percy/cli-config": "1.30.6", - "@percy/cli-exec": "1.30.6", - "@percy/cli-snapshot": "1.30.6", - "@percy/cli-upload": "1.30.6", - "@percy/client": "1.30.6", - "@percy/logger": "1.30.6" - } - }, - "@percy/cli-app": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/cli-app/-/cli-app-1.30.6.tgz", - "integrity": "sha512-IjsWqXcjjXBPErU87Zrvui2k8nogz6trXVUpiGVkPGlFXeGjQXzB95wUECRDqvDTRRrisW1p/XVJi62dUAOX2A==", - "requires": { - "@percy/cli-command": "1.30.6", - "@percy/cli-exec": "1.30.6" - } - }, - "@percy/cli-build": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/cli-build/-/cli-build-1.30.6.tgz", - "integrity": "sha512-8MxuqrjIn2pxuGOVm2V1XkVNrC88a2Xog6qC9omqf69LQfFB5hR1+s40M/MC/9oM8MJFRsNJJ5PUDRHOwgM02Q==", - "requires": { - "@percy/cli-command": "1.30.6" - } - }, - "@percy/cli-command": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/cli-command/-/cli-command-1.30.6.tgz", - "integrity": "sha512-k+/5GTXcbPfgKV6N7yqqt2E3OwQYJl/+fXQZSy7LAfNMR9X0w26ah2ErznyaCsLTPeDyurAJ7SPIOXHsq28uRA==", - "requires": { - "@percy/config": "1.30.6", - "@percy/core": "1.30.6", - "@percy/logger": "1.30.6" - } - }, - "@percy/cli-config": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/cli-config/-/cli-config-1.30.6.tgz", - "integrity": "sha512-hKsadKRizSxe+SuuDItDZV0qd32FNpfUYHhpA1gxkAhAtgZy4d1bINmKgrB6I55cSD1yYZgRGXI1e2+NI5q5ig==", - "requires": { - "@percy/cli-command": "1.30.6" - } - }, - "@percy/cli-exec": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/cli-exec/-/cli-exec-1.30.6.tgz", - "integrity": "sha512-N/vdTi5NJWT7AqQt8XgheGgB+vByZtX/WkpG5/a0WsJltOIYJKM0ZZIaUxZsUtXwgustdrEFchlAin/87aasvg==", - "requires": { - "@percy/cli-command": "1.30.6", - "@percy/logger": "1.30.6", - "cross-spawn": "^7.0.3", - "which": "^2.0.2" - } - }, - "@percy/cli-snapshot": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/cli-snapshot/-/cli-snapshot-1.30.6.tgz", - "integrity": "sha512-D5qYBLVXBmIYloVfCGfIwYBg3vUXWaTA0dne0aEvIVWBN7QRKncFTHeehGe4CXal9tceFbJyx7yJCu3XXP10hg==", - "requires": { - "@percy/cli-command": "1.30.6", - "yaml": "^2.0.0" - } - }, - "@percy/cli-upload": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/cli-upload/-/cli-upload-1.30.6.tgz", - "integrity": "sha512-5buyO7tljBOeCKARLegoxT8NvtiZs/kIXt63d7BRVTfJKa7rn/2Xw0Y/DVseGixHFryZ6C//osvE50nHifcKYw==", - "requires": { - "@percy/cli-command": "1.30.6", - "fast-glob": "^3.2.11", - "image-size": "^1.0.0" - } - }, - "@percy/client": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/client/-/client-1.30.6.tgz", - "integrity": "sha512-iHcYK4djy/WA3ZqIVcgOmuOtDeMiGDmJZ0DlDG38HMmAPgXHSThNXNz9bnXb2OSJFxXVRdlAE8DoqFK5FnwNsg==", - "requires": { - "@percy/env": "1.30.6", - "@percy/logger": "1.30.6", - "pako": "^2.1.0" - } - }, - "@percy/config": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/config/-/config-1.30.6.tgz", - "integrity": "sha512-qYUu4TVLJgtG/RIwa/AM+d3f1xH4D3uSvCoWUhX4y5rK5QDZ0UqWEvDOD6CJDn8i1xXi4ZY/JB7HKYKUTHeppQ==", - "requires": { - "@percy/logger": "1.30.6", - "ajv": "^8.6.2", - "cosmiconfig": "^8.0.0", - "yaml": "^2.0.0" - } - }, - "@percy/core": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/core/-/core-1.30.6.tgz", - "integrity": "sha512-G0ULd3pHz8s4RajxUGTWGx8Ngl+jhOjIPNxOBtKh0ywgAnbvUWNWLKYvs9QinZcoPGfWgwc5+1btbeJxTAVGQg==", - "requires": { - "@percy/client": "1.30.6", - "@percy/config": "1.30.6", - "@percy/dom": "1.30.6", - "@percy/logger": "1.30.6", - "@percy/webdriver-utils": "1.30.6", - "content-disposition": "^0.5.4", - "cross-spawn": "^7.0.3", - "extract-zip": "^2.0.1", - "fast-glob": "^3.2.11", - "micromatch": "^4.0.8", - "mime-types": "^2.1.34", - "pako": "^2.1.0", - "path-to-regexp": "^6.3.0", - "rimraf": "^3.0.2", - "ws": "^8.17.1", - "yaml": "^2.4.1" - } - }, - "@percy/dom": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/dom/-/dom-1.30.6.tgz", - "integrity": "sha512-pMlzYYJfgVdNYbw1iJIQZxXzszL3EmIrbGvvpkred3RciJ4T3/pFlqiLiPS7TTUovMFFgRjTR1gLOH1eeWyM5A==" - }, - "@percy/env": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/env/-/env-1.30.6.tgz", - "integrity": "sha512-GU3ZcyiCUM3KiRmcpa5fpOIkuHBUonvBhNeg1jErZFEZFQDNm238SFnKQFEJIYCX96W5Q9qqXMwjApj7qBpiWg==", - "requires": { - "@percy/logger": "1.30.6" - } - }, - "@percy/logger": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/logger/-/logger-1.30.6.tgz", - "integrity": "sha512-HDhAIjjqOlpAIqClu+fvuWSA2cvxh3aMHtKN3gRdRMppHCvyyfmVbKd1PoLPV7Z0SQzZkyaBMAjiRXWMPksLig==" - }, - "@percy/playwright": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@percy/playwright/-/playwright-1.0.7.tgz", - "integrity": "sha512-eHRnbMcBqNB9krGUoSCFjr9Su4Njk1NjDquEgZ4zYzOzjoeoNdnvnXX+EFN5iNwiyiBuXk9qLxF1Bfi86ccyiA==", - "requires": {} - }, - "@percy/sdk-utils": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/sdk-utils/-/sdk-utils-1.30.6.tgz", - "integrity": "sha512-LSayDfxAaXJaSv5SIDKMf7EjDl+k4kufYO88YQwc9+9Yr58qqrPFon11x0PvJdA2IDGBo1G6QbvpLUO0Vem2FQ==" - }, - "@percy/webdriver-utils": { - "version": "1.30.6", - "resolved": "https://registry.npmjs.org/@percy/webdriver-utils/-/webdriver-utils-1.30.6.tgz", - "integrity": "sha512-B1M9HWP3ZEM5CuDSMUx+68mrrKm9/JjJ0KO/OLztRh+v7TOsgOWpHMHalurwEIfoNf/olduQ4/Vv9TPrTSj72Q==", - "requires": { - "@percy/config": "1.30.6", - "@percy/sdk-utils": "1.30.6" - } - }, - "@playwright/test": { - "version": "1.49.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.49.1.tgz", - "integrity": "sha512-Ky+BVzPz8pL6PQxHqNRW1k3mIyv933LML7HktS8uik0bUXNCdPhoS/kLihiO1tMf/egaJb4IutXd7UywvXEW+g==", - "requires": { - "playwright": "1.49.1" - } - }, - "@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "@types/node": { - "version": "22.10.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz", - "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==", - "optional": true, - "requires": { - "undici-types": "~6.20.0" - } - }, - "@types/uuid": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", - "dev": true - }, - "@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "@typescript-eslint/eslint-plugin": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.20.0.tgz", - "integrity": "sha512-naduuphVw5StFfqp4Gq4WhIBE2gN1GEmMUExpJYknZJdRnc+2gDzB8Z3+5+/Kv33hPQRDGzQO/0opHE72lZZ6A==", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.20.0", - "@typescript-eslint/type-utils": "8.20.0", - "@typescript-eslint/utils": "8.20.0", - "@typescript-eslint/visitor-keys": "8.20.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.20.0.tgz", - "integrity": "sha512-gKXG7A5HMyjDIedBi6bUrDcun8GIjnI8qOwVLiY3rx6T/sHP/19XLJOnIq/FgQvWLHja5JN/LSE7eklNBr612g==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "8.20.0", - "@typescript-eslint/types": "8.20.0", - "@typescript-eslint/typescript-estree": "8.20.0", - "@typescript-eslint/visitor-keys": "8.20.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.20.0.tgz", - "integrity": "sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "8.20.0", - "@typescript-eslint/visitor-keys": "8.20.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.20.0.tgz", - "integrity": "sha512-bPC+j71GGvA7rVNAHAtOjbVXbLN5PkwqMvy1cwGeaxUoRQXVuKCebRoLzm+IPW/NtFFpstn1ummSIasD5t60GA==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "8.20.0", - "@typescript-eslint/utils": "8.20.0", - "debug": "^4.3.4", - "ts-api-utils": "^2.0.0" - } - }, - "@typescript-eslint/types": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.20.0.tgz", - "integrity": "sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.20.0.tgz", - "integrity": "sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "8.20.0", - "@typescript-eslint/visitor-keys": "8.20.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.0.0" - } - }, - "@typescript-eslint/utils": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.20.0.tgz", - "integrity": "sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.20.0", - "@typescript-eslint/types": "8.20.0", - "@typescript-eslint/typescript-estree": "8.20.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.20.0.tgz", - "integrity": "sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "8.20.0", - "eslint-visitor-keys": "^4.2.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true - } - } - }, - "acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "requires": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "async-wait-until": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/async-wait-until/-/async-wait-until-2.0.18.tgz", - "integrity": "sha512-K8L6m7bkSqCp4i1GYj8OkZTPyVcCOslzlvQbzhir/yMjEoIj1XZKnKJbIQTCW7ervgJgjFi23liDqN4in2BYtQ==" - }, - "axe-core": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", - "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "requires": { - "fill-range": "^7.1.1" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "requires": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - } - }, - "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.1" - } - }, - "cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" - }, - "debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "requires": { - "ms": "^2.1.3" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==" - }, - "dotenv": { - "version": "16.4.7", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", - "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", - "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.10.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.18.0", - "@eslint/plugin-kit": "^0.2.5", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - }, - "espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", - "dev": true, - "requires": { - "acorn": "^8.14.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true - } - } - }, - "esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fast-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.5.tgz", - "integrity": "sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==" - }, - "fastq": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", - "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", - "requires": { - "reusify": "^1.0.4" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "requires": { - "pend": "~1.2.0" - } - }, - "file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "requires": { - "flat-cache": "^4.0.0" - } - }, - "fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "requires": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - } - }, - "flatted": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", - "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", - "dev": true - }, - "form-data-encoder": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-4.0.2.tgz", - "integrity": "sha512-KQVhvhK8ZkWzxKxOr56CPulAhH3dobtuQ4+hNQ+HekH/Wp5gSOafqRAeTphQUJAIk0GBvHZgJ2ZGRWd5kphMuw==" - }, - "formdata-node": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-6.0.3.tgz", - "integrity": "sha512-8e1++BCiTzUno9v5IZ2J6bv4RU+3UKDmqWUQD0MIMVCd9AdhWkO1gw57oo1mNEX1dMq2EGI+FbWz4B92pscSQg==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true - }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true - }, - "image-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.0.tgz", - "integrity": "sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w==", - "requires": { - "queue": "6.0.2" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "requires": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-to-regexp": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", - "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==" - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" - }, - "picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "playwright": { - "version": "1.49.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.49.1.tgz", - "integrity": "sha512-VYL8zLoNTBxVOrJBbDuRgDWa3i+mfQgDTrL8Ah9QXZ7ax4Dsj0MSq5bYgytRnDVVe+njoKnfsYkH3HzqVj5UZA==", - "requires": { - "fsevents": "2.3.2", - "playwright-core": "1.49.1" - } - }, - "playwright-core": { - "version": "1.49.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.49.1.tgz", - "integrity": "sha512-BzmpVcs4kE2CH15rWfzpjzVGhWERJfmnXmniSyKeRZUs9Ws65m+RGIi7mjJK/euCegfn3i7jvqWeWyHe9y3Vgg==" - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", - "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", - "dev": true - }, - "pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true - }, - "queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "requires": { - "inherits": "~2.0.3" - } - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "ts-api-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", - "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", - "dev": true, - "requires": {} - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, + "../../webapp/platform/client": { + "name": "@mattermost/client", + "version": "10.6.0", + "license": "MIT", + "devDependencies": { + "@types/jest": "28.1.8", + "jest": "27.1.0", + "typescript": "^5.0.0" + }, + "peerDependencies": { + "@mattermost/types": "^9.3.0 || ^10.0.0", + "typescript": "^4.3.0 || ^5.0.0" + }, + "peerDependenciesMeta": { "typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", - "devOptional": true - }, - "undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "optional": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "uuid": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.5.tgz", - "integrity": "sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "requires": {} - }, - "yaml": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==" - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, - "zod": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", - "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==" + "optional": true } + } + }, + "../../webapp/platform/types": { + "name": "@mattermost/types", + "version": "10.6.0", + "license": "MIT", + "devDependencies": { + "typescript": "^5.0.0" + }, + "peerDependencies": { + "typescript": "^4.3.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "lib": { + "name": "@mattermost/playwright-lib", + "version": "10.6.1", + "license": "MIT", + "dependencies": { + "@axe-core/playwright": "4.10.1", + "@mattermost/client": "file:../../../webapp/platform/client", + "@mattermost/types": "file:../../../webapp/platform/types", + "@percy/cli": "1.30.7", + "@percy/playwright": "1.0.7", + "async-wait-until": "2.0.23", + "axe-core": "4.10.3", + "deepmerge": "4.3.1", + "dotenv": "16.4.7", + "mime-types": "3.0.1", + "uuid": "11.1.0" + }, + "devDependencies": { + "@rollup/plugin-typescript": "12.1.2", + "@types/mime-types": "2.1.4", + "@types/node": "22.13.14", + "@types/react": "19.0.12", + "rollup": "4.38.0", + "rollup-plugin-copy": "3.5.0" + }, + "peerDependencies": { + "@playwright/test": "1.51.1" + } + }, + "lib/node_modules/axe-core": { + "version": "4.10.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", + "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "lib/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "lib/node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@axe-core/playwright": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@axe-core/playwright/-/playwright-4.10.1.tgz", + "integrity": "sha512-EV5t39VV68kuAfMKqb/RL+YjYKhfuGim9rgIaQ6Vntb2HgaCaau0h98Y3WEUqW1+PbdzxDtDNjFAipbtZuBmEA==", + "license": "MPL-2.0", + "dependencies": { + "axe-core": "~4.10.2" + }, + "peerDependencies": { + "playwright-core": ">= 1.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.0.tgz", + "integrity": "sha512-H+N/FqT07NmLmt6OFFtDfwe8PNygprzBikrEMyQfgqSmT0vzE515Pz7R8izwB9q/zsH/MA64AKoul3sA6/CzVg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.0.tgz", + "integrity": "sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", + "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz", + "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", + "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "9.23.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.23.0.tgz", + "integrity": "sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", + "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.12.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@mattermost/client": { + "resolved": "../../webapp/platform/client", + "link": true + }, + "node_modules/@mattermost/playwright-lib": { + "resolved": "lib", + "link": true + }, + "node_modules/@mattermost/playwright-test": { + "resolved": "test", + "link": true + }, + "node_modules/@mattermost/types": { + "resolved": "../../webapp/platform/types", + "link": true + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.7.tgz", + "integrity": "sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.3.1", + "@emnapi/runtime": "^1.3.1", + "@tybys/wasm-util": "^0.9.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@percy/cli": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/cli/-/cli-1.30.7.tgz", + "integrity": "sha512-0oX+dsiNkmk7PaERt500b/5WrVYRkG0AyLqVory4gRpeCCfgq5P+55o1cedqdSLQN5jIt9en/c+ZaQ1VaySbEA==", + "license": "MIT", + "dependencies": { + "@percy/cli-app": "1.30.7", + "@percy/cli-build": "1.30.7", + "@percy/cli-command": "1.30.7", + "@percy/cli-config": "1.30.7", + "@percy/cli-exec": "1.30.7", + "@percy/cli-snapshot": "1.30.7", + "@percy/cli-upload": "1.30.7", + "@percy/client": "1.30.7", + "@percy/logger": "1.30.7" + }, + "bin": { + "percy": "bin/run.cjs" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-app": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/cli-app/-/cli-app-1.30.7.tgz", + "integrity": "sha512-MPgCCH5a7RRncy0ik7JDJorW216WshC5mRimYh4NWE8DB1t0z0zphust4LSy8dQU2Sz5pR9eWiGFJrYpa4QXJQ==", + "license": "MIT", + "dependencies": { + "@percy/cli-command": "1.30.7", + "@percy/cli-exec": "1.30.7" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-build": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/cli-build/-/cli-build-1.30.7.tgz", + "integrity": "sha512-S6agG8pnMSpOF+5xMIMrl1zbWC59VfNuTKpbxB7gN4EHRB35aovKKcoVlQWYtUseQGn1WScIjA+jINCfojiNvg==", + "license": "MIT", + "dependencies": { + "@percy/cli-command": "1.30.7" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-command": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/cli-command/-/cli-command-1.30.7.tgz", + "integrity": "sha512-dBZne3Kwn+KCL5evlh1rDQ898er/hs5qcP1EAveYKWX/kdZxPBrhZcqVSmsNgAkxzIhUekZmej9HC0DiuCFxLQ==", + "license": "MIT", + "dependencies": { + "@percy/config": "1.30.7", + "@percy/core": "1.30.7", + "@percy/logger": "1.30.7" + }, + "bin": { + "percy-cli-readme": "bin/readme.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-config": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/cli-config/-/cli-config-1.30.7.tgz", + "integrity": "sha512-QdM5XE32x8KPsDv/RJjeHyYN+jTlU3HbtfDkYZDUykdEcidaBT+MNXjRq/cNn9CNqU4TzoRjuoOSHpE4cZUCCw==", + "license": "MIT", + "dependencies": { + "@percy/cli-command": "1.30.7" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-exec": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/cli-exec/-/cli-exec-1.30.7.tgz", + "integrity": "sha512-5hGgSNJuVxH0lKIa9Os/cFAGWy4wdPm4TkfhnnYH37nPP0IA11Z5GNbu9iiLGEvYG6o0BMj545SXvnvMeZeqTA==", + "license": "MIT", + "dependencies": { + "@percy/cli-command": "1.30.7", + "@percy/logger": "1.30.7", + "cross-spawn": "^7.0.3", + "which": "^2.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-snapshot": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/cli-snapshot/-/cli-snapshot-1.30.7.tgz", + "integrity": "sha512-h0BT8zEQVtaE2KYXikDmmekm7Z7u60dppytPZOIdasLXyqo5stmGOnsUK+9JatpWBNanGGRLL8lJnZmqNf2aTg==", + "license": "MIT", + "dependencies": { + "@percy/cli-command": "1.30.7", + "yaml": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-upload": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/cli-upload/-/cli-upload-1.30.7.tgz", + "integrity": "sha512-N/2cEIe+e6XgBvB7Lx4nyyNygGRwjSp2MbpXKiFDpTOs8f8kJQRq7tnELa1Wos6HJ9m7pgb9sGWF2r9gq4MbTw==", + "license": "MIT", + "dependencies": { + "@percy/cli-command": "1.30.7", + "fast-glob": "^3.2.11", + "image-size": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/client": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/client/-/client-1.30.7.tgz", + "integrity": "sha512-NZxqfg8QehJBDzGTfxOx7vM0f/Hu3HxeSPO/pj/dqvS2vghqdGiMoZq0pjGYMirZ7VRVr/G5vSc3sBEEzEj52Q==", + "license": "MIT", + "dependencies": { + "@percy/env": "1.30.7", + "@percy/logger": "1.30.7", + "pac-proxy-agent": "^7.0.2", + "pako": "^2.1.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/config": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/config/-/config-1.30.7.tgz", + "integrity": "sha512-bFA/hwKhn0E6UKVKHWwbxyCdzsfhTWh+QdZdviAiyN2Pviyg8HmFgQfsKIFmtcizhQs/7Byx+1XpYnw8EvbGEg==", + "license": "MIT", + "dependencies": { + "@percy/logger": "1.30.7", + "ajv": "^8.6.2", + "cosmiconfig": "^8.0.0", + "yaml": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/config/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@percy/config/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/@percy/core": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/core/-/core-1.30.7.tgz", + "integrity": "sha512-FPoY6+bEe8dtIThbpvRVEbqtUU3Iimlpf1aOqqMTMQ0QTRxZ4wlhod+2a2X5lLfVPRw+ojtbPprQRWALsYJWiQ==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@percy/client": "1.30.7", + "@percy/config": "1.30.7", + "@percy/dom": "1.30.7", + "@percy/logger": "1.30.7", + "@percy/monitoring": "1.30.7", + "@percy/webdriver-utils": "1.30.7", + "content-disposition": "^0.5.4", + "cross-spawn": "^7.0.3", + "extract-zip": "^2.0.1", + "fast-glob": "^3.2.11", + "micromatch": "^4.0.8", + "mime-types": "^2.1.34", + "pako": "^2.1.0", + "path-to-regexp": "^6.3.0", + "rimraf": "^3.0.2", + "ws": "^8.17.1", + "yaml": "^2.4.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/dom": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/dom/-/dom-1.30.7.tgz", + "integrity": "sha512-/3ZWIfd62VFkgtAeeg73orUYBC0D/RgopT2TNzjCFQAu3noduH/JH8pLQGvbfdt5QpqszTYYgL7uxLE/dfhH7w==", + "license": "MIT" + }, + "node_modules/@percy/env": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/env/-/env-1.30.7.tgz", + "integrity": "sha512-5Gx1aU6xV52PK17QMFp0ytnVcdKce0AYCvI19IDd4V61woBYu4wYUZG1UFFy8Mpi1Km+cfrdJ77UW2eDobdx8g==", + "license": "MIT", + "dependencies": { + "@percy/logger": "1.30.7" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/logger": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/logger/-/logger-1.30.7.tgz", + "integrity": "sha512-eq9fgI+WUrbJXSk3gae+tDhB6sdLTEtK/Oms8ZDctCWWF2elXuYEMredcHIAe4g6ipAwxS0A5EeS2AXhaFEHyw==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/monitoring": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/monitoring/-/monitoring-1.30.7.tgz", + "integrity": "sha512-43+tr6ZKTCx+yGOGoi9SYRCZl+PcbvbEUhSekAQTPML/2xNNCPREdGC78OYaXZ/CSFyP3q+K7Tmp3AGCwyCJQw==", + "license": "MIT", + "dependencies": { + "@percy/config": "1.30.7", + "@percy/logger": "1.30.7", + "@percy/sdk-utils": "1.30.7", + "systeminformation": "^5.25.11" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/playwright": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@percy/playwright/-/playwright-1.0.7.tgz", + "integrity": "sha512-eHRnbMcBqNB9krGUoSCFjr9Su4Njk1NjDquEgZ4zYzOzjoeoNdnvnXX+EFN5iNwiyiBuXk9qLxF1Bfi86ccyiA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "playwright-core": ">=1" + } + }, + "node_modules/@percy/sdk-utils": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/sdk-utils/-/sdk-utils-1.30.7.tgz", + "integrity": "sha512-HVQSg0MgY4Ziv0mtbeelz4aRBKoEQnKaKtWl7Nf6FzSELAdUXNz4BNRBAJWOt8O6M5MRXbk6/7jSFJStGsg5Zw==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/webdriver-utils": { + "version": "1.30.7", + "resolved": "https://registry.npmjs.org/@percy/webdriver-utils/-/webdriver-utils-1.30.7.tgz", + "integrity": "sha512-754f2K/55f37aZLgdCDHAMAZRlUbpkg7hC966Bu0OyRVhFjIj5rFohnwiVNQpE+uyFr6bhLWHDnU4aoCgv25WA==", + "license": "MIT", + "dependencies": { + "@percy/config": "1.30.7", + "@percy/sdk-utils": "1.30.7" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@playwright/test": { + "version": "1.51.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.51.1.tgz", + "integrity": "sha512-nM+kEaTSAoVlXmMPH10017vn3FSiFqr/bh4fKg9vmAdMfd9SDqRZNvPSiAHADc/itWak+qPvMPZQOPwCBW7k7Q==", + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.51.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@rollup/plugin-typescript": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.2.tgz", + "integrity": "sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.38.0.tgz", + "integrity": "sha512-ldomqc4/jDZu/xpYU+aRxo3V4mGCV9HeTgUBANI3oIQMOL+SsxB+S2lxMpkFp5UamSS3XuTMQVbsS24R4J4Qjg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.38.0.tgz", + "integrity": "sha512-VUsgcy4GhhT7rokwzYQP+aV9XnSLkkhlEJ0St8pbasuWO/vwphhZQxYEKUP3ayeCYLhk6gEtacRpYP/cj3GjyQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.38.0.tgz", + "integrity": "sha512-buA17AYXlW9Rn091sWMq1xGUvWQFOH4N1rqUxGJtEQzhChxWjldGCCup7r/wUnaI6Au8sKXpoh0xg58a7cgcpg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.38.0.tgz", + "integrity": "sha512-Mgcmc78AjunP1SKXl624vVBOF2bzwNWFPMP4fpOu05vS0amnLcX8gHIge7q/lDAHy3T2HeR0TqrriZDQS2Woeg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.38.0.tgz", + "integrity": "sha512-zzJACgjLbQTsscxWqvrEQAEh28hqhebpRz5q/uUd1T7VTwUNZ4VIXQt5hE7ncs0GrF+s7d3S4on4TiXUY8KoQA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.38.0.tgz", + "integrity": "sha512-hCY/KAeYMCyDpEE4pTETam0XZS4/5GXzlLgpi5f0IaPExw9kuB+PDTOTLuPtM10TlRG0U9OSmXJ+Wq9J39LvAg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.38.0.tgz", + "integrity": "sha512-mimPH43mHl4JdOTD7bUMFhBdrg6f9HzMTOEnzRmXbOZqjijCw8LA5z8uL6LCjxSa67H2xiLFvvO67PT05PRKGg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.38.0.tgz", + "integrity": "sha512-tPiJtiOoNuIH8XGG8sWoMMkAMm98PUwlriOFCCbZGc9WCax+GLeVRhmaxjJtz6WxrPKACgrwoZ5ia/uapq3ZVg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.38.0.tgz", + "integrity": "sha512-wZco59rIVuB0tjQS0CSHTTUcEde+pXQWugZVxWaQFdQQ1VYub/sTrNdY76D1MKdN2NB48JDuGABP6o6fqos8mA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.38.0.tgz", + "integrity": "sha512-fQgqwKmW0REM4LomQ+87PP8w8xvU9LZfeLBKybeli+0yHT7VKILINzFEuggvnV9M3x1Ed4gUBmGUzCo/ikmFbQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.38.0.tgz", + "integrity": "sha512-hz5oqQLXTB3SbXpfkKHKXLdIp02/w3M+ajp8p4yWOWwQRtHWiEOCKtc9U+YXahrwdk+3qHdFMDWR5k+4dIlddg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.38.0.tgz", + "integrity": "sha512-NXqygK/dTSibQ+0pzxsL3r4Xl8oPqVoWbZV9niqOnIHV/J92fe65pOir0xjkUZDRSPyFRvu+4YOpJF9BZHQImw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.38.0.tgz", + "integrity": "sha512-GEAIabR1uFyvf/jW/5jfu8gjM06/4kZ1W+j1nWTSSB3w6moZEBm7iBtzwQ3a1Pxos2F7Gz+58aVEnZHU295QTg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.38.0.tgz", + "integrity": "sha512-9EYTX+Gus2EGPbfs+fh7l95wVADtSQyYw4DfSBcYdUEAmP2lqSZY0Y17yX/3m5VKGGJ4UmIH5LHLkMJft3bYoA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.38.0.tgz", + "integrity": "sha512-Mpp6+Z5VhB9VDk7RwZXoG2qMdERm3Jw07RNlXHE0bOnEeX+l7Fy4bg+NxfyN15ruuY3/7Vrbpm75J9QHFqj5+Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.38.0.tgz", + "integrity": "sha512-vPvNgFlZRAgO7rwncMeE0+8c4Hmc+qixnp00/Uv3ht2x7KYrJ6ERVd3/R0nUtlE6/hu7/HiiNHJ/rP6knRFt1w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.38.0.tgz", + "integrity": "sha512-q5Zv+goWvQUGCaL7fU8NuTw8aydIL/C9abAVGCzRReuj5h30TPx4LumBtAidrVOtXnlB+RZkBtExMsfqkMfb8g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.38.0.tgz", + "integrity": "sha512-u/Jbm1BU89Vftqyqbmxdq14nBaQjQX1HhmsdBWqSdGClNaKwhjsg5TpW+5Ibs1mb8Es9wJiMdl86BcmtUVXNZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.38.0.tgz", + "integrity": "sha512-mqu4PzTrlpNHHbu5qleGvXJoGgHpChBlrBx/mEhTPpnAL1ZAYFlvHD7rLK839LLKQzqEQMFJfGrrOHItN4ZQqA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.38.0.tgz", + "integrity": "sha512-jjqy3uWlecfB98Psxb5cD6Fny9Fupv9LrDSPTQZUROqjvZmcCqNu4UMl7qqhlUUGpwiAkotj6GYu4SZdcr/nLw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/fs-extra": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", + "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mime-types": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.4.tgz", + "integrity": "sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.13.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.14.tgz", + "integrity": "sha512-Zs/Ollc1SJ8nKUAgc7ivOEdIBM8JAKgrqqUYi2J997JuKO7/tpQC+WCetQ1sypiKCQWHdvdg9wBNpUPEWZae7w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/react": { + "version": "19.0.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.12.tgz", + "integrity": "sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.28.0.tgz", + "integrity": "sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.28.0", + "@typescript-eslint/type-utils": "8.28.0", + "@typescript-eslint/utils": "8.28.0", + "@typescript-eslint/visitor-keys": "8.28.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.24.1.tgz", + "integrity": "sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.24.1", + "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/typescript-estree": "8.24.1", + "@typescript-eslint/visitor-keys": "8.24.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.24.1.tgz", + "integrity": "sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/visitor-keys": "8.24.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.1.tgz", + "integrity": "sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/visitor-keys": "8.24.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.1.tgz", + "integrity": "sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@typescript-eslint/types": "8.24.1", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.28.0.tgz", + "integrity": "sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.28.0", + "@typescript-eslint/visitor-keys": "8.28.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.28.0.tgz", + "integrity": "sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.28.0.tgz", + "integrity": "sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.28.0", + "@typescript-eslint/utils": "8.28.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.1.tgz", + "integrity": "sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.28.0.tgz", + "integrity": "sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.28.0", + "@typescript-eslint/visitor-keys": "8.28.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.28.0.tgz", + "integrity": "sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.28.0.tgz", + "integrity": "sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.28.0", + "@typescript-eslint/types": "8.28.0", + "@typescript-eslint/typescript-estree": "8.28.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.28.0.tgz", + "integrity": "sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.28.0.tgz", + "integrity": "sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.28.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/@typescript-eslint/types": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.28.0.tgz", + "integrity": "sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.3.2.tgz", + "integrity": "sha512-ddnlXgRi0Fog5+7U5Q1qY62wl95Q1lB4tXQX1UIA9YHmRCHN2twaQW0/4tDVGCvTVEU3xEayU7VemEr7GcBYUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.3.2.tgz", + "integrity": "sha512-tnl9xoEeg503jis+LW5cuq4hyLGQyqaoBL8VdPSqcewo/FL1C8POHbzl+AL25TidWYJD+R6bGUTE381kA1sT9w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.3.2.tgz", + "integrity": "sha512-zyPn9LFCCjhKPeCtECZaiMUgkYN/VpLb4a9Xv7QriJmTaQxsuDtXqOHifrzUXIhorJTyS+5MOKDuNL0X9I4EHA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.3.2.tgz", + "integrity": "sha512-UWx56Wh59Ro69fe+Wfvld4E1n9KG0e3zeouWLn8eSasyi/yVH/7ZW3CLTVFQ81oMKSpXwr5u6RpzttDXZKiO4g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.3.2.tgz", + "integrity": "sha512-VYGQXsOEJtfaoY2fOm8Z9ii5idFaHFYlrq3yMFZPaFKo8ufOXYm8hnfru7qetbM9MX116iWaPC0ZX5sK+1Dr+g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.3.2.tgz", + "integrity": "sha512-3zP420zxJfYPD1rGp2/OTIBxF8E3+/6VqCG+DEO6kkDgBiloa7Y8pw1o7N9BfgAC+VC8FPZsFXhV2lpx+lLRMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.3.2.tgz", + "integrity": "sha512-ZWjSleUgr88H4Kei7yT4PlPqySTuWN1OYDDcdbmMCtLWFly3ed+rkrcCb3gvqXdDbYrGOtzv3g2qPEN+WWNv5Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.3.2.tgz", + "integrity": "sha512-p+5OvYJ2UOlpjes3WfBlxyvQok2u26hLyPxLFHkYlfzhZW0juhvBf/tvewz1LDFe30M7zL9cF4OOO5dcvtk+cw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.3.2.tgz", + "integrity": "sha512-yweY7I6SqNn3kvj6vE4PQRo7j8Oz6+NiUhmgciBNAUOuI3Jq0bnW29hbHJdxZRSN1kYkQnSkbbA1tT8VnK816w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.3.2.tgz", + "integrity": "sha512-fNIvtzJcGN9hzWTIayrTSk2+KHQrqKbbY+I88xMVMOFV9t4AXha4veJdKaIuuks+2JNr6GuuNdsL7+exywZ32w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.3.2.tgz", + "integrity": "sha512-OaFEw8WAjiwBGxutQgkWhoAGB5BQqZJ8Gjt/mW+m6DWNjimcxU22uWCuEtfw1CIwLlKPOzsgH0429fWmZcTGkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.3.2.tgz", + "integrity": "sha512-u+sumtO7M0AGQ9bNQrF4BHNpUyxo23FM/yXZfmVAicTQ+mXtG06O7pm5zQUw3Mr4jRs2I84uh4O0hd8bdouuvQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.7" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.3.2.tgz", + "integrity": "sha512-ZAJKy95vmDIHsRFuPNqPQRON8r2mSMf3p9DoX+OMOhvu2c8OXGg8MvhGRf3PNg45ozRrPdXDnngURKgaFfpGoQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.3.2.tgz", + "integrity": "sha512-nQG4YFAS2BLoKVQFK/FrWJvFATI5DQUWQrcPcsWG9Ve5BLLHZuPOrJ2SpAJwLXQrRv6XHSFAYGI8wQpBg/CiFA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.3.2.tgz", + "integrity": "sha512-XBWpUP0mHya6yGBwNefhyEa6V7HgYKCxEAY4qhTm/PcAQyBPNmjj97VZJOJkVdUsyuuii7xmq0pXWX/c2aToHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/async-wait-until": { + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/async-wait-until/-/async-wait-until-2.0.23.tgz", + "integrity": "sha512-441GE8KPiNV2/T+rce4Cw39jN5wx6/9zEJ0BR0o4vaXOUQHEURPBCBja9rQkmYFg3ebfrOMJg0f65RXZptVReQ==", + "license": "MIT", + "engines": { + "node": ">= 0.14.0", + "npm": ">= 1.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", + "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint": { + "version": "9.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.23.0.tgz", + "integrity": "sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.2", + "@eslint/config-helpers": "^0.2.0", + "@eslint/core": "^0.12.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.23.0", + "@eslint/plugin-kit": "^0.2.7", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.3.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "4.2.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-4.2.7.tgz", + "integrity": "sha512-9SaurN++KhzVgS0Ejldr0mtuCh3PCX3csvQhdF4FCHgSVoHofIkgvlMki+uVoQ1C2KVdBXNAlQOWSIiuOjYcdw==", + "dev": true, + "license": "ISC", + "dependencies": { + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.12", + "unrs-resolver": "^1.3.2" + }, + "engines": { + "node": "^16.17.0 || >=18.6.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-header": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz", + "integrity": "sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=7.7.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", + "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", + "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/get-uri": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", + "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", + "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.0.tgz", + "integrity": "sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w==", + "license": "MIT", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.7.1" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", + "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "license": "MIT" + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/playwright": { + "version": "1.51.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.51.1.tgz", + "integrity": "sha512-kkx+MB2KQRkyxjYPc3a0wLZZoDczmppyGJIvQ43l+aZihkaVvmu/21kiyaHeHjiFxjxNNFnUncKmcGIyOojsaw==", + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.51.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.51.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.51.1.tgz", + "integrity": "sha512-/crRMj8+j/Nq5s8QcvegseuyeZPxpQCZb6HNk3Sos3BlZyAknRjoyJPFWkpNn8v0+P3WiwqFF8P+zQo4eqiNuw==", + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "license": "MIT", + "dependencies": { + "inherits": "~2.0.3" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.38.0.tgz", + "integrity": "sha512-5SsIRtJy9bf1ErAOiFMFzl64Ex9X5V7bnJ+WlFMb+zmP459OSWCEG7b0ERZ+PEU7xPt4OG3RHbrp1LJlXxYTrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.7" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.38.0", + "@rollup/rollup-android-arm64": "4.38.0", + "@rollup/rollup-darwin-arm64": "4.38.0", + "@rollup/rollup-darwin-x64": "4.38.0", + "@rollup/rollup-freebsd-arm64": "4.38.0", + "@rollup/rollup-freebsd-x64": "4.38.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.38.0", + "@rollup/rollup-linux-arm-musleabihf": "4.38.0", + "@rollup/rollup-linux-arm64-gnu": "4.38.0", + "@rollup/rollup-linux-arm64-musl": "4.38.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.38.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.38.0", + "@rollup/rollup-linux-riscv64-gnu": "4.38.0", + "@rollup/rollup-linux-riscv64-musl": "4.38.0", + "@rollup/rollup-linux-s390x-gnu": "4.38.0", + "@rollup/rollup-linux-x64-gnu": "4.38.0", + "@rollup/rollup-linux-x64-musl": "4.38.0", + "@rollup/rollup-win32-arm64-msvc": "4.38.0", + "@rollup/rollup-win32-ia32-msvc": "4.38.0", + "@rollup/rollup-win32-x64-msvc": "4.38.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-copy": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.5.0.tgz", + "integrity": "sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/fs-extra": "^8.0.1", + "colorette": "^1.1.0", + "fs-extra": "^8.1.0", + "globby": "10.0.1", + "is-plain-object": "^3.0.0" + }, + "engines": { + "node": ">=8.3" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", + "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "license": "BSD-3-Clause" + }, + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/systeminformation": { + "version": "5.25.11", + "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.25.11.tgz", + "integrity": "sha512-jI01fn/t47rrLTQB0FTlMCC+5dYx8o0RRF+R4BPiUNsvg5OdY0s9DKMFmJGrx5SwMZQ4cag0Gl6v8oycso9b/g==", + "license": "MIT", + "os": [ + "darwin", + "linux", + "win32", + "freebsd", + "openbsd", + "netbsd", + "sunos", + "android" + ], + "bin": { + "systeminformation": "lib/cli.js" + }, + "engines": { + "node": ">=8.0.0" + }, + "funding": { + "type": "Buy me a coffee", + "url": "https://www.buymeacoffee.com/systeminfo" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", + "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unrs-resolver": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.3.2.tgz", + "integrity": "sha512-ZKQBC351Ubw0PY8xWhneIfb6dygTQeUHtCcNGd0QB618zabD/WbFMYdRyJ7xeVT+6G82K5v/oyZO0QSHFtbIuw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/JounQin" + }, + "optionalDependencies": { + "@unrs/resolver-binding-darwin-arm64": "1.3.2", + "@unrs/resolver-binding-darwin-x64": "1.3.2", + "@unrs/resolver-binding-freebsd-x64": "1.3.2", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.3.2", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.3.2", + "@unrs/resolver-binding-linux-arm64-gnu": "1.3.2", + "@unrs/resolver-binding-linux-arm64-musl": "1.3.2", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.3.2", + "@unrs/resolver-binding-linux-s390x-gnu": "1.3.2", + "@unrs/resolver-binding-linux-x64-gnu": "1.3.2", + "@unrs/resolver-binding-linux-x64-musl": "1.3.2", + "@unrs/resolver-binding-wasm32-wasi": "1.3.2", + "@unrs/resolver-binding-win32-arm64-msvc": "1.3.2", + "@unrs/resolver-binding-win32-ia32-msvc": "1.3.2", + "@unrs/resolver-binding-win32-x64-msvc": "1.3.2" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.24.2", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz", + "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "test": { + "name": "@mattermost/playwright-test", + "version": "0.0.1", + "hasInstallScript": true, + "dependencies": { + "@mattermost/client": "file:../../../webapp/platform/client", + "@mattermost/playwright-lib": "*", + "@mattermost/types": "file:../../../webapp/platform/types", + "zod": "3.24.2" + }, + "devDependencies": { + "cross-env": "7.0.3" + } } + } } diff --git a/e2e-tests/playwright/package.json b/e2e-tests/playwright/package.json index d4c4a5be09..de581b548d 100644 --- a/e2e-tests/playwright/package.json +++ b/e2e-tests/playwright/package.json @@ -1,42 +1,34 @@ { - "scripts": { - "test": "cross-env PW_SNAPSHOT_ENABLE=true playwright test", - "test:update-snapshots": "cross-env PW_SNAPSHOT_ENABLE=true playwright test --update-snapshots", - "percy": "cross-env PERCY_TOKEN=$PERCY_TOKEN PW_PERCY_ENABLE=true percy exec -- playwright test --project=chrome --project=ipad", - "tsc": "tsc -b", - "lint": "eslint .", - "prettier": "prettier . --check", - "prettier:fix": "prettier --write .", - "check": "npm run tsc && npm run lint && npm run prettier", - "codegen": "cross-env playwright codegen $PW_BASE_URL", - "playwright-ui": "cross-env playwright test --ui", - "test-slomo": "cross-env PW_SNAPSHOT_ENABLE=true PW_SLOWMO=1000 playwright test", - "show-report": "npx playwright show-report", - "postinstall": "script/post_install.sh" - }, - "dependencies": { - "@axe-core/playwright": "4.10.1", - "@percy/cli": "1.30.6", - "@percy/playwright": "1.0.7", - "@playwright/test": "1.49.1", - "async-wait-until": "2.0.18", - "axe-core": "4.10.2", - "chalk": "4.1.2", - "dayjs": "1.11.13", - "deepmerge": "4.3.1", - "dotenv": "16.4.7", - "form-data-encoder": "4.0.2", - "formdata-node": "6.0.3", - "uuid": "11.0.5", - "zod": "3.24.1" - }, - "devDependencies": { - "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "8.20.0", - "@typescript-eslint/parser": "8.20.0", - "cross-env": "7.0.3", - "eslint": "9.18.0", - "prettier": "3.4.2", - "typescript": "5.7.3" - } + "name": "mattermost-playwright", + "private": true, + "workspaces": [ + "lib", + "test" + ], + "scripts": { + "postinstall": "npm run build", + "build": "npm run build --workspaces --if-present", + "build:watch": "npm run build:watch --workspaces --if-present", + "clean": "rm -rf node_modules logs results test-results && npm run clean --workspaces --if-present", + "tsc": "npm run tsc --workspaces --if-present", + "lint": "eslint .", + "prettier": "prettier . --check", + "prettier:fix": "prettier --write .", + "check": "npm run lint && npm run prettier && npm run tsc", + "test": "npm run test --workspace=test", + "test:ci": "npm run test:ci --workspace=test" + }, + "dependencies": { + "dayjs": "1.11.13", + "@playwright/test": "1.51.1" + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "8.28.0", + "eslint": "9.23.0", + "eslint-import-resolver-typescript": "4.2.7", + "eslint-plugin-header": "3.1.1", + "eslint-plugin-import": "2.31.0", + "prettier": "3.5.3", + "typescript": "5.7.3" + } } diff --git a/e2e-tests/playwright/report.webhookgen.js b/e2e-tests/playwright/report.webhookgen.js index 87b3711f1f..867ccff48d 100755 --- a/e2e-tests/playwright/report.webhookgen.js +++ b/e2e-tests/playwright/report.webhookgen.js @@ -1,6 +1,10 @@ -#!/usr/bin/env node +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +/* eslint-disable @typescript-eslint/no-require-imports */ const fs = require('fs'); + const dayjs = require('dayjs'); const duration = require('dayjs/plugin/duration'); dayjs.extend(duration); @@ -90,5 +94,5 @@ function generateWebhookBody() { }; } -let webhookBody = generateWebhookBody(); +const webhookBody = generateWebhookBody(); process.stdout.write(JSON.stringify(webhookBody)); diff --git a/e2e-tests/playwright/support/file.ts b/e2e-tests/playwright/support/file.ts deleted file mode 100644 index c3ed26ebca..0000000000 --- a/e2e-tests/playwright/support/file.ts +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See LICENSE.txt for license information. - -import path from 'node:path'; -import fs from 'node:fs'; - -const assetPath = path.resolve(__dirname, 'asset'); - -/** - * Reads file data and creates a File object. - * @param filePath - The path to the file. - * @param mimeType - The MIME type of the file. - * @returns A File object containing the file data. - * @throws If the file does not exist. - */ -export function getFileData(filePath: string, mimeType: string): File { - if (!fs.existsSync(filePath)) { - throw new Error(`File not found at path: ${filePath}`); - } - - const fileName = path.basename(filePath); - const fileBuffer = fs.readFileSync(filePath); - - return new File([fileBuffer], fileName, {type: mimeType}); -} - -/** - * Reads file data from the "asset" directory and creates a File object. - * @param filename - The name of the file in the "asset" directory. - * @param mimeType - The MIME type of the file. - * @returns An object containing a File object and the filename. - */ -export function getFileDataFromAsset(filename: string, mimeType: string) { - const filePath = path.join(assetPath, filename); - - return {file: getFileData(filePath, mimeType), filename: path.basename(filePath)}; -} - -/** - * Reads file data and creates a Blob object. - * @param filePath - The path to the file. - * @param mimeType - The MIME type of the file. - * @returns A Blob object containing the file data. - * @throws If the file does not exist. - */ -export function getBlobData(filePath: string, mimeType: string): Blob { - if (!fs.existsSync(filePath)) { - throw new Error(`File not found at path: ${filePath}`); - } - const fileBuffer = fs.readFileSync(filePath); - - return new Blob([fileBuffer], {type: mimeType}); -} - -/** - * Reads file data from the "asset" directory and creates a Blob object. - * @param filename - The name of the file in the "asset" directory. - * @param mimeType - The MIME type of the file. - * @returns An object containing a Blob object and the filename. - */ -export function getBlobDataFromAsset(filename: string, mimeType: string) { - const filePath = path.join(assetPath, filename); - - return {blob: getBlobData(filePath, mimeType), filename: path.basename(filePath)}; -} diff --git a/e2e-tests/playwright/support/server/client.ts b/e2e-tests/playwright/support/server/client.ts deleted file mode 100644 index 7d412849d8..0000000000 --- a/e2e-tests/playwright/support/server/client.ts +++ /dev/null @@ -1,162 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See LICENSE.txt for license information. - -// This is based on "webapp/platform/client/src/client4.ts". Modified for node client. -// Update should be made in comparison with the base Client4. - -import fs from 'node:fs'; -import path from 'node:path'; -import stream from 'stream'; - -import {FormData} from 'formdata-node'; -import {FormDataEncoder} from 'form-data-encoder'; - -import testConfig from '@e2e-test.config'; -import Client4 from '@mattermost/client/client4'; -import {Options, StatusOK} from '@mattermost/types/client4'; -import {License} from '@mattermost/types/config'; -import {CustomEmoji} from '@mattermost/types/emojis'; -import {PluginManifest} from '@mattermost/types/plugins'; -import {UserProfile} from '@mattermost/types/users'; - -export default class Client extends Client4 { - getFormDataOptions = (formData: FormData): Options => { - const encoder = new FormDataEncoder(formData); - - return { - method: 'post', - body: stream.Readable.from(encoder.encode()), - headers: encoder.headers, - duplex: 'half', - }; - }; - - readFileAsFormData = (filePath: string, key: string, additionalFields: Record = {}) => { - const fileData = fs.readFileSync(filePath); - const formData = new FormData(); - formData.append(key, new Blob([fileData]), path.basename(filePath)); - - // Append additional fields if provided - for (const [field, value] of Object.entries(additionalFields)) { - formData.append(field, value); - } - - return formData; - }; - - uploadProfileImageX = (userId: string, filePath: string) => { - const formData = this.readFileAsFormData(filePath, 'image'); - const options = this.getFormDataOptions(formData); - return this.doFetch(`${this.getUserRoute(userId)}/image`, options); - }; - - setTeamIconX = (teamId: string, filePath: string) => { - const formData = this.readFileAsFormData(filePath, 'image'); - const options = this.getFormDataOptions(formData); - return this.doFetch(`${this.getTeamRoute(teamId)}/image`, options); - }; - - createCustomEmojiX = (emoji: CustomEmoji, filePath: string) => { - const formData = this.readFileAsFormData(filePath, 'image', {emoji: JSON.stringify(emoji)}); - const options = this.getFormDataOptions(formData); - return this.doFetch(`${this.getEmojisRoute()}`, options); - }; - - uploadBrandImageX = (filePath: string) => { - const formData = this.readFileAsFormData(filePath, 'image'); - const options = this.getFormDataOptions(formData); - return this.doFetch(`${this.getBrandRoute()}/image`, options); - }; - - uploadCertificateX = (filePath: string, route: string) => { - const formData = this.readFileAsFormData(filePath, 'certificate'); - const options = this.getFormDataOptions(formData); - return this.doFetch(route, options); - }; - - uploadPublicSamlCertificateX = (filePath: string) => { - return this.uploadCertificateX(filePath, `${this.getBaseRoute()}/saml/certificate/public`); - }; - - uploadPrivateSamlCertificateX = (filePath: string) => { - return this.uploadCertificateX(filePath, `${this.getBaseRoute()}/saml/certificate/private`); - }; - - uploadPublicLdapCertificateX = (filePath: string) => { - return this.uploadCertificateX(filePath, `${this.getBaseRoute()}/ldap/certificate/public`); - }; - - uploadPrivateLdapCertificateX = (filePath: string) => { - return this.uploadCertificateX(filePath, `${this.getBaseRoute()}/ldap/certificate/private`); - }; - - uploadIdpSamlCertificateX = (filePath: string) => { - return this.uploadCertificateX(filePath, `${this.getBaseRoute()}/saml/certificate/idp`); - }; - - uploadLicenseX = (filePath: string) => { - const formData = this.readFileAsFormData(filePath, 'license'); - const options = this.getFormDataOptions(formData); - return this.doFetch(`${this.getBaseRoute()}/license`, options); - }; - - uploadPluginX = async (filePath: string, force = false) => { - const additionalFields = force ? {force: 'true'} : {}; - const formData = this.readFileAsFormData(filePath, 'plugin', additionalFields); - const options = this.getFormDataOptions(formData); - return this.doFetch(this.getPluginsRoute(), options); - }; -} - -// Variable to hold cache -const clients: Record = {}; - -async function makeClient( - userRequest?: UserRequest, - opts: {useCache?: boolean; skipLog?: boolean} = {useCache: true, skipLog: false}, -): Promise { - const client = new Client(); - client.setUrl(testConfig.baseURL); - - try { - if (!userRequest) { - return {client, user: null}; - } - - const cacheKey = userRequest.username + userRequest.password; - if (opts?.useCache && clients[cacheKey] != null) { - return clients[cacheKey]; - } - - const userProfile = await client.login(userRequest.username, userRequest.password); - const user = {...userProfile, password: userRequest.password}; - - if (opts?.useCache) { - clients[cacheKey] = {client, user}; - } - - return {client, user}; - } catch (err) { - if (!opts?.skipLog) { - // log an error for debugging - // eslint-disable-next-line no-console - console.log('makeClient', err); - } - return {client, user: null}; - } -} - -// Client types - -type UserRequest = { - username: string; - email?: string; - password: string; -}; - -type ClientCache = { - client: Client; - user: UserProfile | null; -}; - -export {Client, makeClient}; diff --git a/e2e-tests/playwright/support/ui/components/index.ts b/e2e-tests/playwright/support/ui/components/index.ts deleted file mode 100644 index 8fcde8e368..0000000000 --- a/e2e-tests/playwright/support/ui/components/index.ts +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See LICENSE.txt for license information. - -import {ChannelsHeader} from './channels/header'; -import {ChannelsAppBar} from './channels/app_bar'; -import {ChannelsPostCreate} from './channels/post_create'; -import {ChannelsPost} from './channels/post'; -import {ChannelsCenterView} from './channels/center_view'; -import {ChannelsSidebarLeft} from './channels/sidebar_left'; -import {ChannelsSidebarRight} from './channels/sidebar_right'; -import {DeletePostModal} from './channels/delete_post_modal'; -import {FindChannelsModal} from './channels/find_channels_modal'; -import {SettingsModal} from './channels/settings/settings_modal'; -import {Footer} from './footer'; -import {GlobalHeader} from './global_header'; -import {SearchPopover} from './channels/search_popover'; -import {MainHeader} from './main_header'; -import {PostDotMenu} from './channels/post_dot_menu'; -import {PostReminderMenu} from './channels/post_reminder_menu'; -import {PostMenu} from './channels/post_menu'; -import {ThreadFooter} from './channels/thread_footer'; -import {EmojiGifPicker} from './channels/emoji_gif_picker'; -import {GenericConfirmModal} from './channels/generic_confirm_modal'; -import {MessagePriority} from './channels/message_priority'; - -import {ScheduledDraftMenu} from './channels/scheduled_draft_menu'; -import {ScheduledDraftModal} from './channels/scheduled_draft_modal'; -import {UserProfilePopover} from './channels/user_profile_popover'; -import {SystemConsoleSidebar} from './system_console/sidebar'; -import {SystemConsoleNavbar} from './system_console/navbar'; - -import {SystemUsers} from './system_console/sections/system_users/system_users'; -import {SystemUsersFilterPopover} from './system_console/sections/system_users/filter_popover'; -import {SystemUsersFilterMenu} from './system_console/sections/system_users/filter_menu'; -import {SystemUsersColumnToggleMenu} from './system_console/sections/system_users/column_toggle_menu'; -import ChannelsPostEdit from '@e2e-support/ui/components/channels/post_edit'; -import DeletePostConfirmationDialog from '@e2e-support/ui/components/channels/delete_post_confirmation_dialog'; -import RestorePostConfirmationDialog from '@e2e-support/ui/components/channels/restore_post_confirmation_dialog'; -import MobileSecurity from './system_console/sections/system_users/mobile_security'; -import FeatureDiscovery from './system_console/sections/system_users/feature_discovery'; - -const components = { - GlobalHeader, - SearchPopover, - ChannelsCenterView, - ChannelsSidebarLeft, - ChannelsSidebarRight, - ChannelsAppBar, - ChannelsHeader, - ChannelsPostCreate, - ChannelsPostEdit, - ChannelsPost, - FindChannelsModal, - DeletePostModal, - SettingsModal, - PostDotMenu, - PostMenu, - ThreadFooter, - Footer, - MainHeader, - PostReminderMenu, - EmojiGifPicker, - GenericConfirmModal, - ScheduledDraftMenu, - ScheduledDraftModal, - SystemConsoleSidebar, - SystemConsoleNavbar, - SystemUsers, - SystemUsersFilterPopover, - SystemUsersFilterMenu, - SystemUsersColumnToggleMenu, - MessagePriority, - UserProfilePopover, - DeletePostConfirmationDialog, - RestorePostConfirmationDialog, - MobileSecurity, - FeatureDiscovery, -}; - -export { - components, - GlobalHeader, - ChannelsCenterView, - ChannelsSidebarLeft, - ChannelsSidebarRight, - ChannelsAppBar, - ChannelsHeader, - ChannelsPostCreate, - ChannelsPostEdit, - ChannelsPost, - FindChannelsModal, - DeletePostModal, - PostDotMenu, - PostMenu, - ThreadFooter, - MessagePriority, - DeletePostConfirmationDialog, -}; diff --git a/e2e-tests/playwright/support/ui/pages/index.ts b/e2e-tests/playwright/support/ui/pages/index.ts deleted file mode 100644 index 397ace6416..0000000000 --- a/e2e-tests/playwright/support/ui/pages/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See LICENSE.txt for license information. - -import {ChannelsPage} from './channels'; -import {LandingLoginPage} from './landing_login'; -import {LoginPage} from './login'; -import {ResetPasswordPage} from './reset_password'; -import {SignupPage} from './signup'; -import {SystemConsolePage} from './system_console'; -import {ScheduledDraftPage} from './scheduled_draft'; -import {DraftPage} from './drafts'; - -const pages = { - ChannelsPage, - LandingLoginPage, - LoginPage, - ResetPasswordPage, - SignupPage, - ScheduledDraftPage, - SystemConsolePage, - DraftPage, -}; - -export {ChannelsPage, LandingLoginPage, LoginPage, SignupPage, ScheduledDraftPage, DraftPage}; -export default pages; diff --git a/e2e-tests/playwright/test.config.ts b/e2e-tests/playwright/test.config.ts deleted file mode 100644 index fd7cb4ff60..0000000000 --- a/e2e-tests/playwright/test.config.ts +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See LICENSE.txt for license information. -import * as dotenv from 'dotenv'; - -import {TestConfig} from '@e2e-types'; - -dotenv.config(); - -// All process.env should be defined here -const config: TestConfig = { - // Server - baseURL: process.env.PW_BASE_URL || 'http://localhost:8065', - adminUsername: process.env.PW_ADMIN_USERNAME || 'sysadmin', - adminPassword: process.env.PW_ADMIN_PASSWORD || 'Sys@dmin-sample1', - adminEmail: process.env.PW_ADMIN_EMAIL || 'sysadmin@sample.mattermost.com', - ensurePluginsInstalled: - typeof process.env?.PW_ENSURE_PLUGINS_INSTALLED === 'string' - ? process.env.PW_ENSURE_PLUGINS_INSTALLED.split(',').filter((plugin) => Boolean(plugin)) - : [], - haClusterEnabled: parseBool(process.env.PW_HA_CLUSTER_ENABLED, false), - haClusterNodeCount: parseNumber(process.env.PW_HA_CLUSTER_NODE_COUNT, 2), - haClusterName: process.env.PW_HA_CLUSTER_NAME || 'mm_dev_cluster', - pushNotificationServer: process.env.PW_PUSH_NOTIFICATION_SERVER || 'https://push-test.mattermost.com', - resetBeforeTest: parseBool(process.env.PW_RESET_BEFORE_TEST, false), - // CI - isCI: !!process.env.CI, - // Playwright - headless: parseBool(process.env.PW_HEADLESS, true), - slowMo: parseNumber(process.env.PW_SLOWMO, 0), - workers: parseNumber(process.env.PW_WORKERS, 1), - // Visual tests - snapshotEnabled: parseBool(process.env.PW_SNAPSHOT_ENABLE, false), - percyEnabled: parseBool(process.env.PW_PERCY_ENABLE, false), -}; - -function parseBool(actualValue: string | undefined, defaultValue: boolean) { - return actualValue ? actualValue === 'true' : defaultValue; -} - -function parseNumber(actualValue: string | undefined, defaultValue: number) { - return actualValue ? parseInt(actualValue, 10) : defaultValue; -} - -export default config; diff --git a/e2e-tests/playwright/.percy.yml b/e2e-tests/playwright/test/.percy.yml similarity index 100% rename from e2e-tests/playwright/.percy.yml rename to e2e-tests/playwright/test/.percy.yml diff --git a/e2e-tests/playwright/README.md b/e2e-tests/playwright/test/README.md similarity index 71% rename from e2e-tests/playwright/README.md rename to e2e-tests/playwright/test/README.md index bef59458fe..3e5acc0400 100644 --- a/e2e-tests/playwright/README.md +++ b/e2e-tests/playwright/test/README.md @@ -40,10 +40,10 @@ npm run test #### 1. Run docker container using latest focal version -Change to the root directory, then run the docker container. (See https://playwright.dev/docs/docker for reference.) +Change to the `e2e-tests/playwright` directory, then run the docker container. (See https://playwright.dev/docs/docker for reference.) ``` -docker run -it --rm -v "$(pwd):/mattermost/" --ipc=host mcr.microsoft.com/playwright:v1.49.1-noble /bin/bash +docker run -it --rm -v "$(pwd):/mattermost/" --ipc=host mcr.microsoft.com/playwright:v1.51.1-noble /bin/bash ``` #### 2. Inside the docker container @@ -51,23 +51,26 @@ docker run -it --rm -v "$(pwd):/mattermost/" --ipc=host mcr.microsoft.com/playwr ``` export PW_BASE_URL=http://host.docker.internal:8065 export PW_HEADLESS=true -cd mattermost/e2e-tests/playwright +cd mattermost # Install npm packages. Use "npm ci" to match the automated environment export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm ci # Run specific test. See https://playwright.dev/docs/test-cli. -npm run test -- login --project=chrome +npm run test -- -- login --project=chrome # Or run all tests npm run test -# Update snapshots -npm run test -- login --update-snapshots +# Run visual tests +npm run test -- -- visual + +# Update snapshots of visual tests +npm run test -- -- visual --update-snapshots ``` ## Page/Component Object Model See https://playwright.dev/docs/test-pom. -Page and component abstractions are located at `./support/ui`. They should be established before writing a spec file so that any future changes in the DOM structure will be made in one place only. No static UI text or fixed locator should be written in the spec file. +Page and component abstractions are in shared library located at `./lib/src/ui`. They should be established before writing a spec file so that any future changes in the DOM structure will be made in one place only. No static UI text or fixed locator should be written in the spec file. diff --git a/e2e-tests/playwright/support/asset/archive.zip b/e2e-tests/playwright/test/asset/archive.zip similarity index 100% rename from e2e-tests/playwright/support/asset/archive.zip rename to e2e-tests/playwright/test/asset/archive.zip diff --git a/e2e-tests/playwright/test/asset/mattermost-icon_128x128.png b/e2e-tests/playwright/test/asset/mattermost-icon_128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..8170d8c52bd9d6415b0631cb6152c95e773b88bc GIT binary patch literal 13311 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 { // # Create and sign in a new user diff --git a/e2e-tests/playwright/tests/accessibility/common/login.spec.ts b/e2e-tests/playwright/test/specs/accessibility/common/login.spec.ts similarity index 98% rename from e2e-tests/playwright/tests/accessibility/common/login.spec.ts rename to e2e-tests/playwright/test/specs/accessibility/common/login.spec.ts index b5b1cdaf21..ce50a4a9ab 100644 --- a/e2e-tests/playwright/tests/accessibility/common/login.spec.ts +++ b/e2e-tests/playwright/test/specs/accessibility/common/login.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, test} from '@e2e-support/test_fixture'; +import {expect, test} from '@mattermost/playwright-lib'; test('/login accessibility quick check', async ({pw, axe}) => { // Set up the page not to redirect to the landing page diff --git a/e2e-tests/playwright/tests/accessibility/common/reset_password.spec.ts b/e2e-tests/playwright/test/specs/accessibility/common/reset_password.spec.ts similarity index 97% rename from e2e-tests/playwright/tests/accessibility/common/reset_password.spec.ts rename to e2e-tests/playwright/test/specs/accessibility/common/reset_password.spec.ts index 0688f49cec..579dc70a93 100644 --- a/e2e-tests/playwright/tests/accessibility/common/reset_password.spec.ts +++ b/e2e-tests/playwright/test/specs/accessibility/common/reset_password.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, test} from '@e2e-support/test_fixture'; +import {expect, test} from '@mattermost/playwright-lib'; test('/reset_password accessibility quick check', async ({pw, axe}) => { // Set up the page not to redirect to the landing page diff --git a/e2e-tests/playwright/tests/accessibility/common/signup_user_complete.spec.ts b/e2e-tests/playwright/test/specs/accessibility/common/signup_user_complete.spec.ts similarity index 98% rename from e2e-tests/playwright/tests/accessibility/common/signup_user_complete.spec.ts rename to e2e-tests/playwright/test/specs/accessibility/common/signup_user_complete.spec.ts index 60e7ea3f85..2430c7c0fa 100644 --- a/e2e-tests/playwright/tests/accessibility/common/signup_user_complete.spec.ts +++ b/e2e-tests/playwright/test/specs/accessibility/common/signup_user_complete.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, test} from '@e2e-support/test_fixture'; +import {expect, test} from '@mattermost/playwright-lib'; test('/signup_user_complete accessibility quick check', async ({pw, axe}) => { // Set up the page not to redirect to the landing page diff --git a/e2e-tests/playwright/tests/client/schema.ts b/e2e-tests/playwright/test/specs/client/schema.ts similarity index 100% rename from e2e-tests/playwright/tests/client/schema.ts rename to e2e-tests/playwright/test/specs/client/schema.ts diff --git a/e2e-tests/playwright/tests/client/upload_file.spec.ts b/e2e-tests/playwright/test/specs/client/upload_file.spec.ts similarity index 84% rename from e2e-tests/playwright/tests/client/upload_file.spec.ts rename to e2e-tests/playwright/test/specs/client/upload_file.spec.ts index e9d8eadf87..32efade1cc 100644 --- a/e2e-tests/playwright/tests/client/upload_file.spec.ts +++ b/e2e-tests/playwright/test/specs/client/upload_file.spec.ts @@ -1,35 +1,32 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, test} from '@e2e-support/test_fixture'; -import {getBlobDataFromAsset, getFileDataFromAsset} from '@e2e-support/file'; -import {getRandomId} from '@e2e-support/util'; -import {Client} from '@e2e-support/server'; -import {FileUploadResponse} from '@mattermost/types/files'; +import {expect, test, getFileFromAsset, getBlobFromAsset} from '@mattermost/playwright-lib'; +import {Client4} from '@mattermost/client'; import {ServerChannel} from '@mattermost/types/channels'; +import {FileUploadResponse} from '@mattermost/types/files'; import {Team} from '@mattermost/types/teams'; import {UserProfile} from '@mattermost/types/users'; import {FileUploadResponseSchema} from './schema'; -let userClient: Client; +let userClient: Client4; let user: UserProfile; let team: Team; let townSquareChannel: ServerChannel; const filename = 'mattermost-icon_128x128.png'; -const mimeType = 'image/png'; -const {file} = getFileDataFromAsset(filename, mimeType); -const {blob} = getBlobDataFromAsset(filename, mimeType); +const file = getFileFromAsset(filename); +const blob = getBlobFromAsset(filename); test.beforeEach(async ({pw}) => { ({userClient, user, team} = await pw.initSetup()); townSquareChannel = await userClient.getChannelByName(team.id, 'town-square'); }); -test('should succeed with File', async () => { +test('should succeed with File', async ({pw}) => { // # Prepare data with File - const clientId = getRandomId(); + const clientId = pw.random.id(); const formData = new FormData(); formData.set('channel_id', townSquareChannel.id); formData.set('client_ids', clientId); @@ -40,9 +37,9 @@ test('should succeed with File', async () => { validateFileUploadResponse(data, clientId, user.id, townSquareChannel.id); }); -test('should succeed with Blob', async () => { +test('should succeed with Blob', async ({pw}) => { // # Prepare data with Blob - const clientId = getRandomId(); + const clientId = pw.random.id(); const formData = new FormData(); formData.set('channel_id', townSquareChannel.id); formData.set('client_ids', clientId); @@ -70,8 +67,8 @@ test('should succeed even with channel_id only', async () => { expect(data.file_infos.length).toBe(0); }); -test('should fail on invalid channel ID', async () => { - const clientId = getRandomId(); +test('should fail on invalid channel ID', async ({pw}) => { + const clientId = pw.random.id(); // # Set with invalid channel ID let formData = new FormData(); @@ -93,8 +90,8 @@ test('should fail on invalid channel ID', async () => { ); }); -test('should fail on missing files', async () => { - const clientId = getRandomId(); +test('should fail on missing files', async ({pw}) => { + const clientId = pw.random.id(); // # Set with invalid channel ID const formData = new FormData(); @@ -106,8 +103,8 @@ test('should fail on missing files', async () => { ); }); -test('should fail on incorrect order setting up FormData', async () => { - const clientId = getRandomId(); +test('should fail on incorrect order setting up FormData', async ({pw}) => { + const clientId = pw.random.id(); // # Set with files before client_ids const formData = new FormData(); diff --git a/e2e-tests/playwright/tests/functional/channels/account_settings/profile/popover_fields.spec.ts b/e2e-tests/playwright/test/specs/functional/channels/account_settings/profile/popover_fields.spec.ts similarity index 93% rename from e2e-tests/playwright/tests/functional/channels/account_settings/profile/popover_fields.spec.ts rename to e2e-tests/playwright/test/specs/functional/channels/account_settings/profile/popover_fields.spec.ts index f55351055e..7d4bcbbd7e 100644 --- a/e2e-tests/playwright/tests/functional/channels/account_settings/profile/popover_fields.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/channels/account_settings/profile/popover_fields.spec.ts @@ -1,8 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, test} from '@e2e-support/test_fixture'; -import {createRandomUser} from '@e2e-support/server'; +import {expect, test} from '@mattermost/playwright-lib'; test('MM-T53377 Profile popover should show correct fields after at-mention autocomplete', async ({pw}) => { // # Initialize with specific config and get admin client @@ -16,7 +15,7 @@ test('MM-T53377 Profile popover should show correct fields after at-mention auto }); // # Create and add another user using admin client - const testUser2 = await adminClient.createUser(createRandomUser(), '', ''); + const testUser2 = await adminClient.createUser(pw.random.user(), '', ''); await adminClient.addToTeam(team.id, testUser2.id); // # Log in as user in new browser context diff --git a/e2e-tests/playwright/tests/functional/channels/drafts/drafts_on_deleted_message.spec.ts b/e2e-tests/playwright/test/specs/functional/channels/drafts/drafts_on_deleted_message.spec.ts similarity index 96% rename from e2e-tests/playwright/tests/functional/channels/drafts/drafts_on_deleted_message.spec.ts rename to e2e-tests/playwright/test/specs/functional/channels/drafts/drafts_on_deleted_message.spec.ts index 3a82fb5e31..35d32bbe0a 100644 --- a/e2e-tests/playwright/tests/functional/channels/drafts/drafts_on_deleted_message.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/channels/drafts/drafts_on_deleted_message.spec.ts @@ -1,8 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {test, expect} from '@e2e-support/test_fixture'; -import {createRandomPost} from '@e2e-support/server/post'; +import {expect, test} from '@mattermost/playwright-lib'; test('MM-T5435_1 Global Drafts link in sidebar should be hidden when another user deleted root post and user removes the deleted post ', async ({ pw, @@ -18,7 +17,7 @@ test('MM-T5435_1 Global Drafts link in sidebar should be hidden when another use // # Create a post in the channel by admin const adminPost = await adminClient.createPost( - createRandomPost({ + pw.random.post({ channel_id: channel.id, user_id: adminUser.id, }), diff --git a/e2e-tests/playwright/tests/functional/channels/edit_file_attachments/edit_file_attachment.spec.ts b/e2e-tests/playwright/test/specs/functional/channels/edit_file_attachments/edit_file_attachment.spec.ts similarity index 97% rename from e2e-tests/playwright/tests/functional/channels/edit_file_attachments/edit_file_attachment.spec.ts rename to e2e-tests/playwright/test/specs/functional/channels/edit_file_attachments/edit_file_attachment.spec.ts index fe4b5f6f8e..1f3f635800 100644 --- a/e2e-tests/playwright/tests/functional/channels/edit_file_attachments/edit_file_attachment.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/channels/edit_file_attachments/edit_file_attachment.spec.ts @@ -1,10 +1,8 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {test} from '@e2e-support/test_fixture'; -import {expect} from '@playwright/test'; -import {duration, wait} from '@e2e-support/util'; -import {moveMouseToCenter} from '@e2e-support/test_action'; +import {expect, test} from '@mattermost/playwright-lib'; +import {Page} from '@playwright/test'; test('MM-T5654_1 should be able to add attachments while editing a post', async ({pw}) => { const originalMessage = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit'; @@ -82,9 +80,9 @@ test('MM-T5654_2 should be able to add attachments while editing a threaded post await channelsPage.sidebarRight.postEdit.toBeVisible(); await channelsPage.sidebarRight.postEdit.writeMessage('Edited reply message with files'); await channelsPage.sidebarRight.postEdit.addFiles(['sample_text_file.txt', 'mattermost.png']); - await wait(duration.half_sec); + await pw.wait(pw.duration.half_sec); await channelsPage.sidebarRight.postEdit.sendMessage(); - await wait(duration.half_sec); + await pw.wait(pw.duration.half_sec); await channelsPage.sidebarRight.postEdit.toNotBeVisible(); await updatedReplyPost.toBeVisible(); await updatedReplyPost.toContainText('Edited reply message with files'); @@ -100,9 +98,9 @@ test('MM-T5654_2 should be able to add attachments while editing a threaded post await channelsPage.postDotMenu.editMenuItem.click(); await channelsPage.sidebarRight.postEdit.toBeVisible(); await channelsPage.sidebarRight.postEdit.removeFile('sample_text_file.txt'); - await wait(duration.half_sec); + await pw.wait(pw.duration.half_sec); await channelsPage.sidebarRight.postEdit.removeFile('mattermost.png'); - await wait(duration.half_sec); + await pw.wait(pw.duration.half_sec); await channelsPage.sidebarRight.postEdit.sendMessage(); updatedReplyPost = await channelsPage.sidebarRight.getLastPost(); @@ -349,3 +347,7 @@ test('MM-T5656_1 should be able to restore previously edited post version that c await restoredPost.toBeVisible(); expect(restoredPost.toContainText('sample_text_file.txt')); }); + +async function moveMouseToCenter(page: Page) { + await page.mouse.move(0, 0); +} diff --git a/e2e-tests/playwright/tests/functional/channels/gif_picker/gif_picker_search.spec.ts b/e2e-tests/playwright/test/specs/functional/channels/gif_picker/gif_picker_search.spec.ts similarity index 98% rename from e2e-tests/playwright/tests/functional/channels/gif_picker/gif_picker_search.spec.ts rename to e2e-tests/playwright/test/specs/functional/channels/gif_picker/gif_picker_search.spec.ts index 91d844a178..77a60bdd82 100644 --- a/e2e-tests/playwright/tests/functional/channels/gif_picker/gif_picker_search.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/channels/gif_picker/gif_picker_search.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, test} from '@e2e-support/test_fixture'; +import {expect, test} from '@mattermost/playwright-lib'; test.fixme( 'MM-T5445 Should search, select and post correct Gif when Gif picker is opened from center textbox', diff --git a/e2e-tests/playwright/tests/functional/channels/message_priority/standard_priority.spec.ts b/e2e-tests/playwright/test/specs/functional/channels/message_priority/standard_priority.spec.ts similarity index 78% rename from e2e-tests/playwright/tests/functional/channels/message_priority/standard_priority.spec.ts rename to e2e-tests/playwright/test/specs/functional/channels/message_priority/standard_priority.spec.ts index a964f6736c..17f2a8d9e7 100644 --- a/e2e-tests/playwright/tests/functional/channels/message_priority/standard_priority.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/channels/message_priority/standard_priority.spec.ts @@ -1,31 +1,28 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, test} from '@e2e-support/test_fixture'; -import MessagePriority from '@e2e-support/ui/components/channels/message_priority'; +import {expect, test} from '@mattermost/playwright-lib'; test('MM-T5139: Message Priority - Standard message priority and system setting', async ({pw}) => { // # Setup test environment const {user} = await pw.initSetup(); // # Log in as a user in new browser context - const {page, channelsPage} = await pw.testBrowser.login(user); + const {channelsPage} = await pw.testBrowser.login(user); // # Visit default channel page await channelsPage.goto(); await channelsPage.toBeVisible(); - const messagePriority = new MessagePriority(page.locator('body')); - // Open menu await channelsPage.centerView.postCreate.openPriorityMenu(); // Use messagePriority for dialog interactions - await messagePriority.verifyPriorityDialog(); - await messagePriority.verifyStandardOptionSelected(); + await channelsPage.messagePriority.verifyPriorityDialog(); + await channelsPage.messagePriority.verifyStandardOptionSelected(); // # Close menu and post message - await messagePriority.closePriorityMenu(); + await channelsPage.messagePriority.closePriorityMenu(); const testMessage = 'This is just a test message'; await channelsPage.postMessage(testMessage); diff --git a/e2e-tests/playwright/tests/functional/channels/notifications/notification.spec.ts b/e2e-tests/playwright/test/specs/functional/channels/notifications/notification.spec.ts similarity index 98% rename from e2e-tests/playwright/tests/functional/channels/notifications/notification.spec.ts rename to e2e-tests/playwright/test/specs/functional/channels/notifications/notification.spec.ts index 77a9bbd3df..0a612f0231 100644 --- a/e2e-tests/playwright/tests/functional/channels/notifications/notification.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/channels/notifications/notification.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, test} from '@e2e-support/test_fixture'; +import {expect, test} from '@mattermost/playwright-lib'; test('MM-T483 Channel-wide mentions with uppercase letters', async ({pw, headless, browserName}) => { test.skip( diff --git a/e2e-tests/playwright/tests/functional/channels/scheduled_drafts/create_scheduled_draft.spec.ts b/e2e-tests/playwright/test/specs/functional/channels/scheduled_drafts/create_scheduled_draft.spec.ts similarity index 93% rename from e2e-tests/playwright/tests/functional/channels/scheduled_drafts/create_scheduled_draft.spec.ts rename to e2e-tests/playwright/test/specs/functional/channels/scheduled_drafts/create_scheduled_draft.spec.ts index 90c469820c..35e8695435 100644 --- a/e2e-tests/playwright/tests/functional/channels/scheduled_drafts/create_scheduled_draft.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/channels/scheduled_drafts/create_scheduled_draft.spec.ts @@ -1,13 +1,12 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, Page} from '@playwright/test'; -import {test} from '@e2e-support/test_fixture'; -import {ChannelsPage, ScheduledDraftPage} from '@e2e-support/ui/pages'; -import {duration, wait} from '@e2e-support/util'; +import {expect, PlaywrightExtended, test} from '@mattermost/playwright-lib'; +import type {ChannelsPage, ScheduledDraftPage} from '@mattermost/playwright-lib'; +import type {Page} from '@playwright/test'; test.skip('MM-T5643_1 should create a scheduled message from a channel', async ({pw}) => { - test.setTimeout(duration.four_min); + test.setTimeout(pw.duration.four_min); const draftMessage = 'Scheduled Draft'; // # Skip test if no license @@ -25,8 +24,11 @@ test.skip('MM-T5643_1 should create a scheduled message from a channel', async ( await verifyScheduledDraft(channelsPage, scheduledDraftPage, draftMessage, postBoxIndicator); + // # Hover and verify options + await scheduledDraftPage.verifyOnHoverActionItems(draftMessage); + // # Go back and wait for message to arrive - await goBackToChannelAndWaitForMessageToArrive(page); + await goBackToChannelAndWaitForMessageToArrive(pw, page); // * Verify the message has been sent and there's no more scheduled messages await expect(channelsPage.centerView.scheduledDraftChannelInfoMessage).not.toBeVisible(); @@ -166,7 +168,7 @@ test('MM-T5643_9 should send a scheduled message immediately', async ({pw}) => { await verifyScheduledDraft(channelsPage, scheduledDraftPage, draftMessage, postBoxIndicator); await scheduledDraftPage.sendScheduledMessage(draftMessage); - await wait(duration.two_sec); + await pw.wait(pw.duration.two_sec); await expect(scheduledDraftPage.scheduledDraftPanel(draftMessage)).not.toBeVisible(); @@ -308,9 +310,9 @@ test('MM-T5650 should copy scheduled message', async ({pw, browserName}) => { await expect(channelsPage.centerView.postCreate.input).toHaveText(draftMessage); }); -async function goBackToChannelAndWaitForMessageToArrive(page: Page): Promise { +async function goBackToChannelAndWaitForMessageToArrive(pw: PlaywrightExtended, page: Page): Promise { await page.goBack(); - await wait(duration.two_min); + await pw.wait(pw.duration.two_min); await page.reload(); } @@ -336,14 +338,14 @@ async function setupChannelPage( /** * Schedules a draft message by selecting a custom time and confirming. */ -async function scheduleMessage(pageObject: ChannelsPage): Promise { - await pageObject.scheduledDraftDropdown.toBeVisible(); - await pageObject.scheduledDraftDropdown.selectCustomTime(); +async function scheduleMessage(channelsPage: ChannelsPage): Promise { + await channelsPage.scheduledDraftDropdown.toBeVisible(); + await channelsPage.scheduledDraftDropdown.selectCustomTime(); - await pageObject.scheduledDraftModal.toBeVisible(); - await pageObject.scheduledDraftModal.selectDay(); - await pageObject.scheduledDraftModal.selectTime(); - await pageObject.scheduledDraftModal.confirm(); + await channelsPage.scheduledDraftModal.toBeVisible(); + await channelsPage.scheduledDraftModal.selectDay(); + await channelsPage.scheduledDraftModal.selectTime(); + await channelsPage.scheduledDraftModal.confirm(); } /** diff --git a/e2e-tests/playwright/tests/functional/channels/search/find_channels.spec.ts b/e2e-tests/playwright/test/specs/functional/channels/search/find_channels.spec.ts similarity index 91% rename from e2e-tests/playwright/tests/functional/channels/search/find_channels.spec.ts rename to e2e-tests/playwright/test/specs/functional/channels/search/find_channels.spec.ts index b7dfd0eed7..5f29b08b86 100644 --- a/e2e-tests/playwright/tests/functional/channels/search/find_channels.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/channels/search/find_channels.spec.ts @@ -1,8 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, test} from '@e2e-support/test_fixture'; -import {createRandomChannel} from '@e2e-support/server'; +import {expect, test} from '@mattermost/playwright-lib'; test('MM-T5424 Find channel search returns only 50 results when there are more than 50 channels with similar names', async ({ pw, @@ -18,7 +17,7 @@ test('MM-T5424 Find channel search returns only 50 results when there are more t if (i < 10) { suffix = `0${i}`; } - const channel = createRandomChannel({ + const channel = pw.random.channel({ teamId: team.id, name: `${commonName}_${suffix}`, displayName: `Test Channel ${suffix}`, diff --git a/e2e-tests/playwright/tests/functional/channels/search/search_box_suggestions.spec.ts b/e2e-tests/playwright/test/specs/functional/channels/search/search_box_suggestions.spec.ts similarity index 97% rename from e2e-tests/playwright/tests/functional/channels/search/search_box_suggestions.spec.ts rename to e2e-tests/playwright/test/specs/functional/channels/search/search_box_suggestions.spec.ts index 621fa7df75..3d22a373bf 100644 --- a/e2e-tests/playwright/tests/functional/channels/search/search_box_suggestions.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/channels/search/search_box_suggestions.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, test} from '@e2e-support/test_fixture'; +import {expect, test} from '@mattermost/playwright-lib'; test('Search box suggestion must be case insensitive', async ({pw}) => { const {user} = await pw.initSetup(); diff --git a/e2e-tests/playwright/tests/functional/channels/search/team_selector.spec.ts b/e2e-tests/playwright/test/specs/functional/channels/search/team_selector.spec.ts similarity index 91% rename from e2e-tests/playwright/tests/functional/channels/search/team_selector.spec.ts rename to e2e-tests/playwright/test/specs/functional/channels/search/team_selector.spec.ts index 474f2a2297..9766877957 100644 --- a/e2e-tests/playwright/tests/functional/channels/search/team_selector.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/channels/search/team_selector.spec.ts @@ -1,8 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {createRandomTeam} from '@e2e-support/server'; -import {expect, test} from '@e2e-support/test_fixture'; +import {expect, test} from '@mattermost/playwright-lib'; test('team selector must show all my teams', async ({pw}) => { const {adminClient, user, team} = await pw.initSetup(); @@ -10,7 +9,7 @@ test('team selector must show all my teams', async ({pw}) => { // # create 2 more teams and add the user to them const teams = [team]; for (let i = 0; i < 2; i++) { - const newTeam = await adminClient.createTeam(createRandomTeam('team', 'Team', 'O', true)); + const newTeam = await adminClient.createTeam(pw.random.team('team', 'Team', 'O', true)); await adminClient.addUsersToTeam(newTeam.id, [user.id]); teams.push(newTeam); } @@ -46,7 +45,7 @@ test('team selector must show all my teams', async ({pw}) => { // now create and join 3 more teams for (let i = 0; i < 3; i++) { - const newTeam = await adminClient.createTeam(createRandomTeam('team', 'Team', 'O', true)); + const newTeam = await adminClient.createTeam(pw.random.team('team', 'Team', 'O', true)); await adminClient.addUsersToTeam(newTeam.id, [user.id]); teams.push(newTeam); } diff --git a/e2e-tests/playwright/tests/functional/channels/settings/notifications/highlight_without_notification.spec.ts b/e2e-tests/playwright/test/specs/functional/channels/settings/notifications/highlight_without_notification.spec.ts similarity index 96% rename from e2e-tests/playwright/tests/functional/channels/settings/notifications/highlight_without_notification.spec.ts rename to e2e-tests/playwright/test/specs/functional/channels/settings/notifications/highlight_without_notification.spec.ts index 57e0bb54ae..8175e248e8 100644 --- a/e2e-tests/playwright/tests/functional/channels/settings/notifications/highlight_without_notification.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/channels/settings/notifications/highlight_without_notification.spec.ts @@ -1,16 +1,15 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect} from '@playwright/test'; - -import {test} from '@e2e-support/test_fixture'; -import {getRandomId} from '@e2e-support/util'; -import {createRandomPost} from '@e2e-support/server/post'; - -const keywords = [`AB${getRandomId()}`, `CD${getRandomId()}`, `EF${getRandomId()}`, `Highlight me ${getRandomId()}`]; +import {expect, test} from '@mattermost/playwright-lib'; +let keywords: string[]; const highlightWithoutNotificationClass = 'non-notification-highlight'; +test.beforeAll(async ({pw}) => { + keywords = [`AB${pw.random.id()}`, `CD${pw.random.id()}`, `EF${pw.random.id()}`, `Highlight me ${pw.random.id()}`]; +}); + test('MM-T5465-1 Should add the keyword when enter, comma or tab is pressed on the textbox', async ({pw}) => { // # Skip test if no license await pw.skipIfNoLicense(); @@ -236,7 +235,7 @@ test('MM-T5465-5 Should highlight keywords in message sent from another user', a // # Create a post containing the keyword in the channel by admin await adminClient.createPost( - createRandomPost({ + pw.random.post({ message: messageWithKeyword, channel_id: channel.id, user_id: adminUser.id, diff --git a/e2e-tests/playwright/tests/functional/system_console/desktop_landing.spec.ts b/e2e-tests/playwright/test/specs/functional/system_console/desktop_landing.spec.ts similarity index 85% rename from e2e-tests/playwright/tests/functional/system_console/desktop_landing.spec.ts rename to e2e-tests/playwright/test/specs/functional/system_console/desktop_landing.spec.ts index e9598ac013..4ccdae9ed7 100644 --- a/e2e-tests/playwright/tests/functional/system_console/desktop_landing.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/system_console/desktop_landing.spec.ts @@ -1,6 +1,8 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import {expect, test} from '@mattermost/playwright-lib'; import {Page} from '@playwright/test'; -import {expect, test} from '@e2e-support/test_fixture'; -import {duration} from '@e2e-support/util'; // Helper function to intercept API request and modify the response async function interceptConfigWithLandingPage(page: Page, enabled: boolean) { @@ -38,7 +40,7 @@ test('MM-T5640_2 should see landing page', async ({pw, page}) => { await page.goto('/'); // Wait until the URL contains '/landing' - await page.waitForURL(/.*\/landing.*/, {timeout: duration.ten_sec}); + await page.waitForURL(/.*\/landing.*/, {timeout: pw.duration.ten_sec}); // At this point, the URL should contain '/landing' expect(page.url()).toContain('/landing'); diff --git a/e2e-tests/playwright/tests/functional/system_console/mobile_security.spec.ts b/e2e-tests/playwright/test/specs/functional/system_console/mobile_security.spec.ts similarity index 92% rename from e2e-tests/playwright/tests/functional/system_console/mobile_security.spec.ts rename to e2e-tests/playwright/test/specs/functional/system_console/mobile_security.spec.ts index 72da3bd012..af32bc6c50 100644 --- a/e2e-tests/playwright/tests/functional/system_console/mobile_security.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/system_console/mobile_security.spec.ts @@ -1,8 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {waitUntil} from '@e2e-support/test_action'; -import {expect, test} from '@e2e-support/test_fixture'; +import {expect, test} from '@mattermost/playwright-lib'; test('should be able to enable mobile security settings when licensed', async ({pw}) => { const {adminUser, adminClient} = await pw.initSetup(); @@ -37,7 +36,7 @@ test('should be able to enable mobile security settings when licensed', async ({ // # Save settings await systemConsolePage.mobileSecurity.clickSaveButton(); // # Wait until the save button has settled - await waitUntil(async () => (await systemConsolePage.mobileSecurity.saveButton.textContent()) === 'Save'); + await pw.waitUntil(async () => (await systemConsolePage.mobileSecurity.saveButton.textContent()) === 'Save'); // # Go to any other section and come back to Mobile Security await systemConsolePage.sidebar.goToItem('Users'); @@ -61,7 +60,7 @@ test('should be able to enable mobile security settings when licensed', async ({ // # Save settings await systemConsolePage.mobileSecurity.clickSaveButton(); // # Wait until the save button has settled - await waitUntil(async () => (await systemConsolePage.mobileSecurity.saveButton.textContent()) === 'Save'); + await pw.waitUntil(async () => (await systemConsolePage.mobileSecurity.saveButton.textContent()) === 'Save'); // # Go to any other section and come back to Mobile Security await systemConsolePage.sidebar.goToItem('Users'); @@ -85,7 +84,7 @@ test('should be able to enable mobile security settings when licensed', async ({ // # Save settings await systemConsolePage.mobileSecurity.clickSaveButton(); // # Wait until the save button has settled - await waitUntil(async () => (await systemConsolePage.mobileSecurity.saveButton.textContent()) === 'Save'); + await pw.waitUntil(async () => (await systemConsolePage.mobileSecurity.saveButton.textContent()) === 'Save'); // # Go to any other section and come back to Mobile Security await systemConsolePage.sidebar.goToItem('Users'); diff --git a/e2e-tests/playwright/tests/functional/system_console/system_users/actions.spec.ts b/e2e-tests/playwright/test/specs/functional/system_console/system_users/actions.spec.ts similarity index 91% rename from e2e-tests/playwright/tests/functional/system_console/system_users/actions.spec.ts rename to e2e-tests/playwright/test/specs/functional/system_console/system_users/actions.spec.ts index d6b343f5ec..a60ab85c09 100644 --- a/e2e-tests/playwright/tests/functional/system_console/system_users/actions.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/system_console/system_users/actions.spec.ts @@ -1,11 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {TestBrowser} from '@e2e-support//browser_context'; -import {Client, createRandomTeam, createRandomUser} from '@e2e-support/server'; -import {expect, test} from '@e2e-support/test_fixture'; -import {getRandomId} from '@e2e-support/util'; -import {UserProfile} from '@mattermost/types/users'; +import {type PlaywrightExtended, expect, test} from '@mattermost/playwright-lib'; /** * Setup a new random user, and search for it such that it's the first row in the list @@ -13,10 +9,7 @@ import {UserProfile} from '@mattermost/types/users'; * @param pages * @returns A function to get the refreshed user, and the System Console page for navigation */ -async function setupAndGetRandomUser(pw: { - testBrowser: TestBrowser; - initSetup: () => Promise<{adminUser: UserProfile | null; adminClient: Client}>; -}) { +async function setupAndGetRandomUser(pw: PlaywrightExtended) { const {adminUser, adminClient} = await pw.initSetup(); if (!adminUser) { @@ -27,8 +20,8 @@ async function setupAndGetRandomUser(pw: { const {systemConsolePage} = await pw.testBrowser.login(adminUser); // # Create a random user to edit for - const user = await adminClient.createUser(createRandomUser(), '', ''); - const team = await adminClient.createTeam(createRandomTeam()); + const user = await adminClient.createUser(pw.random.user(), '', ''); + const team = await adminClient.createTeam(pw.random.team()); await adminClient.addToTeam(team.id, user.id); // # Visit system console @@ -163,7 +156,7 @@ test('MM-T5520-4 should reset the users password', async ({pw}) => { // # Enter a random password and click Save const passwordInput = systemConsolePage.page.locator('input[type="password"]'); - await passwordInput.fill(getRandomId()); + await passwordInput.fill(pw.random.id()); await systemConsolePage.clickResetButton(); // * Verify that the modal closed and no error showed @@ -172,7 +165,7 @@ test('MM-T5520-4 should reset the users password', async ({pw}) => { test('MM-T5520-5 should change the users email', async ({pw}) => { const {getUser, systemConsolePage} = await setupAndGetRandomUser(pw); - const newEmail = `${getRandomId()}@example.com`; + const newEmail = `${pw.random.id()}@example.com`; // # Open menu and click Update Email await systemConsolePage.systemUsers.actionMenuButtons[0].click(); diff --git a/e2e-tests/playwright/tests/functional/system_console/system_users/column_sort.spec.ts b/e2e-tests/playwright/test/specs/functional/system_console/system_users/column_sort.spec.ts similarity index 87% rename from e2e-tests/playwright/tests/functional/system_console/system_users/column_sort.spec.ts rename to e2e-tests/playwright/test/specs/functional/system_console/system_users/column_sort.spec.ts index bbe9667ab5..4afcbe7782 100644 --- a/e2e-tests/playwright/tests/functional/system_console/system_users/column_sort.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/system_console/system_users/column_sort.spec.ts @@ -1,11 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect} from '@playwright/test'; - -import {test} from '@e2e-support/test_fixture'; -import {createRandomUser} from '@e2e-support/server'; -import {simpleEmailRe} from '@e2e-support/util'; +import {expect, test} from '@mattermost/playwright-lib'; test('MM-T5523-1 Sortable columns should sort the list when clicked', async ({pw}) => { const {adminUser, adminClient} = await pw.initSetup(); @@ -19,7 +15,7 @@ test('MM-T5523-1 Sortable columns should sort the list when clicked', async ({pw // # Create 10 random users for (let i = 0; i < 10; i++) { - await adminClient.createUser(createRandomUser(), '', ''); + await adminClient.createUser(pw.random.user(), '', ''); } // # Visit system console @@ -37,7 +33,7 @@ test('MM-T5523-1 Sortable columns should sort the list when clicked', async ({pw // # Store the first row's email before sorting const firstRowWithoutSort = await systemConsolePage.systemUsers.getNthRow(1); - const firstRowEmailWithoutSort = await firstRowWithoutSort.getByText(simpleEmailRe).allInnerTexts(); + const firstRowEmailWithoutSort = await firstRowWithoutSort.getByText(pw.simpleEmailRe).allInnerTexts(); // # Click on the 'Email' column header to sort await systemConsolePage.systemUsers.clickSortOnColumn('Email'); @@ -45,7 +41,7 @@ test('MM-T5523-1 Sortable columns should sort the list when clicked', async ({pw // # Store the first row's email after sorting const firstRowWithSort = await systemConsolePage.systemUsers.getNthRow(1); - const firstRowEmailWithSort = await firstRowWithSort.getByText(simpleEmailRe).allInnerTexts(); + const firstRowEmailWithSort = await firstRowWithSort.getByText(pw.simpleEmailRe).allInnerTexts(); // * Verify that the first row is now different expect(firstRowEmailWithoutSort).not.toBe(firstRowEmailWithSort); @@ -63,7 +59,7 @@ test('MM-T5523-2 Non sortable columns should not sort the list when clicked', as // # Create 10 random users for (let i = 0; i < 10; i++) { - await adminClient.createUser(createRandomUser(), '', ''); + await adminClient.createUser(pw.random.user(), '', ''); } // # Visit system console @@ -81,14 +77,14 @@ test('MM-T5523-2 Non sortable columns should not sort the list when clicked', as // # Store the first row's email without sorting const firstRowWithoutSort = await systemConsolePage.systemUsers.getNthRow(1); - const firstRowEmailWithoutSort = await firstRowWithoutSort.getByText(simpleEmailRe).allInnerTexts(); + const firstRowEmailWithoutSort = await firstRowWithoutSort.getByText(pw.simpleEmailRe).allInnerTexts(); // # Try to click on the 'Last login' column header to sort await systemConsolePage.systemUsers.clickSortOnColumn('Last login'); // # Store the first row's email after sorting const firstRowWithSort = await systemConsolePage.systemUsers.getNthRow(1); - const firstRowEmailWithSort = await firstRowWithSort.getByText(simpleEmailRe).allInnerTexts(); + const firstRowEmailWithSort = await firstRowWithSort.getByText(pw.simpleEmailRe).allInnerTexts(); // * Verify that the first row's email is still the same expect(firstRowEmailWithoutSort).toEqual(firstRowEmailWithSort); diff --git a/e2e-tests/playwright/tests/functional/system_console/system_users/column_toggler.spec.ts b/e2e-tests/playwright/test/specs/functional/system_console/system_users/column_toggler.spec.ts similarity index 98% rename from e2e-tests/playwright/tests/functional/system_console/system_users/column_toggler.spec.ts rename to e2e-tests/playwright/test/specs/functional/system_console/system_users/column_toggler.spec.ts index 03ef444dd3..853e04f58e 100644 --- a/e2e-tests/playwright/tests/functional/system_console/system_users/column_toggler.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/system_console/system_users/column_toggler.spec.ts @@ -1,9 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect} from '@playwright/test'; - -import {test} from '@e2e-support/test_fixture'; +import {expect, test} from '@mattermost/playwright-lib'; test('MM-T5523-3 Should list the column names with checkboxes in the correct order', async ({pw}) => { const {adminUser} = await pw.initSetup(); diff --git a/e2e-tests/playwright/tests/functional/system_console/system_users/export_data.spec.ts b/e2e-tests/playwright/test/specs/functional/system_console/system_users/export_data.spec.ts similarity index 88% rename from e2e-tests/playwright/tests/functional/system_console/system_users/export_data.spec.ts rename to e2e-tests/playwright/test/specs/functional/system_console/system_users/export_data.spec.ts index 53636732c2..149be31bd9 100644 --- a/e2e-tests/playwright/tests/functional/system_console/system_users/export_data.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/system_console/system_users/export_data.spec.ts @@ -1,10 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect} from '@playwright/test'; - -import {test} from '@e2e-support/test_fixture'; -import {duration} from '@e2e-support/util'; +import {expect, test} from '@mattermost/playwright-lib'; test.fixme('MM-T5522 Should begin export of data when export button is pressed', async ({pw}) => { test.slow(); @@ -28,7 +25,7 @@ test.fixme('MM-T5522 Should begin export of data when export button is pressed', await systemConsolePage.sidebar.goToItem('Users'); await systemConsolePage.systemUsers.toBeVisible(); - // # Change the export duration to 30 days + // # Change the export pw.duration to 30 days await systemConsolePage.systemUsers.dateRangeSelectorMenuButton.click(); await systemConsolePage.systemUsersDateRangeMenu.clickMenuItem('All time'); @@ -36,7 +33,7 @@ test.fixme('MM-T5522 Should begin export of data when export button is pressed', await systemConsolePage.systemUsers.exportButton.click(); await systemConsolePage.exportModal.confirm(); - // # Change the export duration to all time + // # Change the export pw.duration to all time await systemConsolePage.systemUsers.dateRangeSelectorMenuButton.click(); await systemConsolePage.systemUsersDateRangeMenu.clickMenuItem('Last 30 days'); @@ -61,11 +58,11 @@ test.fixme('MM-T5522 Should begin export of data when export button is pressed', expect(postText).toContain('export of user data for the last 30 days'); // * Wait until the first export finishes - await channelsPage.centerView.waitUntilLastPostContains('contains user data for all time', duration.half_min); + await channelsPage.centerView.waitUntilLastPostContains('contains user data for all time', pw.duration.half_min); // * Wait until the second export finishes await channelsPage.centerView.waitUntilLastPostContains( 'contains user data for the last 30 days', - duration.half_min, + pw.duration.half_min, ); }); diff --git a/e2e-tests/playwright/tests/functional/system_console/system_users/filter_popover.spec.ts b/e2e-tests/playwright/test/specs/functional/system_console/system_users/filter_popover.spec.ts similarity index 89% rename from e2e-tests/playwright/tests/functional/system_console/system_users/filter_popover.spec.ts rename to e2e-tests/playwright/test/specs/functional/system_console/system_users/filter_popover.spec.ts index a5dd131a16..b53eca49e8 100644 --- a/e2e-tests/playwright/tests/functional/system_console/system_users/filter_popover.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/system_console/system_users/filter_popover.spec.ts @@ -1,8 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {test} from '@e2e-support/test_fixture'; -import {createRandomTeam, createRandomUser} from '@e2e-support/server'; +import {test} from '@mattermost/playwright-lib'; test('MM-T5521-7 Should be able to filter users with team filter', async ({pw}) => { const {adminUser, adminClient} = await pw.initSetup(); @@ -15,13 +14,13 @@ test('MM-T5521-7 Should be able to filter users with team filter', async ({pw}) const {systemConsolePage} = await pw.testBrowser.login(adminUser); // # Create a team with a user - const team1 = await adminClient.createTeam(createRandomTeam()); - const user1 = await adminClient.createUser(createRandomUser(), '', ''); + const team1 = await adminClient.createTeam(pw.random.team()); + const user1 = await adminClient.createUser(pw.random.user(), '', ''); await adminClient.addToTeam(team1.id, user1.id); // # Create another team with a user - const team2 = await adminClient.createTeam(createRandomTeam()); - const user2 = await adminClient.createUser(createRandomUser(), '', ''); + const team2 = await adminClient.createTeam(pw.random.team()); + const user2 = await adminClient.createUser(pw.random.user(), '', ''); await adminClient.addToTeam(team2.id, user2.id); // # Visit system console @@ -63,11 +62,11 @@ test('MM-T5521-8 Should be able to filter users with role filter', async ({pw}) const {systemConsolePage} = await pw.testBrowser.login(adminUser); // # Create a guest user - const guestUser = await adminClient.createUser(createRandomUser(), '', ''); + const guestUser = await adminClient.createUser(pw.random.user(), '', ''); await adminClient.updateUserRoles(guestUser.id, 'system_guest'); // # Create a regular user - const regularUser = await adminClient.createUser(createRandomUser(), '', ''); + const regularUser = await adminClient.createUser(pw.random.user(), '', ''); // # Visit system console await systemConsolePage.goto(); @@ -118,11 +117,11 @@ test('MM-T5521-9 Should be able to filter users with status filter', async ({pw} const {systemConsolePage} = await pw.testBrowser.login(adminUser); // # Create a user and then deactivate it - const deactivatedUser = await adminClient.createUser(createRandomUser(), '', ''); + const deactivatedUser = await adminClient.createUser(pw.random.user(), '', ''); await adminClient.updateUserActive(deactivatedUser.id, false); // # Create a regular user - const regularUser = await adminClient.createUser(createRandomUser(), '', ''); + const regularUser = await adminClient.createUser(pw.random.user(), '', ''); // # Visit system console await systemConsolePage.goto(); diff --git a/e2e-tests/playwright/tests/functional/system_console/system_users/search.spec.ts b/e2e-tests/playwright/test/specs/functional/system_console/system_users/search.spec.ts similarity index 85% rename from e2e-tests/playwright/tests/functional/system_console/system_users/search.spec.ts rename to e2e-tests/playwright/test/specs/functional/system_console/system_users/search.spec.ts index 77d061fc7f..17a92b95cd 100644 --- a/e2e-tests/playwright/tests/functional/system_console/system_users/search.spec.ts +++ b/e2e-tests/playwright/test/specs/functional/system_console/system_users/search.spec.ts @@ -1,9 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {test} from '@e2e-support/test_fixture'; -import {createRandomUser} from '@e2e-support/server'; -import {getRandomId} from '@e2e-support/util'; +import {test} from '@mattermost/playwright-lib'; test('MM-T5521-1 Should be able to search users with their first names', async ({pw}) => { const {adminUser, adminClient} = await pw.initSetup(); @@ -16,8 +14,8 @@ test('MM-T5521-1 Should be able to search users with their first names', async ( const {systemConsolePage} = await pw.testBrowser.login(adminUser); // # Create 2 users - const user1 = await adminClient.createUser(createRandomUser(), '', ''); - const user2 = await adminClient.createUser(createRandomUser(), '', ''); + const user1 = await adminClient.createUser(pw.random.user(), '', ''); + const user2 = await adminClient.createUser(pw.random.user(), '', ''); // # Visit system console await systemConsolePage.goto(); @@ -48,8 +46,8 @@ test('MM-T5521-2 Should be able to search users with their last names', async ({ const {systemConsolePage} = await pw.testBrowser.login(adminUser); // # Create 2 users - const user1 = await adminClient.createUser(createRandomUser(), '', ''); - const user2 = await adminClient.createUser(createRandomUser(), '', ''); + const user1 = await adminClient.createUser(pw.random.user(), '', ''); + const user2 = await adminClient.createUser(pw.random.user(), '', ''); // # Visit system console await systemConsolePage.goto(); @@ -80,8 +78,8 @@ test('MM-T5521-3 Should be able to search users with their emails', async ({pw}) const {systemConsolePage} = await pw.testBrowser.login(adminUser); // # Create 2 users - const user1 = await adminClient.createUser(createRandomUser(), '', ''); - const user2 = await adminClient.createUser(createRandomUser(), '', ''); + const user1 = await adminClient.createUser(pw.random.user(), '', ''); + const user2 = await adminClient.createUser(pw.random.user(), '', ''); // # Visit system console await systemConsolePage.goto(); @@ -112,8 +110,8 @@ test('MM-T5521-4 Should be able to search users with their usernames', async ({p const {systemConsolePage} = await pw.testBrowser.login(adminUser); // # Create 2 users - const user1 = await adminClient.createUser(createRandomUser(), '', ''); - const user2 = await adminClient.createUser(createRandomUser(), '', ''); + const user1 = await adminClient.createUser(pw.random.user(), '', ''); + const user2 = await adminClient.createUser(pw.random.user(), '', ''); // # Visit system console await systemConsolePage.goto(); @@ -144,8 +142,8 @@ test('MM-T5521-5 Should be able to search users with their nick names', async ({ const {systemConsolePage} = await pw.testBrowser.login(adminUser); // # Create 2 users - const user1 = await adminClient.createUser(createRandomUser(), '', ''); - const user2 = await adminClient.createUser(createRandomUser(), '', ''); + const user1 = await adminClient.createUser(pw.random.user(), '', ''); + const user2 = await adminClient.createUser(pw.random.user(), '', ''); // # Visit system console await systemConsolePage.goto(); @@ -182,7 +180,7 @@ test('MM-T5521-6 Should show no user is found when user doesnt exists', async ({ await systemConsolePage.sidebar.goToItem('Users'); // # Enter random text in the search box - await systemConsolePage.systemUsers.enterSearchText(`!${getRandomId(15)}_^^^_${getRandomId(15)}!`); + await systemConsolePage.systemUsers.enterSearchText(`!${pw.random.id(15)}_^^^_${pw.random.id(15)}!`); await systemConsolePage.systemUsers.verifyRowWithTextIsFound('No data'); }); diff --git a/e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts b/e2e-tests/playwright/test/specs/visual/channels/intro_channel.spec.ts similarity index 83% rename from e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts rename to e2e-tests/playwright/test/specs/visual/channels/intro_channel.spec.ts index bb40dd73de..45b1c452f3 100644 --- a/e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts +++ b/e2e-tests/playwright/test/specs/visual/channels/intro_channel.spec.ts @@ -1,9 +1,9 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {expect, test} from '@e2e-support/test_fixture'; +import {expect, test} from '@mattermost/playwright-lib'; -test.fixme('Intro to channel as regular user', async ({pw, browserName, viewport}, testInfo) => { +test('Intro to channel as regular user', async ({pw, browserName, viewport}, testInfo) => { // Create and sign in a new user const {user} = await pw.initSetup(); diff --git a/e2e-tests/playwright/test/specs/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-chrome-linux.png b/e2e-tests/playwright/test/specs/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-chrome-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..e68362f68eb27d64860135b2f575b2e68d2c0294 GIT binary patch literal 69294 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⁣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 I8R3Kf0cHl-Qvd(} literal 0 HcmV?d00001 diff --git a/e2e-tests/playwright/test/specs/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-ipad-linux.png b/e2e-tests/playwright/test/specs/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-ipad-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..6eccc3cadaac8f1df21072f937093b9e9de7ccea GIT binary patch literal 87790 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 %(Yo_-ms>e51J7b0^IxzWVU6H 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 literal 0 HcmV?d00001 diff --git a/e2e-tests/playwright/tests/visual/common/landing_page.spec.ts b/e2e-tests/playwright/test/specs/visual/common/landing_page.spec.ts similarity index 89% rename from e2e-tests/playwright/tests/visual/common/landing_page.spec.ts rename to e2e-tests/playwright/test/specs/visual/common/landing_page.spec.ts index 2231d009b6..e9dd273ba2 100644 --- a/e2e-tests/playwright/tests/visual/common/landing_page.spec.ts +++ b/e2e-tests/playwright/test/specs/visual/common/landing_page.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {test} from '@e2e-support/test_fixture'; +import {test} from '@mattermost/playwright-lib'; test('/landing#/login', async ({pw, page, browserName, viewport}, testInfo) => { // Go to landing login page diff --git a/e2e-tests/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-chrome-linux.png b/e2e-tests/playwright/test/specs/visual/common/landing_page.spec.ts-snapshots/landing-login-chrome-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-chrome-linux.png rename to e2e-tests/playwright/test/specs/visual/common/landing_page.spec.ts-snapshots/landing-login-chrome-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-firefox-linux.png b/e2e-tests/playwright/test/specs/visual/common/landing_page.spec.ts-snapshots/landing-login-firefox-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-firefox-linux.png rename to e2e-tests/playwright/test/specs/visual/common/landing_page.spec.ts-snapshots/landing-login-firefox-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-ipad-linux.png b/e2e-tests/playwright/test/specs/visual/common/landing_page.spec.ts-snapshots/landing-login-ipad-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-ipad-linux.png rename to e2e-tests/playwright/test/specs/visual/common/landing_page.spec.ts-snapshots/landing-login-ipad-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/login.spec.ts b/e2e-tests/playwright/test/specs/visual/common/login.spec.ts similarity index 96% rename from e2e-tests/playwright/tests/visual/common/login.spec.ts rename to e2e-tests/playwright/test/specs/visual/common/login.spec.ts index 9e760481d2..944b3308ba 100644 --- a/e2e-tests/playwright/tests/visual/common/login.spec.ts +++ b/e2e-tests/playwright/test/specs/visual/common/login.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {test} from '@e2e-support/test_fixture'; +import {test} from '@mattermost/playwright-lib'; test('/login', async ({pw, page, browserName, viewport}, testInfo) => { // Set up the page not to redirect to the landing page diff --git a/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-chrome-linux.png b/e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-chrome-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-chrome-linux.png rename to e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-chrome-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-chrome-linux.png b/e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-error-chrome-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-chrome-linux.png rename to e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-error-chrome-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-firefox-linux.png b/e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-error-firefox-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-firefox-linux.png rename to e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-error-firefox-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-free-edition-chrome-linux.png b/e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-error-free-edition-chrome-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-free-edition-chrome-linux.png rename to e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-error-free-edition-chrome-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-free-edition-firefox-linux.png b/e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-error-free-edition-firefox-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-free-edition-firefox-linux.png rename to e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-error-free-edition-firefox-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-free-edition-ipad-linux.png b/e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-error-free-edition-ipad-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-free-edition-ipad-linux.png rename to e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-error-free-edition-ipad-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-ipad-linux.png b/e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-error-ipad-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-ipad-linux.png rename to e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-error-ipad-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-firefox-linux.png b/e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-firefox-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-firefox-linux.png rename to e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-firefox-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-free-edition-chrome-linux.png b/e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-free-edition-chrome-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-free-edition-chrome-linux.png rename to e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-free-edition-chrome-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-free-edition-firefox-linux.png b/e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-free-edition-firefox-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-free-edition-firefox-linux.png rename to e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-free-edition-firefox-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-free-edition-ipad-linux.png b/e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-free-edition-ipad-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-free-edition-ipad-linux.png rename to e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-free-edition-ipad-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-ipad-linux.png b/e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-ipad-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-ipad-linux.png rename to e2e-tests/playwright/test/specs/visual/common/login.spec.ts-snapshots/login-ipad-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts b/e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts similarity index 96% rename from e2e-tests/playwright/tests/visual/common/signup_email.spec.ts rename to e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts index e2edabff0f..066b105093 100644 --- a/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts +++ b/e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {test} from '@e2e-support/test_fixture'; +import {test} from '@mattermost/playwright-lib'; test('/signup_email', async ({pw, page, browserName, viewport}, testInfo) => { // Set up the page not to redirect to the landing page diff --git a/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-chrome-linux.png b/e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-chrome-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-chrome-linux.png rename to e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-chrome-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-chrome-linux.png b/e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-error-chrome-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-chrome-linux.png rename to e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-error-chrome-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-firefox-linux.png b/e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-error-firefox-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-firefox-linux.png rename to e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-error-firefox-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-free-edition-chrome-linux.png b/e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-error-free-edition-chrome-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-free-edition-chrome-linux.png rename to e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-error-free-edition-chrome-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-free-edition-firefox-linux.png b/e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-error-free-edition-firefox-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-free-edition-firefox-linux.png rename to e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-error-free-edition-firefox-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-free-edition-ipad-linux.png b/e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-error-free-edition-ipad-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-free-edition-ipad-linux.png rename to e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-error-free-edition-ipad-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-ipad-linux.png b/e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-error-ipad-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-ipad-linux.png rename to e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-error-ipad-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-firefox-linux.png b/e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-firefox-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-firefox-linux.png rename to e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-firefox-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-free-edition-chrome-linux.png b/e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-free-edition-chrome-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-free-edition-chrome-linux.png rename to e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-free-edition-chrome-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-free-edition-firefox-linux.png b/e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-free-edition-firefox-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-free-edition-firefox-linux.png rename to e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-free-edition-firefox-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-free-edition-ipad-linux.png b/e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-free-edition-ipad-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-free-edition-ipad-linux.png rename to e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-free-edition-ipad-linux.png diff --git a/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-ipad-linux.png b/e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-ipad-linux.png similarity index 100% rename from e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-ipad-linux.png rename to e2e-tests/playwright/test/specs/visual/common/signup_email.spec.ts-snapshots/signup-email-ipad-linux.png diff --git a/e2e-tests/playwright/test/tsconfig.json b/e2e-tests/playwright/test/tsconfig.json new file mode 100644 index 0000000000..696ff1993e --- /dev/null +++ b/e2e-tests/playwright/test/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "module": "commonjs", + "moduleResolution": "node", + "target": "es2022", + "declaration": true, + "declarationDir": "dist", + "strict": true, + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "composite": true, + "strictNullChecks": true, + "skipLibCheck": true, + "noEmit": true, + "baseUrl": "." + }, + "include": ["./**/*"], + "exclude": ["node_modules", "playwright-report"] +} diff --git a/e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-chrome-linux.png b/e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-chrome-linux.png deleted file mode 100644 index bc4748afcd849f9f799c676b6b8d05cf525d1076..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84054 zcmcfpWmHw)7d8wZKtKdZ=~57o4wViO1(8ya?(XgeQ5p^n(j}mDcS(0i!yyhS-G_b_ zKmCvU9?yq&ykFjT4Tqe=-g~XR*IaAP>$>LL1bvW|c=&+q0R#ehDEaPP{|+(aUI^T&OVlSUwv8}ENDlBj2N4k_?|?cLZ%@`?&&t@^GJZES9H0yj415K3-&}5l(PBdmTYsy2}2;0uvU-c7+Jpk84lfAC(W93%-X0 z2foW1rT$1mV^=z29uEd53V~8bVod68@}_dRlOPbj9q3psn&IF3-@2Hx8T}zEoAi9; zYTN1>l;1%Qxjg>!>!ory13gn&>w1o1vd(UN$aJhriKHIEze$WFYA;zPo{jD9fy!@~ z_;p=b2|2VCTy^T9YYVKNeqa%r!JDQ}0js+hs%hFa1K3PRW3u?StYsR!N1L4CZ{E}80W>h%20$5xJld#8z^ z3lZ+m4lvp{m>%4?y;1Z?VPVnl!J{6WqaAtCx;vQbveWm7-pg;(s!ns0yb`&@eG(hC zrx5-f?m(nyDkYREs+$o)HP5fKsjRYL*3SXCkBPCCZ>`Mfy%da=W?re5z@_^ptLrHZ z%{VGLDu-M9E4HoiufvOv-}m)O3Z=HroXk#@UcRyqV4$IqxAsFnT?>}X;=uBwmF(h8 z^uY4z4&?BExZ5}UMVLjUBI;q1^GoME8arRI#NmJ*0)KrHv;Zg-e1GJV^jNl{0dE`n znc+rypGt`dVN%tuF#CaYl3?N!KejgB=k|_?pI|J0$e}f*?Z52iSl9)8EL4Au}!W&dFiUD6P zb=)Sg-Hw#BaOT>jw-zVkc^EC~MzTjH6Duu~pO5?2m01bgi0}g3T;tTH$>4 z6cw}A^X&cYrDEN}-?}C!-N^;-3?0pYmFrpWlBxDJI@RlQn`9TlsE6zjGZ}IP@6lc^ znLS@(Pvy;5VZS#dcz}6DiA{B}8vSz)FA{BYm@ReISffWKP7^#pRZqOz6bMK`Ghllw}8(;3Bb6FmmR%|=x^!==+JDq?o(&z`enu>0$l*h+PvGimZy8qVe2 zo3NY_P1Dlcx93$U(-VvCv=8p+N?XK$%5Re+<%nK#ASNCBJ}lU!YD5hDYHLb3ee5RQ zs)@1xn=2YZjaZM}-zwI*#qi@w!~NWO6S|B;)uQmHpi7awsG|tUrEV%g36lL?dAmff z`f|8PhC-6Di;I!O6~#z{l_6OmE_$!okr=hkoM98sTu0CI#h8$8#4Q zYc20fg;VN+9g&E@cYVb86x}=JISL;ZR|d|685npL+$~x&6+_8{eKr-kB9fF<_RMyh z;vM0KrDC?c+b)9i<~&x$o55i+2!&54lOk7N7H&4rkDP??@M<|6wnkGwwxO5V_OUgo zlwgH){E7*p-B`#)hp1OE91e_D_TRW5DQj}Zfs>+=69=16B$5Oi@M>S(U09lhuhMLa ze$-TS-e~P5`ee`ZMVfi8+#)b4Uus;>Qq~U{viJ_OC#x#_<~-YZl|zKl;xEsQ-WS5N zNJWe|{B=1TN1sWL8BC_4Jk8DaMXEog(CP0M1y)`ZS|5&l6eT~J_=3%6QS><@hJ~N6 z=oYTa4U=D4nf&f;Lqel#BuNvRCJk0dW*K5N9f_kiPj|E-Nzs~XMbG4zJ8IIQ#g2xoC6gGZ<@xWsE z>Z$4&65?=cl|`#5b##>LilRw6ks~>LM?Kn2Fsql(wzRP3=1-sLBz+vgw5vyx z4u<=wmoh0SA?aWq9?HgaA;FUFla;mAa@`{~A~r2}VW{gGdvnXeP^-eNho5;7h4Pll z$&Q2}=?<8au_{L_Hf2tC9Ezneb|M9NHMOlFYBKzGM`gKe_4U()9LYZi(nEtc<{k|V4PlNng{aYlGBCC8a^*qxjJrM=Wsa z;@3%Gi{0U&5YuS!k6?W^Lf6Ok%67M91>ad|A$htxqb}xKE0tTpvE9zLf2~=%*R1+8 zCvY3SU~ibIIO`%J@twAMfrdu3m`j^3me7+%Tsxgc?W3z=LJ09rfTYkiOF`CRRS-Jr zq|GTCOOyH!sV*p_vHGj@OHjRDyDkNFLMu7ZFXy#y>?bT`I$pH4x4$?TROJ~`NiE9} zUSD4OrmR!0_U)*n8dw!JtMy6a*ZNWXgv;QNw}Sxbw`qga?hMT>6{;F@dT-Cum!r>_ zZboJ+!gc5JS}BARU#qzh&DT{JU&L@C_&m;!`#Kam-4GJh@)3Iljs+K|NirhyB^H5`J7vjJ&-3WdI?tV%QU5 zwqOu~*1T$`F14z?)2J*KDu*tG=SxViHfH_4hA6`iTvR|;&vWD+gH!dpo+q6%;6|=F z{c&B19wO3Bq~Doow_9hO{P1DJ;5sMei~l`Nk9Q)OSu}_R_q4l9XX zz$`H`v6+@l6-1_RQs^eUI(tSkHPISu>dm-Rz#)l586)!ey7IV4)&}R`N&XDWCd{7xqlM zgo1|JO#1oS5pj{uW^b^m+1bq^|Hav+>@OcJkMnUmNY(C?)Sof-$VkNlY5^L-FALXy zygI|*FCL-x+0-}Bvbk*rKZG5bk>v|tZ#z+2)mc3tYFi9*7SSJ@m{(yTG8#;1-&jH+ z<=^0%u$a<<4=pswP<)jomb->KLOy>+zK? zLqx_T4tCiSr=BEM0JOPePD%XmgCQ9VcpJ*GtKHfKv(n{Lk2A09PYVbYI>_65%S`c4 z1vJiK4x@;rN00c=_wuP-7RIot=i+}vi;w&eBgdwcTmn8gFPUt1l)#7X`}c<93yC?w zqX$K)+~M;<=-;?qU!Z=Kg?ZgdL9EhVrZCfotrSjcbLd~(i&7YM*~>bYNxVYgK-O>F z#WCuzYR>SA*x`ETJOlCL5UHul^{p(M+OAK0?sxo}yok$hYB6|aX&0--sFf2Jb*zz%ZH|e!-HE|9@9Rr?+v**Q?0bhKf4T5cOGk&bKY~BfKWjLUMu5) zJ=DJA6z#_1*CwH`3Hy#xNb_29sQ>g-v%VST|>kO#8NX1piPKDwV+ z!WZ%-7=%;nyWJaxRYxX=hHPPQ!br@aAM41u<@cGGkteNZROwtRUDat67{X|Pdk~Y5 zZ|H;H)1r}rJtB;^0gDbSIE7CduRrD6Oju2|_9P2J@Xsi9O@0}I<2s4-0pZz;OiWgX zHPY^nb9CDvG}o<@N(Xb+r6h}J`MS${`g$ZvfF=&DX7p=DqE@J2VYRh%Jt(|tg-Evr zn_5qCIh>4VPC_cwhOF><%Y|_A-d*Y9k25uhuE)m4x;L{w%bVidKHlus7suA?jD?q8 zB3x#Bne%Tbj2mp9u`=h|7hD`;KEyzK%=^qIznDaQXRbSN=GMe}GYndD?$5mOJL6#r ze}!)6F$O^AhYdR|v^2y4Del-@b}HV#+Fm!X&l!^mc|5kN&V`vjC45we0Pfu5WPqut zPLHK}-hr;T@r3cfcI1ut7u&s^Nw>?jb>ijq^#EYdg}%Dca&?K`-o68S-e>$f1D|y{ zRUBsA^1lOjUY50MSAZv8QVtRRvz#Rj8R&<3T^lZ3!#v*e`?1J+} z1`f4nU4&*3dgG2S5}|hqaY}%Q?Aw)J&VOnFU?v8piqB8zeje;XL(5DxTcDKZQH-I( zndo#BhWRzEEq;)4)~$J{pI;JcMcGgfIop`nn89gb=*<& zZAUgmU%I6S7F?XpCHEvXWFznXo%0OZ)_|SsQ2po{4GIrl>@?2>P-2b`svUjYAN<1_ zupR_lft@=q@xbKJ_U2;SyuG7JZ{G(NO8xxHR&i5u`?UmF;i&u@HZSH03nQIosyWX~ zESTF~h?xR08?{KND2iK|*}w#oBH_tL5YmY;;|}Vz7jR;!tqhFU4~yer`4iQ~XR^mT z^I^o=xA%c6FtnRO!oN|*E=+@_ymPro2F zlJHe{r>y5t4K0SC_6=Ull#8gf(2ATR0l3g&R9@z=D&E^S58}Fpu+=j_kl?Ymo}c>^ zo24BzESRydu&Lg!EiM`4d1NhZnTu?ZG|Q=7V3f(O3^Q>R*r5-yLXQ8yg31oX=q-PPE|8}jMTl8N0b3c=UKQ;rk?X46!G5RKBbhVp*^|> zSdqitOlrxn4!Diu&H1k{$*XK>>UVi~p0tX(2wGW}l{gO#!W?7ep~krQ`0s#0r^?T8 zAwY2ef&;Y8C{ID!T8RvjHYCI zI)0PBy8E?7$yfD@wo`}bmy&37h%$!i%=?8`E27CER9*e~Ds3YSqtHds(y1)u{g@g? z$pHp$1+vtrVA8Z4$t*>bswtUQPTRsQ;qwcgqo=>hp#bn{gLrs8+YDPVIXrL+v;Wyp z^(0DR%;oZ${hMRkClJSc0jG?LPLcz0jHnIFYNn%xLyBa@7$u)u=<=vM+VPg;S`ft{ z=7V=6!%0e!x(~w(n*^zF_B;jC0(O%+3bt~%^h~?~3d*Euv#kq8j480YPO|Z7f&li7 zPaj`dj$ER*^hIy)oWssscxDv--sc<|n%r!#FsW}{lkmhYM{<>w`5jICW_RfMUWN^= zv(sG~P@OHf3gOJXjE-NpN+=-Us|+W^qxyBCEZ5%Eg%0+&xDj``h!!MP(G|!le9E$< z1F_K(x+G}m&}@$NBkSo>a}iJWt5dM%hO-fmqIx&I4s=fX zE9=vB$4+|S6J{qDiq_)3jU{lqeu@n{Lpv=*eAqnhZ843Oz@sE=b*CP%j#B}SyTYVL z4ah1F*r<78tmBH{@Y)cSMl0rn(vOdbD9_(>bbYr*9T+xq8c7b2~`xvcF4?M8dVf<+RJ!a#gGh;jrvAVcVKU zZQ~$G97gwn-ty%3!0pm_zs$yl46w({ef(V7zpZyR3656~t=cNsJ z`1mQJ{wrZfaIk8b9tv;=S?23bA8G~q_A`umC|v+brr?kIwSv)Ry1wrSACF|f4=~mC!>7^At&{&Yo}qQt#>=S_As1?(Y&L0I;81FFknhAi3f6 z)VY`)&>Iat*B3(d&U&jetlRU&4>RAa2mlqU+-`?R97^)Wr@$2X%zTDdx#uYaR z7zvAG^SZjFI`r~pLUM7N{b8UjV=1%q)tDL%q$YiM-24aCAE%4+&+{#Qmg)@{J$Rt0 znDdZYs&D1!Tq>VshM9(@5=h6U$DHbK{cW$uX@H{LjragiM}4`-)qFCnX|3my1Cbs28;+;CQPRw|nRHF{KYklUfRgaZ|B z$)F`X%e3#}zB=EG|Jm-`lpu_BPx}mcVwgMO)nvr$8{60vD^6_d(ZPFEuG^}B%wQs4 zijS=M`c{Uo^C$axcX7-WabXKqJu08l{00%M=DiE1#)&{efUQu+#+u=XT=49{Pc7ky zX{gmv5#>pnw%`bhEztcP0j@DCfB~hxHlkp@#Lp8w>TVC$IhbwDm$2vB{hYgy5g?}< zc}BxJ89bgeo#GM!CTA2V>)@1-fm6*tfF>kQ-di-c9(cm|eeHc+KLNwJUMp9VYFXT3 zdJEa*3qoj@*lCYOox{&5Qr=4gtMaF}kWem$K{`2n-jiYyuZ-;>%*7_?0~d?Tq%TfQ z_Yi6arKHWgzS?X+mk&63kwRe4aayT zC3K;|b-FFoKfC8WGN=2$oKSbiF9!uD8;q|ZH}70!SN)5*MevV4BOJ6L?AA^n{3#(J z)*VLWuI5nN<4wnyY(hJ`&5_`h1wWL=9uY{0TpLeLVc57x!8|p&Wd+fqiWMG22 z1tg3(yu8BKutmW(Zw(HXN))&U%oIqPgI>-N9o2pg5JrLT2#G%`i&BXSqttxpH}B+h z-%`ZA%ViUC>1hn&&9tY>bM~1u=aaN$y$PtZTsD-v7-1zC-E`$>I$|tpWmR{%qgoSJ zK`Is^!h{fz7iohZyl}n`hJH=5%hk)>_;z}iy+qvM7d}2plc>x4WXOs&Z@BiB4p!S^ zBPDhgVI^d@>Ys5}&t;+;!g43H1-mF;#Xuf`lv56{N1%qqe_zB6Nj@ZpTuvGFDlk{U zcq^l=2YU@(OH_37@Z+{|1U6+zgo&-N$mOt%sg{1Vp|wEHY#zSLVwpaOz3bz6hK`0t zri0^-o$38}xA?8YN?vvR^g*?8>cs8b{%gtTx%h55sxL`ZTp#&$=3fY;;QIje>u+2C zIDSuid@o54kIoYLf4`&|{mcl2%YSY3^K=2x&fx#~EQS8<+a%7B!N)-OvaY~bwR_L@PCc@|GzJVwJ5l?2~!qI9v0jd+?YgdEhV2; zhGn4WP*ZuW-Hd{U1W`v9hY_lf)y^5_S(c0JA$(VKgy7fUt>opRMu6;={75;T

;N25U#~Cs&f(@~rn@C?2ZK!$J#JPfT?A9tu;2cj1TtSH$lE`Q`sK@e>meO8 zB^tFIW~~bg!~w-PMVa`$pYW!h9v)&Q@Oa}%Kyw!N_9VKncSw?l)2602*06Unoi>I) zI_*?ki`!DMd^>PSn&^jjL!@%_sgwAv=22wny9$ZcA9v z-A(}Q9cDV{{~;OexpT1Yt5-hMKurH`xEh8Bf_3%u{HPJ4nyCr`s}~uU z6b}}P=hbX{b3h}T8)A7h!_|hj z+ptEcvbI}Q=TmjCSch)cU+y+uD(wxq^!7yaHC%MMU#(=ggA^v&Re8VmJ}ZO0oo!t* zZ_3+8#EMr|vZ*hy+c@5lOhHk#z5Bu`>unL|c#C@yuY5!@GM-4MasOzY{99NMxdwuM zw<&NM-0EYB{3&G3SIBBOC2UsEfM($nc8ww$uj_6x=@c#`pA+)x{iLqcMeCuf0B4w+ zZv@ni>&%N+QtPdd7SFsd z$eERj3=g7W=RDU3Dm$IJc6biwj*2;qcLmq_QzX_0DM^GKa24pG3~bz;$#}do)|YgJLK4N{13Hd~PU;#=afgub>D@OpT-~0k4JatEz^0be zJIuC)6lf|(V$C%e3f$ay9dFIn_c~fNZK~~^5p;$jFS@9?rIc#gkAJ#3--ct6^WU$Z zA8hrLaJig^)?N=%ADzc*qeM6frW6oNJ8aI4fH7-4ev#}Qulkp%6@o-!sV-cp%3@wr zM+egA=9mkn3f`69d6k8}cdYc3O3>y@!xi$c*J8Y>af1STp8c29gB@09NILWWtS_~S z-K*IIuO}CxBO`l;sLm<*YF!C?nzgUO`}y z^&lbmJsKC%5);iQ;5|j&3$Ww8*`(1?`6{c0j?cwShUdYRS6d6kTy_Xtu5wujE&+k! z&Kv@v0<2}WFLZufj@oeCs~!^<=Qb-VGtVlhFR?tB!tc^N)H{gwn1Kg6xsa@BIai0D zdVO)ayxDw{s(pJpbhS;~+}3_fe|vEvRBhJaWT|cs_Q}DLMB2fG0JU9T!4}4Y2m4gc z{F--RK_ge5jT6%CVkHQ<9)=ouxWHYsF#`&Efta0 z8tp8>RoYCg)K^=q01)OoI_lZ;%RQa5Qq4ygEec~APzsqMr|nON1u|Q~!b0v2bSy8v zge6tm39_d6K)l^fwmTzQQCzG~DVmb2aeeTNrEi7QQBl9%Lq$af{+AT2;wKm=E*rVc zx|6$&6v9z&EDV>~zjH;p*6DYR{uJb9K`Y9n2@a96`9%LzN>=I+=_%d!!z*tsI(qtG z3GZ_Pu(Myi|HBFPt>Wpfz=s_&ZffeiGt1cuw8w1R{?4$AVrO{N1-}r635j^t(_7h~ z(EIDbKM3wZ+}!R@0Y!H~dR0}18r!v(?{5Gd1ugk|fgsQGn*?!jt7|(X)VK6F*9;*W zADGi_p7`et+xMxOJScfbCq--Ud&|2p1m3JQ>r`mEQ1o!NYEN&3r>|iriQ8JgXH@aa zSAQGTRfi9tc4A)_gMu%r-#<)Ul4J@ef4q0N6$J^g4<9O3E5!QY;lXxzgjsXutG(aV zmG(qHpldcYUi+1}I1$9Qbfmqr1Hh8Ok?coJYBlY%*1#W*|Gd@H%Y4SnY&Kt&s1Xp8w;fbCtPQBISZY^$JqOXG zU~e& zawSdo)u+5zNfeZXMBG;nd6hFc*`&2r;x|_$7VU-f|RP)Nw*l#RNOD26r5kq zwLPUwO&P_|a3JZ%Lss|D&_1Ya7!3O~DPE)%07JK5CC1Iyhdq9cVZYDN$kBo-T(fMdBHxbf1RvogdoX0WQJoGw-AE zUv!|x(dY2+=eSLyn^PC48rnQmtgxb#dgDS8(xjv&T)BkT&Ew{a0r(a0j^}o* zG{M2ad`>K3>FKXv*9+bl7#KG&TQY$I=l5oRY}LBD$_%$;<5<)sO(jXqC#($mHl$= z-lfG-`5B2>+gO(=r@RC^p1CUnw2;)$EV0m`Gp%xZpqYQ-`V$%Bex)pur+gWuIIGfN zrd|lwU?KE@Xx2L{hbiB7Rk@e|bvzl#R__G9GH!`BK^CQcGAD ztH}vC_N7gEJ4ulIVTDv>W@Q2C@8uGuCwb|E(GiZS;{nF&=c6j{! z_TbcXoau9JDuS}O;goxC@a9Wio|1-;Cl`oSu-?`>tc`_$cx{A0anlW3kUI`wEu`EI zxB!n@Hb!~NFur^lw!EwdEdC4ZB~pF^2syWF}r^CEF-4xZ8Z(hf$Zy5d2Um#StI-aqyA|w7hV7A{mS*yar zk>Qkk;Q4-@f}iHJ&K=nVN&E@)ppGk5p+PC6XDMti zb&Mpwj3Lz{{0_6QdtW@HC1>PxE$!{;S^XLh%l53Vl1>#2?+&!tD~)EbS3wMLVN(nD zdY-{#^Sc9$!ayz=G&Q!d7pj#;C;&16>0>0rQ~lSk*UwlP=}uh87-W;5(g=o<7u5p- zU2;UE>?Tf>Vf?Y;V7Wo?hLeHV2NKY_?rkL{E=$_%${HPwN`-c2!(sYLC)PgB%DK!e zJ|yrlvv*A+VWR*q$!+(?+Bd)AFQA~A|eAP!c}TmSSZ}P z?DTy3dbL03)HPYA|NK1gFt+6bp2%JmU1F83g%G2~+bglpQ~4f`i?I%o`USowr8M&yG;%Y%f^~78JV2G_Z4HKhCDz_<9i`Ut{eiQ}m)s9Z7Di z1weP|zogDuma&zt4baP!>us|goT7Eu>%!d`S4$Ff?GNMZWr_t< z4N(3SJG$wt$NxNRevU~4tNaY|}SJoZ;0g@LlZ~eRj+0X2X z2CBxt%=L|0Q$+<9KqnlYGudWIM&VR^F#u91n{Lf~r`64PVzE#fusdIuyl%2(JQA0f zdx{M9#!{*`MQ+XSW8tEnyuK@Qi(8ArXl;#!lFgwzuf)Xe3}-vjsT^lDe)A^6tbm?A zsUDVblWjXfaSYQW2WFJLt3%L9*A{Y1?R)t?$-(1acOjCZx*ahSK0bd4t?#BQO9Hzv z?miZXh$SVbO!b)Gnu}Yb&)ysjvr~KEdv+rG@)bMCog?7@o^~OX0VMcDUG&x_A&a$G{(;y2*>LbhWI#JH<_$H z`~DMJ*tGEQ2)Cx`=)V8XZ#GTL&ZeN{;%W$@6>x`NObFKx!+o#2-uHCdDkx!}v*EZ7 z?lm2zQ2qHy`F>-~#6}PVUOvAr{bdKDmw!I#lyjZu&U^ps_-8OQgpP|Q8SvSWdgU`S za^GarTi-U273H+r?mi;Y7Yp0nS){f%6DC^Za5=p(QQEaDHTC9<$GP9Kd!&h>Q#)%g zk~8Cckuuf1bpAjQ68t;8U`|F?7yb!3kseUV#EZWnjYd8slGZ;WF105();zx=trpWp z%L_@{voQhqU5A~SAEY#eX>12ChS<; zwuOr?uiJc@zJl*ZK5a^F4zzRTo78&#aO>>T18#ve$TFj4;k#W^UjbBxD`b$8-9S(2ULeuK@@^E~%$HLa4 zYO&085D}>`SV$li1U&|_-R|or)Jd&*!Z%Ni1kMFk5b>u?Nh4Bo1r7!zC1$jmIlZho!GN*}<}Bdd7-h?P&dtsm2G@$iP64<<0Lr5A^1qQ zGw?Ao#e`eR7L(J_`ONFn+&JX@9R=G8fsoDSJ5}butl-|_?4Fmjswyeim~_v0BY?vJ z7-`^(E$!xHwR2Yc42e>KMjw!&g2IB<){=@WE1v2A7Afxg2?Rfa~j+0f2BV}pn zNSGb#-S*e5R$sHCKthmCG!6TAd=;338;|l${7+2~yUn>OVtSWX2L(e! zkw*HQi@9f-?y~yXR8sn@e;nsLy9U}j#R*7AURg-L005*wz4@Cc%H_C=ma8itCNb-3 zG~W?I5BB=>>28+gtP6m~LyW021saX1fCbvmhniBzNg2L5WZq$G^LHWm#dvAw>c2{gx896&ZQ=)d|~!5E()GlM60i zKu{J03FWFMDy^C1sfl;Zf@nrp4i678u&^F;aHPL?mv&&bJ32HMVrO80wtJ!{IGmGs zAzCOQ4M)2SVPxu7R#cm$-&i!O5-Yd3Igc*#H)g&Q@C-DdB@Og$;|PDxtEm|&T3=sR zUhSK#UhWxRWm>+*5usymPXAaG9T(?YJU<9P7P;X+R$06M_UnwwskER-Eqyj@{c0r< zH%^E^E8Gh?hr-P#)z3=1pe6XuWq>fb8P^sMLpz{l!*5gYA#9$TGo-I{x~ zIPq=C_WC~Qv@!B{zd{ue0#563V zE4?JbpWZ1saEH1UpUd6aFhGA)3W=ID8$JsKT{1pn0q~N$ABf6CA>Ri}Z;uhrLjm&w z0xTno!)S(>`kt#JrPTZPtDw@Gk(IGSuheGzxX0noRMX(4igKu9n6mPfUT*&WA>>q#0~C|B>2)mw zAl(3#30Rx!dZV1nMr(awSQx#4KtQw5CAB{mmCAbQ^OJ2@Y^xudPNmvZoh3tGT;bB1 zs^VlY3lr1YK()wXk$}-ilP39lslJAKliGPIP-5wII4lHeZf~xCnFA6Tkt$R-!RI8J zL68Iu3-Gq1wyI9L(-8MuD=D{rmkQah4Z?5Str;G-q!COrxZW%jALNQ$l?@u$S#o+U zxKws%PhPV!G8WqR&oy{NDTE(PW#Q--?!9mN3qRJsf!soTN%EZFC>NJ){k#X_V7+GE z>WTteT4$?DGn7)OVeqSLG`Ma}eb4^RSetXDBg(92^*7UQw6+gk(=(@tck1%m9SD20~R!53do`;N^fqL|~xw!_n zFrlZquU1`^mf_6;#Z~%@Ke~GQd)K}z!wyd|F))6uGSPr-G3c(U5W2vlWqB~^xwl0% z_Ch8{ma2Fq?LS>cV;H11Yu{MTG=z0XDUW=&N2hAoL!a7l(qJQQZ55^9OYB$1j4!di z6}4(uBGb!MR}>Ht5&~%u*Q6i<@#jXz`{Gb`M#isjQ&ONlxiKS21xu0e8|XwU-ca(o zd>Lv&{8YQthYEWP{)>r6z%ISBRqjK=6V_Aj&#W{dD1JW`t%>@6WXo%IHI)PH8t5o1 zT_SblNdujOnn4Ac)j!lkpqs5FzqNFo-9{%lu%yQdCZ}GeD6ez=_qtazV%o2=b2Nfv zi>!DTu~pN25_oVK75mq;12S}&H1X+~nR-N?^~w1~$^Dg+(zF~L5b#FF@Gve55oQX1 z)mafnwMR#y*?L;Ha1SPXqhwe3&cmEHVH=Z@Ou-PCp z!k+qak=9K+-O7~9U5QHIr^ul~7dDl}oh7D6PHgoB60udg^ZfRR{f}U40G;)T5N&j5 zKTFgWh8B0QOaXA*E>*Nls{@zskRAg!~~YoLzLXR)4y-dCIWyD z1pIh&I*a*}Qo^{?wgd1GMtu`0Kn=QG+&?mWbu0Xoez$mHXlQBibk^u_i9s7wCVlp8 zop*+5tcSOsP}V;ITYtB4i%9r#*&MiHTlcQ1!kZ6t}%R z;oV`HEHr1C2Hs+GyxMhpBp|;4$)tJ~2)oCp?#n;cT^3=~$&>DXy)DfEyAW;2aPI&k zyAt37wQnAhO~nH&!|hBm4rt`~lvSk~xzM@9>V@sAFa zQAGIo(gtsM%S8|sgI*vcMk)`$;~sXn#b$VakJGXcdM+LnwmH&!XZZN0PC== zC;zhg8XJRrNE`a)_#_*Xyd%F`I6%QEF3E;OMtP0ea(kB%-Lv$~yDnLXP(nI_p##v* zuayfiEctFhk;0JN(7(GI8q{|n%CJo;%eQxjy>Hk{T zPe}qFIYBoGzaiBIGjb^L0{dDw9$;bWC55tc-^SesS7e?HaX>ShVs}H)G zo5vQnUVO!5B>La;{iQpfd-@}@Y`U*+tBeD(H27eDP7 zLxQaSPahQ~tQm-$j$$N|M;j7WlszIobG@b@hkUc{(KwddCVbeoHCLf3#MNLZS2FucKQKz&&D5=5G(q_!yqJKgSpMi75FM`bFs8o9Xn$8ljiF7?qoE z2j2V{&nmz2XpBu!-$-`vZb=QMo;y0ehrM}3sGcG~$gVi{eTHA6Vw{!0KQAmdVB0A` z$@-ny>3kx1haWT(FIIerFo$&+sIO(8UJt`j+B8wpDlhi@nW>i1iWI+1K!*QJQilJA zS@QN;n@3;)$z{bQRruP?zR}5Bgj%&gsqqwM_f1+{2=t+s$-jvRLY^1aU-0N;`ClzS z0Sv^DLrf_`e2Vn0-LxMozeC;NjSYg1liTDcOT^?cDGJZzaH0#ilb-e%aQ&>B$ebiD zju|l-_B+abM*lN<^ts%|@DjoM>7*z1^BFgub*9H9DxRkUaZ(d8sjkbJmJ;QMFW_-Y zZfEe9KZ|}Sn%MYwIh=jEKKTw^)!Cx??=f3m7QRJpnZLx|LIg?e5itv_!zl(fTQcBe zoY}>%KVK`VP3)6p`FHjjRWrih$wsdU-%|QKl$0EZc{*+3l*01tqmEA+ztepMQQL3! z7N)9S%VZyEa8&6BaKy%>$~z5i7UmG;7iwMZdgelzXLqpI=c0Z$TRWfp8BtZrmw~}7 zKj|0MTgb$lZ9Rf1=|1tTI~$Z7^vY%WxdPw${wHyU{(A7g`-BXasXc`VdK;@t&D7a9 zqn&JJxbG!o)1?(E>)N_Do?>L7GZuMQRMG7!8!C=DLAb>&Q&ulA1H}BFQ)AjDS33?G zHScFVLGxRR64)k7tap|sKG~X=v1UhIgYux9^{Gl*7-ZI zhJxA^rH|jG1oP8w?WmYCo-sp#+rgg&TwB+26Q(!G7#BS#>XhL7*N$}Mog6bYuOGJ4e`@_{dA_1z1*w0L9g;5 zrhFH+E;uKy#~`LvC*q_b#b^ES++^+)%t$NfW zij}>?X3D=eTBH?%?qhqMm9mE-m>4@r^F-cCt5nP5h&ik#1FGlltZ>$Sf7*gOrJHq> z#~lBYyjsTP`g|t(n#_bcb%A_jh*(QvqMB!uUjA;PXO@LieQz&wtQVpk^}4^(QSD+} zd>~QqwU$<@9WRC2;W-*%N_EJA#w9k@m`~HkyD2azDu3p9i+8d;a{lvAVPUz+0mIe{ zSG@*$C^d~=YkHQd>xJEFRemDzzq>UK3{|&LOtZa@acbRUMz(ZyhS1zap$;2oV|jNr zl*H1Lp}e44bQmn<%|}wBMrTN<{1Rs1u<>qr*(e|Vzdkgcu{VDJ&Z$tdQ<1aE328DI zOl;$MD-&V7QupL!eq|rh-?0+khEO9l#Ss$5Z-sR*tJh=w{dM|u2@3Atk2d=EeExp& zA*Tg@(Br>0H>HT~<8-O$`KCsa;vtJ+`K-EyXL{}a9?^e?D`Jf9L)6*2OQzX0^660C z{ohCOu^|I%b!$JeInBqlYT~9fX7#pE2EKY%|955jcMV5~N$JcdRaM&j@wF&T8SDUq z${9uQ6%>apUJxq2EUPgALrv|3yWML2eG0YD686%1r85RU3QWU)6j^wNRJPjuyZsv2 z0in)+T|-*J@F2*4KU#%C{y#n*3DV=gCoXp0hy0r=9&yP1zrU>EM1J-6)BlgV>~B*f zAP+-xgkr^u`qPJ%3vBZz#}+u_YEqEc&3$Iz9cq2`}d6 zwtW5ff)*JtoXtI!w%i$`U;_`^-L)y#KU6>Eoh4>X&Kiod9@)^nevxkN%&Oj~sg8fzXTW7P!Akpx=dn0; zfSBq3!`^!UHMza-qOr1Vu=iF(QDD2J2nYyLq(((RKzi>gAiXzf0c9&cl_EikRB2L^ zNC`cFq99#Lh_nDwlK`QGKp@Fo5r4n`y));|oO5Q*ojG^T430CD?_1wm?|R?odERGz zId4G=`(paGCjg%RwRc%2eBfHZ((fW*4{o*!ZT53b7WY0(;tvk3>F2rLUgFhwSYWEa;Qwc1OLALsckb* z`^TY8ypUUfw5VR@Zp+9*+*^CJ7$LIByc~OeN+;`g)VrHd`r0!N zhnkUq_A;M(zxf-O2LD+8;*!oXFFAhFUDGTjW#y{XtYU7NtHbBTd$W`b4=|c&GaK5* zW=`1IV{62IncFWKI5go3RVRk4(w`IS%%EmI1mPoWJ6)5w1{0XZ{y@DY5U|5H9KGHj zf7xkmqOSZRl%4Q(EfJo-G=7^$1!kC#If^|2sq}kQCGenmW7JvNd1)0!+c?3e5VVIF zNzDa45mw3ti5I|$Vo(wIi>s@3cLyua^s5-dX9*7mUO$nf;V#&fRCHd|v@G{5R6j|W zv2MM8?Q3f*f7IG$Tt~&aR#K8#^;hz*WU_+5#zR1qpv@uX#@4pvdSvh4UMN}0O6IBG z`i`GCW}GgYMVreD8fvh!MK(z$s3?)36)eoY2Ur8hns_=dhZNQnrc zzRM50qKos(J_To*>6Zkg2a!^sS*1gVG|)bwCAza`Wo8l&{hW-c5bWQI5S-^|L8dU_ z)Rv-!{*RJB#qZ1e<<|&@_dZY6gVx+Z2PB`MvC(#k{miT!l&J^qhaRrOGst;;`;zOV zc&%-7W%H}b-UyB9nn?lCOFQq>Prbt0Q~L&JVhxn#pbni7mHm023KOe1^x<7m*_Xf_ znVKI1MirJG#Iqx}2ycbNo#U6rZRbZ7Kv4PP-EdpGtEjR@!@verp3!HE4h+JF!TZ;) zT;*SVTGuIBQuT0IcUkfAJ!tU#^Tal2?($hN49rG8pHnu!eIy;Z3dO!WOp!L z8&14xDp2^yxvi%ay*(IEVP016;-1lnQMzE=cmMU@qtPW*WlvW*_U~-gQ(y<|1*e8o zsrNhvQa|PTBF3u59A#`?aJmI)!FjE(sliliOUg?6du<4;+nyGBRpmJ-t{lj`dOr4O z0iQ}veAAvTeb+xIj_ErmJ0a;;mStUa^Xw}VMfl*GjI?R@_{HB#LRV@v8BHou+@}=Y z+T~J{kse7-td~qdAd#VxciP0fJ5(y4QSTX{QpGzJ4BnaHcP!Cpt|ll)OVai8JPPpI zT6EXXUvELo&2fp`So~yGM}G~H&Qy7s5{9<2eiWMZE7!MBtj|IoUF^ZWUoNi5prWmQ z{v8A&*6w&|nf{sG^9ss!&P{>KJwv!j!5h1J7?+~w>?;M6^kq8v)!H=zL1@J!^Git~gJz4_ z$+niZd%|c6*(xXyxhkH*58{MAL**bP)ij&7C1j{mj~!$8?j?Ot+}t)o$>VM`_g4O( zX^@hSsh;7!`0iz=YeD`aV!901*8Wz9AO(8#j4!Uv-xq zWN|VsS>J7K9A$AGV-2x@lCS_hCNQtRXv9dJNckcvp`c+;Te>G-q@%c%+2nmg+{(=S z?z^+ynMJWfo@!zaI(6a5EkV_sOF@wZXN9RKEUbyRe1EX1QhO#D)3? z_hYtrl?3hhBuf!wEqgbE#!m0giJ&2ip>1ESUG4VTh1aPVlGiVc0bKP zEW6YInUw`@XK}hpb1vMdq_`Lx*)$s8h)DJnA!)XmwT8LOc;7N-7+pe&xv`I22` zbj#o^f3cMVTTi{?KVjjG#x_P)UPyGh;TdRc;iGY-duO#<58w-E#wNH$2Uv%i8|KYs zw>x6=b$)P7Y)W*rrfKQ&%lTh9#`2Q@^q_CKO~eAIAC@)2HShJfMf^N6w|JDq^ZMTf zKKMB5+Z)%cUH9N-l}KqfC6F}7mFx<#xXd+Kt+B)bBBjRM!?HRgdIjS*pw|2&v{(gH zPon=8Pc(Zps12DO09FtOiZeG9B%1H^PbdoKsuorFotXQeD18-~qC3xdnz28Wsk9)h z-GStMP+vQyy`4Y5R^jI46ZJ!=5uz*8e}}YLuf}~;cx4jJzTgZL2Cl=A@T$u zc4*sOv9Tet`!VrO=KS9?XQdmTvA4+d>~o)C@%^n)lbm8#1Wv0Bi_eruZ~q(oLsp*r z@0*-AoQt2us7E~v4KPA2_5w)sy7dxgQikDZ&eZ}(2ek3|{YhyFC;*DZO2Tv+)amJ` z+lK@+WlMG7LxoQHZ70cvdru89)DFwJdCr)UkR*dm*bu(vkca9%pclKW9 z(R870m&WQK>n`Q}uy?E+F)_6rxw`QyrfKs7kX0~5him7m9!}^2qVRI%Y|h>%sif=@ zI6v4*#cnBEmNg@}Nu)n1i}dT#L2c(S>svS-OQEa$`p}4N*<~HYl8ELFG{C5$(%Vb~xTFMW;C%O8 zB{@5bc~ecGkQ*}`9;6E|ER43bYg~U?trp*nowlz7%7d&9FZ2#e$m;4c!eSo**jM6V z{+jmLKLP7%1PXG2oyX7<)fC2+j#lbDY)-5E=!XD3%q}mlpiZ{*J)c9lbIVxu5&35{ z_nor~4X0Q{OeWn>`qATv0Mfv%q$C+jx=lqOe_^;C`4j7J;|;eSDJ*38Y&9-!{swT9#;1lJI!f<8(sR+C_Agl@;b*Ny&AoHE zK`OR>_2)Q@Fy*n}z>KJ#9tY=HxjlSKF5LIo;hipLY3Xgx=J|(G=Vcx}hSEtC2@^xp zOPZtb4|<2}^Q5JbDYE1nJmP{YD)}IF!t)Oi+LJ2ej4nUlG}x**ap-1ZN4{k1E^F3> zn?D%C-vCzX*tee)Ak>)(6vXPPspi0v@MX@B`I+;94K}=4f==0f5$x>ixSAp?dhfNC=_g-3TdLJ5!XmjWxc6<+Y~t@$teDjJNS`~>=z(V4 zpN8zNcf#y;b{>mvID6*d%Ex%L6yFr|tL_RbZ+t$oe0gS9gwoP4h;5SbY2IkP7~6w? z`LfHzsl3GKacYHc6SQ|sI2W;1z~g6IbE33)3}y7#3J8Out7Y(k<0H%L0Vg?30(D!- zzx^V?;$Iv!BHg;tqqX5EK;aWW2V{&7IUF}DJ>n6lytC90vOW^zSUFmyEUe=d{=t$x zdZ@|c!?34TLeC?w0n08^vc56SdqUQu>eKCmbJ#W`mgc|+uK9{<*LIT?lygyOn7H%` zD+sDglx_&^Ju(?CJ|FDJ(9@Iq2)L_O5!~t?-9`%hX12 zc<5<0Y-eb)u_7MSpEn&2hAFzsvjjrL_`c)^@oX#59Ow*C#A3ABda|T$!kzFz46W|{y%-!*N!kjgf(Jlq zxM_2SC9Im@s=Cemni+x7pp}8^<7?8v+h!>wSmopJR^lLsjySa@Po$~1r2ef~V`h?M zksV&CCZub-#}i?P!sl2dYAmijt0~sGpa)Vnajqu0PtqHU6TDx`heCph|ZpZQh6NS@21 zp|xo3Cl{{$x5(v{59qF15pk%trIlMhYb8$|dI(Y?bZ0lXRJ8%5s@4^K*aLvRT=M{S z3mmB%e{$>ju=p>Shf6pc`qtXl^*P+=`YagU>%Srh-5TP=tHa46zka25rD_|;@9HMj zDSE|&;D|cLd`zkQuM3<{2|sdfKjv?e{!6$0pAj~@?Z0nMUV++Ubmz!k%a#!7TRX)@ z2%G(B+&*wEWEX7`oq7ymv#&ivAY9k9;5Bw*!^mGnEAqrD`_28a{0|7GsT$g108I=5 zK%d(XWPDdY@}h51e%0-0_H1DHmlreHuMZG!8W(0_vSr%woK63=5T zTD=zYp5{u4*;E?@A1M$sVBa5u_k=e%gm{Y{viLDL(NUVa%2gG9(bsvV8Z%n!f#P?W zn708ui7*}dz8LgE%u;?mg|(S={h<$jcdS?tsKWOIdOH!#J%ozp7k25pbpGVgSUzQa z*#;X4%udouogdsYTiz7av=Mv!Ro4Yf+e;2c5zt&tRfm^9OlPddf9cs$GApr4VW;i1 z*0|hve=}OOrr+D~Fns$<5G`ycd070^{$M?O3l2;z73Vp;zU3zO{;Rc{L5=vd$W;+s z@k>`t!v_X+_5SXKI>{Kz8kdxn?4VbGP*{6~*VgyDb=Omaq%wAPvLiz7CwR8kcSrPI8>X%G}PmbU;KH;XI^p_7!%ga$@Cm&m*%5 zc`AR$;GimVBX1;4>XI!Ch98Yst<4Hwvj=)iUP^ZGJw>Ad%F2KYJpY0Q`!~SXhLq#! zI-!GcT5#CTOx^mHXI^3U?oDk5-3`NF9PfFnVySv`%Q#pqNo6}M3U5_k{gDO|9#&H6 zo>xSzWx-q$-2WrH2H3;&t%VI%ZN#R!Q3$wnPVPU8!d*1b?i6-Hw{H6+GrSz6c!hS% z+ISy2%;PDLVs+qW#u`dtv?=#5{$&2B{&y^_NS~ZcsT=-V({i0`M|v9(Ue@p^e()d3 zD9WB&wj06h!rb(OfteEv&Yhnh%P+Be=!~P9n`(_gn{!6wohM2S4!}I~4fOe|7f@Sz^3p zA@3E~rp3gKT`pRneFcM#%kBhOowcT`k-WW4_UfBvy&ZqYp2znEOL*Rl`O|P96W7cj zWQHu{$#5&r_|Sg@p-2h4kFHb);f~_Og-i7x_|(mJpY!Xdfh9EaP(36Q&S1K^ob+1vOHMW+Ldl44`C}0Xmkk(8Fs!#9t_=x??QSbA%X=FetixDGM@G2D;JtAN?MiKIpH0-`bx zy6*=+PEE7^l{}DQ;)(~uws?Y!1l!y+4ATHAob$dxe5SR)xCpwIf2h*#!mpaT9lCD& zR(INC4u~Zn#ZguY9UY1_YT{Uo1<0PnezDuO9!e%wPW^I|f{R@7-6lYVqHVn#O0X9) zu{0%I485w@jJF0vV|`pE0cH^^7%fJ?}(m;Bo7Vzpd|FffPSAzA_F)G5vZz)K{=g}-_EV+p>7D5#* zb!CZcPjf2-ar=uL=@t$8P?aD1i?+>UU&fmlbP%X`7J>jN_;S?rZe9~K*gJW&=2Y@@ z_kvQ|b^rBE_s3l6AH74wK!1LA=pbw#_((e5Cuvx}Zlb#X?o&So$oJKieHdJmDj%B@unQ`Xo085hs~ zS%k~peam2UI?*PZ8(H^?CciCNN%(`(mg+{rc}i#D4=YfbVWr%D9*Nl}_BSj}HihSa zF2F8lOHH1Aab#^sz)(6|(ZUr*p)ATX=*j&a=!W2kS0Mm%2+QnzfXYpIeJN1q)5jDZ-{CwIjq==oA$ zLsszGW#x?@8WkfRTI1n&wNmesTH+}qEYl0;+EgQLug-@l6gWoL6Z$AMz-ED)xrRe;qrZaUM~JF z;w7OMusnW?WAeJmg_=SwcsKei!n(l-8oD?<$fxEqQw#{dARiwpWFz0v!DV>%53nCE zdy!>nYxL{0p}N_LM+A)n;E~W)u|WyJe4}Zf?{qpymxPbq z2l7(rm%jZbHY+CMAld^!u0QkB3lqcg!bru>xek3ZSIZn(ek7IlCRo}`E|#av=Q7(B zvCG<4K`UNc3XGj>iOsL!gXrxfp;k17Mniq>9PDR}GmLR>w#w1Nl&5d7INjG8D;Kw)eUm{<_NTobzxA)eS@#M8m5 zMqF;67H_2>){<&cG8xKr!XJPQmgbk;?gFi;>d%MF_QroLzwEgcSar)K%}_Jw9Q;V* z=wsL3&3@uoWob!?+boHM$o=69K+CgdM@#BQuR`tkfL`uAQlpr`$5DsJ(EHSA55Jg# zCTbp9`=d z=P7|*g^O`ry|`2rG09&j-@Cw?#yOP?nuciM`Bj)VGiK7Y?#f@$ERn<;R7z zps~lw!2AUmxzSFsh=;b)JD^7E$fnav7{9Cu&K91hA-$QBrjPtGn=BIFjTmVVw$9rV zk3{zEZ5@ccAbC@wX(tJ^mWk61g`Li2%?BzZ!+WWlr>V{>F_Hj=c?AH;0UV%z54=9T zTM4SP65y+YG2;ce&s`|kUCGD??H(GbEBh|!yPoAyNiL<8-@@}SI z94K@~Kal?P={oYl*Ir@&-u_e-Ju%C7K<*@PFwM)rhNiFgk5Ta2%|rQP%xqWERZ3Q| z-o1RrdNY;OD$z9f60mcC>d{^o?rra{;_9KHzYpBEy;W=*?p3#;a7iA4mznf6yB(+&{am6o^4U&=3LOgV`%<9t_Vx+Z>Tb+gNe4V^1g@>XYVv5PdBYZOplv+w zupTpj#DX~$V|sji)s`M988g1&za?x*eFyF{z%FG*0gCKvc$yXUvAeWzQ`Ug z-tiNZ4vA~ql*}sLu=5HlmN4@y#hL0G2i}SRIEale!Zz>6E-@$cJ;5vUDFu+1#2cL~D|-Tf{=_2Zpbb16 zG-jAdHA89-fk|TFc-mHjg9pA`FQ}WlFr)EdX14@Tyz$mv3%0hm2w-5S54F~!!z)7` zgX*PA#s$D5S_F27X_=n!59DUoa8{<(70ond$2Ynr!_L4i`X!SJ6jpsx+u|?Th(YC= z$^5A^jgk|Rc&h!FoicLPMjMA*zJt?^7`3DJ^58q@()_F#@2uR?~M*6ksET5G6f6*p5w}>m-K!fkA0YsSjPz;lAFO4J;x3 z@!5|J$a^F%v(@z4DyRzeNr{_l0O^fEJvB~KMA4)G@Y++nKFFf7{?!X1Zg`Iw$7|9b#_S@d+XnKOYt!gXFP2v{U9cZ&?KiR;y~R06R|%VH?OnG8MhzeeGd}~@Y-bn z{nX<{MN5Z31R$^c+qfoPx5N`EGjE9)YaBBf{KcZ252sxGcis2)`0GDz#Q&MH{J+)( zaX51SX@7bqk+<(r`7cdY6S;gTjMeciJAH&gTN+I- zMm6gc$+dxgR&K5(8@nT+%Vf;N$|~q%27LCH~@lY@>qmnG!z?T;5lt zZ`|Ze!UA461pKe!V}hEXxuZ<~i~;^P%8=b;!@Cu*$?IK~?yCj5N+fm^v1rd&h1H9O z0aS^&bUgUXE7yToIq+iD&%?i9-n(1CZ=p31moM!xT5bkpIc^zgQ)u}8WLwy-8&6MX z!(wWtFdG`^?|&=&!-A%)TYY(npp42be-EO4n)b%?oyA$P_dQ;lBM>KQ-QV*o^*drt)XdRkg^g zzfMjlI1rwW*5VR%Zi$kQpnEN zK(1E{`2xR6w z?`PxbVSPTYU!M$(`sj@h&x=vd+t|0r-E?!S=80S=Eh|a*==|F3f}RO(NcOwar__&W z*B*WFpFc+eK_D>-1AaVm_7Q)PD3@LXFb%9YG+?&Wbp%&DAv2=GqXL!c9~DMo*%Qrg&*Zhd8mTX(0#Rct3klZG0Ra}6Ch z03;CkvC%PUj4(Gh_GE!K@s~NqPsOk1D|=c%*Kfc`AS{P62etFZ(a(!5Iak5*m(;)4 zPr}ZhIM`BJd_t$vRh16$u6TY0Jj02V{gPlU3ijgW#+oVcCjk$Z>!-yh$4{4%YQ4+RZ z6T__5uW=}lQ$Sp$-FWn&T7c(uYrnVih`uuDhH>^^G9IaW=KGz8`z%gdsBb8^xcb7; zJEcI9nH?feI;Ps0m#_@kzyk-GW`mC?)M@ zrvjWg0OwKS)xWfNg5CgadP$TW5-^`9aA=qE4T*WnwLGY=41APpQ6a9tvRX0fu8^FG zifgB679#le zOh_u?uJso97^jdAuBv~Mnfr@}leTyJH4~7Qfd6h9|Nmj--e0Ew0oos2>-yvM{Ro!e zbyRhRrg+hC_{BkxacWC`Sp%o)XW)=)px!ozEU^RXAnRgnld0C%RQu-lUndfr1;ynL zUL2_lPi%#1x(>36-dIC!zTkO46{r4U4vV)6oCOw(T1NlBEfNsRe`z0VY2)4XK$e4T zh63T&u&&m3T|~w7r#o2*XQ9TA$}bt$+p#+w!sT-EWa@vu<@bhpw=847W{KvoWgUBQ^6@5aHz**^tML! zGP}mBvi*xh4lh*1M^?R81AP%nPzU$jCZE<;213hRXG7&U=ebwD5^Jb8bPM|1XAqE`%HT zNglVHZ{)$faAO0DnMNpRVgpAd61+12yiTu9hS%mFy({M&bz`L(c#=QLa1jg#Tyj&WxHNieYFvKl@51AXY0vf-YBkN+^%4OL{H zf_2mW1Y>#HSd6G;QUfUOK*T5lr6Fz3YyS{Mr07iYfp`3@=Hx4=O`%+JnPE!Y@+L43 z`EP&Mbj-Y>@9X*=6nFy(NDOIGRWp>`=2~C7orkga>t^xh>t_;OojTbU%G?ZPH) zSM*J~T^Sgq%g2lt;1Ee+1Y_ZZ2~dac_a4?sm%c}is2G-iv&=1_bbBFG>r3*K*HTPqDE0iK4wI}*(boM%`7Il{(07DlBr2VDk9xU*^PWFIIA$6EpD+G6I}(Ptlys$&unr* zD?E)X!64L}+%5BVdBZAl+!W*blTtDZ)0^qn=X{TFz7(LZZteOr%8THA%(cY>p34{eA({ZllPHeWKb9UO)hCUid>^SYxu8VteXjY>D|* z0&P(G-u`-z;@mTJ3_ zsoQabaeb5HBnccfJcZHQPeI*T?-3BCkg&hXZLXZbj;19&^>&?nl2<=9-b33_j$hpK zlXYWWZ~t@9p}o@Ir>0^ghOwH7(hXBd7A>mG(>WA%IiN3m_C*qR3(3FC6263 zA+JChR~yAf4eV)N$`1ALcIa3!_@=$D{V&oQleS?J$@Mam zL%BeQWJauVd{yPrsE-e9$qHz85d!DE_+=yhA9vpl8DfTk&>D zB4Op5g;SZ^B3>h&O8Q!^LhnSUkdV8)h~S_1f7J_By?{f!o;jCU9voYp9Z?VSA?IBW zw6o7QDHJoXW9nmv9{marggp7cjWMGLA^Y~IhRwDM$o_@qy*!`z-8CLXN}HKoUVJ07 zr+$GUv^hD+c-yp**C3$T95ADe?H|saPLP}kXU>GU;|5Pn?Dq1+6CBN;RvgeK)QaRF zMnl=IcE=R6m!^$|ExT}^?;y;3O(vLsuot1)pdY@#uM$hKBY44fNd^Dee;D>pslU?R zh|{oFvrn5_Rdr^Knpfj=nsDashy?v6N6d8|u1JYF^W~<6_dC4%D!$J0YJ$Dx(4g{U zYihE^+k=f%!sX5dp_&`d`R6v&mKDAIWuN~NyffgB9FKc5TRy1J)|dlr0ixWthd)_D zZ!Gbh%Zk0U9|MrWd<)Wn@6c;yng0au&rnOFf}`2LwFBKFha>mDee?8xyfJD2Q4zj< z{x=qh6#UPjKk5G*`g`}{Kj#Q_{)0uFAO4?9{-3#o{Qo0}$~VJ)`nFp(%{7s3bHVVW zB>R{cNh!g--LQB7Q@e!@-UR!nyKx|LbJM9Hmi*?VoxIcSat9NCgcgz+gxfd-#c2&& zzWwVrX{m~e{$O<&Bvn(B@Ww#Ufy-Rm*kV*xkrNGf&$@i+ zDh=dQ^1oMVCYGI&lX-PrO>cSwcKY95fV!t9$f;=9u;qFC_nSsiom`0H0v+>>Q+{TI zDg#-MA-H7cqZldSKW{-GX@4lQPVQa{*9*U=KwDnlnx9Op?@eM46ZiT4qUjdBovRrU zL67%ZoXVN;gZ3T~x7!?&TO!`~GH5?)eJVD%V^z;oiXlDudFu={#k#b=v9RfqnZ~X) z4?)z$d8k@MX6|+=Oc52D4Ypb z7`qryWq2I|Y3YcI=wUsJ^2lI*5>9(PpKVf{f?tWi*Xt^f$pxx*M&P;&%*u-lgpFSs zf9dJ)Lm$szjp9j~^j0K0wT}DZsZY(^oMD3BkGL8=p9am3UMPhVJ%uh78-)w$h;VtH?%=sO6AsJ%7AEHATzxP-_-@_7xZYg&ryi zlue_Xti#liZ~J|o`+sb{%N4E`GOrC&dzaq;Ue+8+<%wY@tq}E{oHVK?aL}Rw;cx!E zmM-@{lPl%mevT%2a(0+y_4xEJ9(`KiG2*rwM9v7a9fnLf-2Qo4LWlBY9(tTZ)bFU> zFv56q;_Twr{?oL6M34Y`#L66(vCWUg^3#4YqrnDOELjWsxLZ(^c2Dhy?a#|bE#K}R zEI(i-^xV4c%;AF&Z^NHbbIax?UWC5RGth^6vlVVBa!S2{u`pKCwb6-vsGYp&-0@?j zM0ft{LMme+Z6RoM^)Tk1 zUixM(bi7orF*GU5&vUozRFL?Ym!=q1q_x*md`J>!5M@h`(kMR)Rhlo>udp0QGE{J! z-=!RaL>}J{_O=OX%MADV^RKEaM`FbBu$9_{iz`(BuomnoK81H2;nS%vgkC@Y+|rqZL@xr!YG+|#=P$cBr=ixz+YgfkH#@nW%zg4$gAwU`@POK z)TQ;ryk1$2Y=&tza(8mKih9?_v|WBs-8W13WH7^juPR_3TJxV!h`FRNi@!$T=O zb|-s278QDV4`EyWC3IvumH)g;TL@X~pR9=3C8|>COcc`hNb+ys>N)$X9}}{8cdbPcSRZBDI>m&FAu9Mw>YjoHC^#@X{ zS?HOmUa+9B*NXgk@F3(G+5D#u_&RaVDYN*MgpvkQ&IgMRS`i~K8G22wA31P|fqWv) z)JqW!h4v2^%;BiZSI5t9vtDnPvfShLY zp&;O_hP7S!Yg|zCCJLVK1Z4_XqG8%qUiUv^zuh&!L{m$di%tkoDZvEpJ9;Ub{NtLa?Db>`t~!4wz{+K zYzt{-Gru-qBlg~XsvYq8w5p2^J!p!|wHndZ9roq<#H#PUpt|pUiFk&s1xaPP!^ zp_YKH4o07zw(DH;cf=L?)2p@7?yZg+3e{S4wjk$xswQR!6H#mk`^x-A7z$!8$WE+N zP=awhJiOl$lsQ}ngHsM;JvnnGA1faa4JDX7cRtM%^rw4@5~$WDLG1@MgAPD$9J%&$ zGi?0Oo~%_Yr(ZDJa`qW3TB+Ze5Q)i3t?@D8z8HXB-{f*$Bc7-tab*wXL3f%N*<&jC zXi~CEm;6{Kn-#QstkE$_J$_}tgGrZwk(=+=%$##+%!&k?TSRn`NEuh`sE+nC6-aq; z7pxTL{(`;gs_}ZkXz~q?xAmj=Y8t|3Q&;Hoq4Pctj;;1t>?#a<<-M8s#nr?b5xKCd z4MoiVdqxxZQl_By4f+S$Lz&TjiVnKX=ox$b2}3XYuqFc021T~#<~Obs0_iAX&H zFi)!J;Ybi2sa(zUG*QY&=(dav_0t9=D8e_Y;;nB`T5AKWOf{Z)-?m*&dfr9a%MtVR zUWsZRovkEJK3u!O7N+y6ItwqjBbmit?6zijibB|346c#Qj*A|Mx>jcW z$BkZMi5P_T$HhXs*Y>m488XvsTnPQXQ3}cp} zm&YlcRTTa$<*+fkzOmZpZA!6o${m(s6TS#jn^i%q75eW?AAf>?P5)DYx5;OdtV=Jm zacIG{o;_Wuo16EoH?yCP&(k9h&rs>cUvB3-5_o4NLg0f@%_uwZO;(e8-O-efa@I&5 zXj2`m57VjDc%(kUdnmJVQWyd$l=`_4SAVn7uHmm{i&xG$6d&f-+b$_hbiGR6ITCv7 zF0PW6>(kfaaM7j~VFdT5?ez7p-O`K7+i_+h?C4d#ms@W=dpCLd+lJD_ZXSxrY+NzK zFijRnUicj;I>AkRK#WQ0t3X~b`NnzTNcgmUbEyUyBU7IR206)Cs@dF};TT$}GqZS6 zbCb%YZP;{|^DhXbvghZ<`*HC9vGKZ#P!ay6jfV0!NY?ch60qI)g(XI-yq_2CBsszYq*&a=_6qC;%95LHv9Us)9b<2Il)4y>j<>4R?QYlv_0vlI*Pbtsvij^038x#}Z0+gwrUjTh zxFm7$9wYiTd74i9$OXlJGmqmNFD1h~e+YkT&mPHBYzj}b-6YlsnVnF10h>RbrG?D% zFWEZd#zOe_SiHXFX*sdGv{WT@yFJ1LO!|f3>ifrbF8!)C)S(xvma9K-8OM z$a$J4@vU?1nb$oamBq<#cG-nB*SF&jkL~0{iNx}FZEug@c{|F%lR_$A{5&*#qHWX< zSxPHQ5BD^HNsgp({d zPpF|CVz*YdGmhtBMCOm?`>dBVVQLn0((Obw>$l7zti~illWDt0-?%IfET$HYHEjhe z2a-LmZ(S_7eJh$u9(a!6GDbCB7~_?%HqyhdvuPD5Qp(KmW&UFopJ7HmVRJi`b(55` zb+yvulY?NisizJ{f^|37m$iMYY67{U89&aD1Do5q>x)AkH)X+0F`(d)Rm>x~HKSBc}@tW07g!Ey`J-l~} zv@#Y>j#!M&4k?dYrtj3^ylu?bs4DNC-UVGwu4q z2dU_}^`K&>xt-2xF$0A`q?%hbX^D&RHfy7e?6NkhEv=-K>#u-tmo*CLNg~zUb3M77 zsT|UOiu_GJrBPp3#6p1D85H)RzCEjR?9gsRZceLW?o4dsXGWSbZT>;?f~G)bGwgeVILLky23{oE6m1kS|Yx$hanU;)QFaWArF}?)6wY77(1ig z+*m*f(zhNfC@M-zNtGCOn1qI=TQ-=w%zW`0YGLwDO2W`mKvqp*VBaoCqyWhy(K+3}fTS&!=t?Q0I% z-B43pISyXqa^H1-M*p%|{Q<>h+R-z8;^o(eJQUWAf!8jpVg5Ke5HVaU8hG!vhDHNG zqtBx?=IW7_mQqq}+4@EzNyb-`9S|nqXA1VpOjnEghq2=I#DYGi7r<+ zUs(mwMrf-#HH%BHvW(DPBSbU}6S4hVym?DbVB~)P1JQQLetPTg-@a}Sx`>7l>%RQK z6Fv(qMP@FWTTCQ+J#kMN7p5zKe0w_yQI{`b2g zk7c3s>+o`eE6$DqvpIcTq9+Ab792*CTnHA|l$jy`>2y-^&o}~!x%VdK`9Le7a_)D1-;F~Gn=Q>I6NMiA=TGF~CLcq!k%ezm4+5@!?}wc!>t2ru z?uFt_46lHlQWZpU+}x?m>jO3IP`OOQa`Sc7ip0Ahz(aTcJRc-&{`K==O5~$YS&^X; zj0Z`+LM6zN>c@U2b2dF$VH>sCE-l~*ln&kmSIv+%^$0IVhU1n;L%uW!Dg`cnpBXqQ z4w1sG?>w~}8P7snWOfnu5onQ3&n> zkeiV|%au@)@q3#E6{d3i)2m8|KjquD z)uH+JrPfUo%HfNT=XI6WqJoAn4;P3|5=B`NXz=!&$hZ4SMWSJ7ANSAACW_y9SKYiP zfezc)a5NNqVNc7hlc0qPCK}}EXGACH+M4&6T>%GX9NxGRzNy-UW{#KRxsxJIef>tM z8}W<%UgK9#H!L^Obl=<9boIrHEW0DL8ozIaEmM_lgBf|m{VEd7%T#{NdWMEVrkiTd(Nmc#!N>km)Mw?k^%uy&5Gf~jI-zM1-u^U{LwqN?&{K^o)nJR zg}wh6739*cBQZogFUSn!twA5@(){RELZYjtyM?pQBK zD(`=1DSA`+$)b-tx#rA1pU-nl&q6t-+x^}hpHyb0|Gq$VIDcrk?oO5@JP}TL`mICs zYORapu;rX@FuIz?8QV_Xy91w1QV*EQiq|8gb@eqiS^LyLOm`7XKXp3+2xMPN=;-EP ze)@c+?yu)(s=ECw-?((pCN|u?Q3Cy9ZLm)SH#HyH;Kp%xT-$hOp>mR?Z@`Y>rH&p?(F{w5V+NagN zbHYV85^c=G5BSw(#7G)Y?8r@u#wCL|ltF1<#H)*mrmNpilq}fI!J_v#Ad%-aj{F5K zrmL`%8~X`5lUh_EW-VX_&$uJ-jyZU@;#Qx0L~DupSB-^xpMCh-HPw=WuOrN_UP;#x zO%W|BEd{7~wI8KJN_)FCSVjCadHfUf@_9ucy{1krjQlwH#?Tdj*9L!PZg0a5F2uT; z6;`o#13qRT@Qxx1;oOrR?rak|z;oHLV&wVCa&VS4E|GNBo-bd*N`J9l>Mg?0j4o8oj<+MyKGFR!v{3 z_k?5Ti%2ZtV;ID>pweeftzX)a`}zdyo{`mML9AxhC0-=Nu*j@S3gUy)X)lP2)B5Y* zkjT;-SF_%CbP#bCiqv*n2UpJ&%SlRD0LoK}`rA>MWl<8t@{g43=dkl%eC|F z@kL;H?#svI;yoa>v&9yn*VE`kAEy}R$BAZUCxWbd7m7JOo(RAoluwk9?D3ovPiv69 z+|9GYyW0ftXB2uN{`qC}87eIs_3Or%|HwvQ#jMwgfRtsjd?g9}&izabMF$7lS279v z@m;K)l3B;c2O3rXmZ>Bu*LV=C=_UuS(Mn(GKA3sLQ2pK7v{i@GAvQvdMFynaqPQFd zCYS<~@X^bx!Y^NjR;R#zKTvKuyMKz5?yHru5^W}?IH_A(hX(ZjVwm==|ZImrpBA3jtS*VY(+5)j8B zwy{Je%^;huKN>WDI!mzA=yy;ZBG#yvAWy5$=&gqS##gJoe|u=#!xS;)gUDX66l8+p zSgA1^XA=B>3hMPzm1@=-@c~h;e|5Q1+i5hS#>(&=s+lt(1&G@&B57J895tf^B&9X1 z@nJnn`!C><68AiwDQ!}AcfT#p%`O?q&eJz8^>xyzM~m^plN9A=w+MyUd+A~o^wuXi zEw$gI>F0gFnOEUA^w=?|&cc#C zAVj_j{h;$}vU-qXR!0DlEH9Eyd6&!&Rb>RzTxphmCG&QDm&;jg{#^!4$c;~=uD~1_ zD&|-JN^S40?OJ@y$P<*oQ?i@6Y6ymImIohMF&7WRmx^UU^tk^I_mG7lGmi8p7vaSu zE>JPttq1slsNCT#RYvo#s(P^YlSVCr%rdfR23aT9*TF+ZpazYmPqU!>ZRR@XxIJ~& zFF#dpp2l>)p-stqcg`T&$;Rk!Yz<(R6X-GZaYPrWxBijSuu! zmSkkbwMXH{*&X8_axL`_ypjV@nTVAtC`>wO;-oD@iQ9=KeoaMx017Fc$Uo{xS$3R> z1(#O`Ar3L=>q^_2^f@&6XQlMhQ59wAyza)I>%J4R6hF?GK-UVQCT(f%!|2Jrr#f*>MH)X46loGXNgUA3Tfs4!6@RsBs7OQH_wK1^ z#s}tGF`9hc0=}jp#b{FWw{M(YKIXQ0^NVjqXYql&pNzbjODisi-?(X-(|kxziZjIp z^JZ2ASEbElE;v3w)zX;#FYl0tj+7X#*v8le z5t5*8Wmx3GaH_lO*N+ZtO}l&z25mzJob(@?N@Lh!FTr>Y!c(Pzw%dZ=ZhW$cQ@~+L1hRl?jq>2 zej~GqC8LSUX>ocWQjbH-5mlX@_1uUCM#85mnW$6{*L|{JYDt#40hOy^CxD(MnIyYI z7&8NMdgNM{zjE0}sEROJu3>KCw3hs@Yfl@r7`f_iJ8&Bd-um7&!8f57A81!j!rkN$ zDJLmgw$cr`{M`?k{T)5-A|XQa;ZxM&>v%uYH@2k(W<%k{_+kUnU2;p3gHh=!4UV$a zkEBZhD$>9cXu7pqNg*d+7N z6n&hEApu$Gj>92!V-n6Ap~VvR^9+vYptF_K(*pi&#OtZEmBnaPHJ|Vtrlh_*K){i@ z!XC>CLp5$Jkf?l;YgOC!I=wzR>}qxS4%~M>TmX}B zo@dBwTu-fPMx#Xf3opHogHZzn#A_yJTtM}SysC5V**g1eh;k3EJGhz^B5>4ZDhl6Y zHinmMk)15OCz8m{BUkxaP@9PF6L^-Y_A6mq7Y%A^ei5DoEsTwxUt1JZM$g0Ho7ChC zCu&KA>Cy=4alC#Gb{491>zI?7bi8bBXYFKM3TLdbV9R*KZG>qa604CIprcwzZAKk0 z5zBM1(IAvtd8CQlV}PIm!4Jg2{==xfU!q~u{R1=e^CvY;X)2p&ofz&2$E=8l3mko% z*Z}bz9IL=pZZlt~5e<@v)ScD*s)jQmF_lpGp+uK}@`L5xif2TQuW2d{_i=>B-|6A7 zjhGAyXx=4%F@~X=HvR|$t45cSWkk#RU|NoZW2$#XhLh+D(HBJs>f=cQ3}^$*MJ(7V zAE>M8R%#$|8OsyZ(>s2~lDdas2Kl5N`lk=j6o+$?(m9uO|5FXb(Sx_<3-f=sxKiO! zhpV{*G%Ph;>G}Zil@5_|-{ubr`}wkk58XirEvQ~uRNMZHnDuF_UW`{WO+~+J6n`pq zfA??Zk6*uA4v@O}v^&<1WUE@k=%dDB<{g{A{>+?&E^@a`}IMZIqHWx+cR!D?CLb z7Ft?@A8|c*@7{=94+ZnpGyh>x2ke6j3S+p$o5v{}LgW1^(`t76ER3xt>wGtNK-BA-pn!iYcz5K8h9=(fK?fC;ARq`% z|2#;wY=!IOzmT{72}|uSOF^+hLGeWLpBs7#K=F(qrvf$k(pG;@r}Z}2dw8O9m_vFN zi86AEnX%QAnu-+%u*_HgQo6Z;@_v(>Bw2{dZRoz#2$a5CuGLFfGT7Ac+oO=hP(OYj zyb$e_%&Rmnl!nZW;50b>710!QE!aKY)h$-U+Ju`T0&$`1E#jiGx57|>tFId`m;T&& zUp)%I@}l6YAbj=%Rq~u`wS?m6fUw{o#58qrbc?`-jSZJn43~dH3>V%~Xf8e1_H{f@ zG2DknsM5jf7wj2&g0*$Qnq?FkV$DAV53b`GZ|kVLtL0Ujy<{ zTa!RYMhrJ#i!rg-GA7;!0F`{RAFfD?arZ#+o=zr?XWaTMh5 zqbK)&P~Xm}_hK|DO%F`gyYj81Rf35rWHFn-X37`ON-obbUZt#s#Zc)>&5v#AAC`;) zmsW0d(Hy1@cK2BTeXd=-b&Af zYszgjoYRQ=3(-k`6(Emd0){1v7&@TBz%Fdc_A*_+%U)~)ll`y8$9WmuLkEkkWzTtx z#RsadUHPD<7_PlGUPza64fF5#M8ixDv2*Lcm$|%=@Egyy3Mmnb8WHmWonDNYBel{o zeB5!dD2G{lE}Kcq12Iq_lnC$xK|8;a3`~W|HMp4GCH>$6o}FCCoEaJFza%F~1IJHY zN)OyY$CpugOI*$+heY=!#*Dcv$szXf9_^V4+n1*D!!>$%z^qYd)ZJe{zpl*u>0R*w zVU$Yp&z&qyrIJaF3!iLmY3Go*0O`caP7Ie;{Xfh1Rt)R!+^fR}8E;@Yh^x$umTirU0z4GbU6JE8MKn(N?m`(a@ zJIBOun=|*fJHJ;Kc5I}^KSK}XnVy&Z72%Ddw->{BXBQCr;6YUxEvnyEewl)w zG(d0kkF-`Wj|p-Yx4cu8RbyQ$EM=rO&s7j8O;FI|jWLg?qzVvCQDljg?f5e!9Jd~q zjv^?s?3kIS0V|{K;XVRQ&Cj2Sfg2F4es#M=nbNsVNk4GVL+JE+#K*krx)^Thid1~y zQka-bIx1U5^*ie~ErIpxl!jg5!6BWm;{z8?_f*QYlqCla4)%OagJzM9_cZmT-Gyc2*rGD6VPC?f#$QR-u zuyix%JDqS0eGU={7-qm96%o)Oeo@r%P^I3wh(0LhYW9ojxxft%uS67+u=g&UCGF~# zjA>?%jZ_}%s1n$09O6f0Fvq`YN{$cg>=ds9l^LMFim;AV7P~|I!;%7RLxE!D8G&X& zK0D?zv^phD2w|#_68psgqxMaKPlIZms%N@%>f@&YrTx1nnH1(apL8b)d2X8qk)@J? z<3qB;Udgg{g`$0EX=aNU8;zK~A@4h)N{21yGltKB8&?HA3(_ zCp{vJgMmbUHP^tDvgM=8Wjwbpgk(o-bIm3~6(|g86Z>2-vWgqCpa9jsx*~}zVVZw~ zW8Fd0GJl-e(~N6hO7y@m3nX-ht@J?EZarVf@A4mg?X0+(z~j7XT%mYx-`1{$-BniJ z0Bh0G^k#U47F?BBS%>7c@L2c0f{J2}h?=OjkJq*)8X!!c{}dd&uqVv~-C=q|OUsPT zxV?05j8Z1Jf2GiQQKDZNBMDNME&f&Ksr8Lk>5K6rG>;fxN_O}ob!c_=Kmfz=JyOg0 z9A`kKA>q6|00fYbE}3|bAyiL%;NDsd96Gdai^%UNZ6kdc%bPBdP)Nc9;Dnf`gK7L~ zbLarvf-!S`g!^=^jeF2GlZ1OtU$x>t;DzCERojhuh4V{bi^+e4nT1EGq|1PkI?0VO z^AC8qEv(`mtdc|p0>$erI6jMs4-_yWpiFsdpi7`LMp~XNn9d3+6DrkFZ`jROZ-*r| z>6;wqlGpc>*vB?H1eC#SqWC~FJpm1+qE&6R8{Xk~5x0Xc>2gU6OzeJTl$W&SKSxtIiRM9Q6phcQB0h+qY+V4wMdMXhqutI)xotApYx0T@7{-&(dJo zjJY#d6QESd{97nK@YyWsV1|-|nHY+Chrny;x_kjD`FS4m^L&nt;A>B##d&B&3h_0X z}yjG-x_o3-J6&(LgMjH=`6}J}%1`dG7 zkNweGFt*vqI3EM9VelpE@Z;tW;7%tLBIjJW@$j$1_SmTVcPzd-sd1?mc8r0O zkCCc?;Cp);)No*KAZn4K@D1kPn)SfD+wIQRb%*1_f|I+MK76{z4F%H&fpQ-*feFjA zc9r)r2WE?nOqWsEVSI80!{R8r+M$~rSG2ONrxCQ${IQ9{*}B0Yen|;_Y9X_UOfBEi z@!zRW2sf@ZB^e$gvzo<1lEKkJ{D@;YOHLxyl3g%4$n|vfGH#OpqX%6Oe$h-?;;jk1puSSpidyQti{YOL3y=QZz zDysaJAQh>@NnG~Da2a7zv@Aa)fR6G%a8hWXYwZ{$hMRM{PEQOs%|f}=l@-?-w4Bes z<3~p($u4YuTDY{1&)}Dm*RQn{!L!9^#pyH+Wl4RoNCmit0RdHW8uitK)2<9b^Un~n z!q#lscv?sJ5!!f2fL4hKKzg*-z?*Vo{H+1Sn*vz#{wzVOM0+~?q z$i@KM^GvlOH_8HOkO)&2-1&w{2a#(8Pg!nZR!?u@NLKx`N?ekO5G=i&p4!8-tt7Y+W02Y2S6aHIX3 z#Op((DFrAea^agy&#ijb9o(iogg69M2`D+^hE0@Pfy_L%MX)Lq0*(j{WJ*lm0ZRdJ ze*dLtmjejPsEIlA)5}H+A&SF>*wR%3o4?-OwlIOO{p-3go>#sMI-7)K$kI!eleM*jh$W$z%xm`QKnT$q?e0vd8S=Odyfhdq=?QvF~0 zjCeYr!l7Lr{5bPdaG)t;CWU|5{>%HSA!Hi_s~!Es(Vh`Qn6s*Y(Z!o-Hfp_X%F(O! zy%y?MjP^uY8LDaHh*^`h0EJ?hFb$yht8 zVKHqrBH3svROwn6DCpI9;6#m6SzkK-rs9)hZ=sRhy* zk9kcX)~{1VPM87p#CcW>P*=fFdLSq)Cc^klJ9DD2?Z#~T>SZsY2*;$3f>KBGBO_E) zBpo=$MhJNd#Rbl#4`CEH7tWW8-Z^{oU)h zOM9LzKi>IraNn*oUmA?GMlQ4hBwpAx8N!s;;WX#KF1clIu~DzYe=!0$ZlJEJkq>>X zNV&OLmKG?^0^-dz1_U~jq=R~EEjN$f#3Vq-4tFw6KloqND6dK-mX!%d(Vr%5YzTfC z<7hnm^{G>9M3G8+ym^&Gmu0nE+h|q?)Ez|!Xid*Zu01fDz@;N>`zUU>NY~2+tbNJ+ zw+I&bL0u09CORM30c@*OPg3@L7QD6)F!!6D=OcdemmzFpNMuo&lsu~T*k3EL`6yhk z9yPU!?z#=rteh0~M#^i6XTEAKvuF;9lCYM_(3{fBSsVDYHfY+5=#i5Ii%Bc)4St>Q z_#FmxWRCpN$>pa~AnCWVe3Fs`R_2ENU={CRo%k{4ND7+`fn5tF3~JZD8HFU~fnMx& z@oT-YosD_#1M22^F85$l0q>8t8cFQ4xm zN}H2Q*_|kTgeU6x24e;Sx!zha_NA8)rcqYAiQ$WBn0k<>7OBaEhZDH`4=n0Zj23EY z<3Yi+3KP%lIQ&5bsv#C3vfJ#5(U8`nyNs>FPFr8+D=B%fSXg77#);`mss8&z=5UpQ z*tVlCKcCBkZ1Jf^Z3j-zG%L8{-^u~a1__kiKRa@adCxE({IAB<$DZ=XKw ztX8=an}juCpo+p`;2{2~u5;}5G~+v}>}hMtYM0@&YlBT8#!Xueh92K_hy1|CiR#7g zh9VvgZ)B7sz*5W_H``ETiC!^3EWviG*ivt1?R8LH<;sVZ)QP(PWMz@+Q?`W&3RbLjnNqF@4Lz`=Nr5>;=rh##c^5j+c&AP_14O67p0{E zMUSRWXS0(!HY-9)!OtAn`8*yJ7)VgU@D)mGX%q@H9Ue!zm?)LhnVjsU9gFAsUCPry zk^P%M(L4^|=P~MdDG7*(`PSIGw5RxYpCKkbm_VvUu=zZbspScHn~72U^b|msk)JLV zwD8UzXBM;K<^d3Na;PU^Q9X33R`14LjIU8b!d=)-IKUP?Ci~$%#{Zx{B;$ZXyCA;5 znu+}Iqc&bKfaPHRB9isL*!Vy-8Mb)r8^l|fuy2@?GQ7+_ZG6#TTtbogXT(pl?Bv;= z$hV0fltUiBb-qz*4hP3WzMnDyT2#XQr@eq)rYHU#QV!u&*_^eaKP-~#*|OH~+R}Jy zkJ$%rDl9!POwpRCOA%`_rXSkZ!7JErb+#|J-FR$r|A(w*d|((yr|EkW?&PDCTexlI z+(P2DaxOZ$f=0@%g?QZlw2P|}h@)$FDMXokIqmZ#Fr|ue1*wlLs+aac7r9mC5hlLC z8<=&md0A4{&fatih~{4@jj?Arl$(60NGEwb1E?QUt)vW?Ln$!O)h;06zC+Ok!`JX_ zC@Vp4$b?cu^W_DI*Ymi(Jr(Gihy#vE7!}t@qNRz41QMFkfCLWC;G-5^tZ`oO?) z4)J%I7x+pIhiHR8E=hfGJgllD8Em)14xYj}u&8>QHn1)Z`4C-bq`OI% zjfWOHwu@1X{Dy4C;)NW&KcEob5v$QltxSpiB!(W-ckXX@_&6(@gnLHJNLdmK0k{o)m>W!w zz@r0x3tB|v*vz@z+fH&*M}$D})BxtjvAS){3_j&D{PY+f1PbUMw|}rKAXq;-b}m;b zAYBOp*Zr2GxxzK?C%fIUS@d)+VK$NP#G>gys_)v^ZNsS=3Ob5{fV(8WOAlPB^;g~z z!*HQ0A@gIlTQa1J&=q-kk&TGRA)$*1xB)IDgsfzmwEVfh#03pv;1NiGIscRROzadO zjA_~hK%E3_DXRtQhb&EVX2Y&G^ zlBE^&UC1`x2hVO8@WRd8k%#!3vj+#s<`ZX4^W(*uG(pdK1kwOy5CWN){y(h6bpJtx z*yK-Pr%dCdgFt97*+B!KIXhRSWc~bj_QeUM@z?fG`LuuntOk%oN~G{$lbQ+gNwOK;qtYEj*}{-~xh2)V_N50#i}}`VPc+MUZW`rDISLzAZx@#NY9(r=yDD-kelwV)Kn#G*7>qCl zEF{PIC61juz!~K00pdfh4_+r+MVH{4CuV5%;iY+L!_p^I1LmZD>Dl|WACcO4dX~di zapoR$Rn!zab_i^kW&yc9#COndDq0s$5pcTovK<@$ZTDSf(ytJ>3Fj4X$&~FgP;NaK zn9GeiLbi|j$mm&;g?uzc+H`@b0|rYS?76PLc<>~F)%h6Be{=={qP1t+cpHkxdTT2N zcJ2J}?_oxtOSpQfxJ>WytdyAKD~S!_YwFfS*xBo z6EqIQvq|X~@)>f?7=3hnNU;+DV_3`TI$B@oI=-mXASShR+jn0^hyExiN3Zt0v<3`Vhp~GU3%rmHvA+ zPP!{-gnr(n6ch*()zOjsHg{aooQXul8ga>k#O$)>k5n zHCSb1o)5@Xx``=Q##oC{QF$YK^tgm(R}Gz^Ne`hGi7iK^(}z9U22_3zcL=_|y%2xD z7~Ko!j=+eayIfP-fhPoZ|5IOB%snh#=j51!3rF$aq)$OaR1}eA zm2Q0*%xs7lS8P0XrJgn305sCQm+W2C9vcSuP;XIsjn-sB2{<-Ft6Hzz824#j>RNC> zkp^q=iF}?KZ|CcbJT;cQk+oIee66ofI>AT@+lBE_oO+i&<1gEVfUH250$GxqEM zVh8^oW}hKerwy+-yHTaLe0RpX~w`%v)U#w zjQp-jnjZgXp{if}(}!Q@vp~O@rSa|oDMb9)dgO5pWSTQH{@5hCpBmkBK*UBYxHTQ{ zW?uPg@vG2i%ld&ojBE_DSrGfR`D+g~F9)ZNxnJVo>?*&&J^{z&5qNEdvGU*#soqU- ztAV*|P)NJJ-LQ}Xh6+^~cH?BlHUhjTBiQrG+(dldJp;mW=vmudWE#|JkgdUGA*O8+ zvX-Fi^}`X;;Sh}Xr6uH!vw21TJp5y^Hms!U?06^{lESwTY8xg@2g}U-L(Ojn&TpXx zj~68g1g$%!3J5?r)HOEhqd$VnZMwCscD{)D9P6`dm#VR-@9!vaa&p>DH`G&y1g}?B zEFQkeNM}`RKYsWc)L^vimCHTS|L=>cUJW#;)^WacVuG*%y44Uyj?$hS&Ks?^eO2Q; zJ-i+_c0cF^G0I!+(Hvir@_9hT3o^#PwE)i1mFLgDFz3{GOtL!8*2-5@ zP{b!B_KjM zc>^?8dB8ye%DcECeCE2YaNt&vjhifLUChAJXES<+(y#VfyPYNikuKE}7&{2MsS|15 zQH+}UW}6a~@o_XyUiMr{^br~50+&D9l<`h07Ic~?p6Rk)>j&jM>!Dd0R5 zeQ5gSA~qLAQ(LIKv#oVJ-{c+I;kKss9Snk5!Z;~ifF_;)eod{ztZfB)KVHajvQ}Nc zc5Ad}Y=i$#{0iCUUij{u_hn4A=ll!9#<#PkIcIl5H2fq?iLDpDD47iDx-Y9I9NhKb#7f1Fcl6Jzt8S z$DF7iP_S1dU-Yh?Mbc28kKspNp51KhjTR1gF>u$f@5yQ6mu`#Ux<&ud0EshJ_5Fe5 zw8o?L4pV1Vk+bSqSCFj`kFatA4&hB=+OZ91-^>%(IIrUYYELzum27EY;fw8bccD5I zRa3{2|6RaVW8O@|z|Ae}?bc+*nvSeqoxglO#OH`s!}nrLVFTOxpwKA2lHRWlP3jt> zwzT4IznToPUuPC;6n$Ou`y`j4cQHL9rJE3+7PU}XntqSC2FfF^U2$~ z1xeYZO*=Y`MzO){j5t#P>1}^^SLGl-vf6Bnb|g^HQ9D-Jlzb^e*j?!h^Rwt>Ug}6} z1U9@SsMA4!!V<3P@|`hAqgl@~WqiCr^O=~$3CjVWGH@eI%3iote=;ar7IV())w=5_ z6K$Am_GY!?$jeA_uDax(VG$8p78cd{11FkuMn<;@VX*v2nnKyda`t(5uio!LGSx0a zl?oe;AO{uPd~S#SDQ{<2{C0b)V4yQjK=TdKRs6J5{5WoDE%rfROfS=&urvfa4ig0||w5#dh!trj)qrBBLjfi;aSULN+EPC1riIsEDowW3aHL zue*uBw3=Qvo0WRkJEkm?PYXKDC9E|~DxwVSE%iIs5L5%Eie0+`P)wRC`Hq*nCs*!^ zYZ)pTMhQDq3UYGDmdl%t3ATMVchEAW`j%p}x-lfNG1aDvT7G+DUMN3@&vVdYQW(LY zeo5qCAHTohpvo0?P^1%*vF3J0uG_EY!Zj;i)+=<)$OqjJ&sw=j{4?%C{cJoMYiWwm zJJmXLG(M`Kyb+tf?f}h)X_j5&_V$@gzwv;^hi9a58tL>+>~g%Tpd47w)@ZK9ysqPE z1z(P;e%)53P>bTmCTXBkSsB#y=ZLNo-LA#F!bX3(Xoh2w?%w|X==n~>aGkMVVfh(k zOT=pStdCk~mCR54=v-kWNc~QT!Vaecvf4CX^@}ICccXheI&cD4oS)13+EaO2i5r@ZrOUc2m{wv`Skp zUwny7sY{XxF>LXbx=H+y$Ju`B+q;)9i<2Z$O}TUJ0GzTLKUx+=W8Kt#ye#FI_%>@9 z^%%^8#=IkJNs}*y>-_ALOtm|cgxvUXi~sD=P4-Ilg13s1mz!czucd8Amba!VAq7Ma zgi5N}#ebXfCRMM(5o7_VWO1)!$iW$XXf#`gN%=(G4n6VI^MK|-y7DxGEe@dKEsE_KfH(oo*e5N;+$Mu z%CPBL%Qr;wYJmuZR+$kPm5yuSy6ijC0fRFuI5^+tzhD7jAOp+UC{?&+0OAR&dVZW? z7xH#dy6tSyh_yy`d*51-qkdia8yu&pCd26C0G*g>|3$6v#biO}T)oHqhg;w1`ZkcI z^A1X#4s(@lW*C9el#~J{>yEy@qxM9z4m@^}z$mpMGjGjeaK;??yr2_<&C0glRE2r8 zfb(S5*Mo|rBjY;%DlPbIVeMKDHJ3p{T>UROvQ2SMe+C@j2Zvjpv8DdIj3NtGye^;& zCdZi;mkrOK+sMC(w9|D87tW}^i#T2EGJD0<%^`bX|QvBsOe5}6<} zi?XsZJ7jehaO;i9@9^~>9nq?H`R7j=E9+VH+pQ^B&4%F0s(nZB%uMC% zcE&=`qk72Y)T|=zO`Oa}kFP*Mch5%zzylu3zl0m}ap}G-()#PhkJl=?yW^?E2sq9$ zX;V<-<ja16FZjK4oEEY=gXb_XF|7qB8jn*LM-CkF&u<#^?tcG*gPG1@hK(0KAtvsH&-S03 z3Z`^_oAn`DU9H$8wGSrLXJU;``}hm&Ky5s-YP{V2vPj-b)+1qZ0Nh!4l{=OxvW=H9 zc!f*n&qOT1U>X0+EgKWs*a&^QV^QG*8j*Z({)0W5hf% z-wxHO8lQ~5#i$ISBEXFGN*WJfouH=J4Hvd_9GQ2~^ZE2&u=h6kUxu`x-)8r@C*H0t z*?DH&Z+TiXlbdUyn9lobdLN)q_JqsJ%gR~Ia2}h8H?PRFpIfoc5DtI8im|)DaVCVO z*1~6Iou9_z>`*tf6Awr7#XoLrr7S+A-4S*}r-Vk(KWq-VVxA^UV{T;4M-AB>RK4r% z8izKj=rqHKKKxNhHszwRes$Fja}2$g)75rN+T-sJ7B>f~{Oe9KyZ1=H zKp}spu@qbHn@v)OD4Jnys%GQtGFpn7XFW|}r*-4rT&G!m0Aenw|F|u8jrw3Hk$fqi zDsrmA9iC2gQT$}Z#K$ky!i4Cb&BI@?{TSzoi228s3);3jI%IUMyiMuHP zqF1_|V#d7+bM{vW`)=~AKNadUs7~(JX2H8Qdn`VtJ+CmDRK>%aqyWA}+y$gz;A{qa zjJNWR|89LqB&8zBJ)GZhUN;|s>i)~u@Ad|QuBk{{Izr2Be{0BKL%?CE;jaGQ9qre7 za@W~d*W&<2;iWa^E&MR&vr)s|>pXS1%=cTgwzcxrnNcfj?xKLwtq?+6B zctz-ZUL> z?W(FY3t42gPzg>paRS2HbUmEk`Ma4n6#8>)O!L#H1iusDPt*ct)h%eVh@J!v$2)KBbNZJQ~_MRd_(O=WA(jz-bAIRiX+WZhhmG5xAI$<+QXPlSs{|r4dg55} ztQ4uAHu>4dKQ+ZXEwfUj>1k_gGpp7+uu7W8c*>73-Tk|~UR*8O0<~8* zDaQ9e7Ir~(epNKAskcXwkbppo@e(a!k_Z6S z^9&|P^Dl_-B>U^@lkZn-6{}Y$2jgC-zL)oVn7hsx1sXY~ui9=&t%e8uY zu89ET80;6(t1EN@eseLqaxUzD{u4W~zqy$CUY%0qqSg^kp`JEXhq$%5wG|KF132^I ze}bmk!j>LOlOgQt-G855L3ZqC|KFC0|8Iov&#!_)BSynCH}*yE;GC9ZN)XfowXBz?bSd;8Q|b@gh01BejldiT@)0 z*HkX+q5^*m^v%HY%ZV*APR>&*A{?Rnfc*xJ*xe&9c5X>20n82d=09VqNNLB(2K8uE zfKC9Han8GIXYw(eMhzt+1p~z|bP5@|P2P;1(B<2m_CVZRT~%Yj0f+nHLE!F5bJTN| z8$teGg$%J8`Hx6^v0X_jKe4wFzJ7jjX52P^a;fxM+)7ED7z&}0tkg$;Of-uOUdUx+ zkC)niBj?i1`uOwdb#k`+7X#v1Fi><7ClBripo)Pwo-JrZm;XD4(e1(f1f0nR@Xe{_ z<3KBnh%&86H8S&^@H!KNq-cc0YfCu77ILJ6TcNnyWJQmkL{55EnbNnK#nf z!1Tlmb)-g*Ek+-yf}vz6@-pEG_bZ!!Ge}|V5ARFy{Mp;9PJFbP&8GcFqsodOToYj= zN4It|^)t)v>l`tI?ZocT`b1VF)MMkREI7>aE0a<>wzEkJO#F8U#|po2_4M|R%%p>g z{>FU;lUK7LVE@zo+UR+flkm3s17)f<>8O^ZB>GsH^rszazJGru!|!x)->}jD70*gPpwKEya%6}5;RCGI zPNj`uy~*JeT=wmSo*uiuRl!q++L}4ei%SoLvj;53qiX;3mWgkz(E)W+F-^3#iV{@= z5R77)fV_k7WFOThrC&-UbIy5P|q{bbGf$N(`rXBXG+G~LwwK}It=YJTlRXUgHI`3a{icn5OATpQ~(@p0jnD-(d zpx?iIWxuwDd&%#!{Q7{a?5I7SbTXbo3sH8oEow98IkN0{n}}#QpF{N5#?hu|W_kHE zy$lxTpB-=HAjp4>`T+SS4%0WB)z(##F8Zj|xFd{g?7dWPWrXw02}^^ouu_$Oa%R#q zrl*g2ROJ)Oe(gbSoSfUX#$NIrkF%UD70`KzAH84Z&~d0306o?&{k)$1%s!?8Qh(ZO zrgR=BcBiPwO_nY##_&=`CIgvE7cjh%(UQ{Do|s45oW(h#dVhV|KW59;4izgHY^d30Ei1V=I)8b2-YtV#d7r_*4EFLs zk}ZvE3buA?|Nq`1*60bu%>?>Vj8TPjn&_-TiRhVb?8wR|v15m~12jH6UpA*;fN+!= zG=De4Xu`%}>Y)Mx(antJbgr+Pr=k6G8v*tXvjMe#y2DpCIWQjt@PA)irBuD3v#hBa zdpLvb;%J>3@M}xmP{JV%5 zZh)j%aOYaF&V%Fy#Ju5hikn5grR74_e)R>+*&xSw%tjyp3veey&OwK2w%I0Zu*mEk!3T4pRF_1g2OG@-IFVPtnz#){)1 zyz8TeUGecsw9~~(X~}L7h$hM|Ub9Z=BN3gj)%dAXcdvM?p>OT_$U^{R)(+RIuu4(P zeF_RVt>|&FdRHw`0P;=G-a&i%MsN2)C$;_-Rxo+HHCF&&WK1r|`q(Mt+s@;x<9_Y` zq0(m|D_scwNvu1#j*30AKccgn&Z;{dnBMWTD}x1?(crmoVo!tt5q?%U`C3OxnMQvJ6tbrad9IDm?Zw`e>N53%f2OQ zcW!7Fsqu`|4|Jp^e*au77tdZG0-%NL7iQ(8MEOJ_0nDtZpPt^DTHUy}w@(tLOQK*; z*WB6Qs8Z7i9@@|ii0R*Mbubf!y~0k!(;-oubtjC7PAqGGskhkX?9ebTdafz9uCC5$ z=FLyu5Wu_bmLmxCs@~>+Ik)Vhk$@o|XGA`TH4n6J2~e9f>W8-k_FX)+UAi+L7;o$? zen~#!-%&|FrLczh+Mj$G3LHZ-Pwl$j$#+cA3mrqL43SvJ zONp7rP>^#wwh* zN6K5dDFzvLwajx!QX}u3o0}7EF+M0BmSNBBI;f;g z@sk-;e&}mSqS1tD^$%T*^4b9tz5bRaVAeobv+Zk8gqF)#ml`5;`Rz4;!5JZEhm!`V z|71pe-j1iyVUQM{n8`3^Vd2Tg#|oXEI1LSR54aAL9be(}2ZQAktwsE|2**O{0!mj` zM}XMdd6A9)++}^*H5Rgds0(I`G@1ve)Xu_xG1?vtkb*$5tnyVqLv!|AWbck@Y+%~b z(PDR>5fcM_#{%UVnc8U`+3YG@{2Wa82O|lF=KO9#)_TbJou}Ra3RkRMS6k~aomW_> zej8?e`p1iS;Ma~xWyfsuXORzeTA{nhWM0Pv@k_H*|Ma6~;i!lmH_tkAd=oHhce<0v zWjw@2KQ}!1Sa}08=c@^r+S&Z!WLQ}3g%t9cnDE*wQMYx0tx~a5CIXDrc^5!klv)L^b%02bSzjvKthu)y%Q;+Lu`P6 zbV7tsM0!F%N)ibr_nWNW-e=!^_j&ex&OOil=j2g|Ntl^)%rU<5zVG*qz>;VC_=`6E zeJSwL)XaMLJgmoPg0uL>*&;e1^f;^TJt zy7!X_Jbm!r;pSFV{>bg*;RF6Ma@F>%!g(c=#p^1m4U~s5?Q(21_N`liB$+t|g?2$A z(SetNlg;d^IgW(N7`^m|Z$+ZTa|ZAox;Jl1EweWRz|sZ-M(4liWVrg_!xi8Zb+0oI zrO3qyo2kMe%N{rYB=xVCH)A?~;_38Odp}iHaFf-ADI-&Q)Y0pqfHH3N1&B7p2bfWZ z1GP*l=XI8C!URz2iPBxMMRGXXg>6!QxXs0#1nt<{wz%S(7}eM_$Kj6N$YMRtUCFbt z?M$w`n0^1Qi=g1C(Gejr_34hrH*xHIvZwe{KavLpO`T^mu4*L9T1vzYl^bb%Bc%Wt zFgx%l!g0=a!LjMa@50QCc>IMwUA zskb(J_{Fm_R69-oL0#uCvc5j#!H`E}L9mB&9==ryQB%!AVF|+e@Q_Gmo%a5~7Bg&cYE8I_mA^OIF z4@_%hPPKE}H|BeATBN!I6{o_4?G8rOdm=N05F!(f$p&q7AWl2ylUJw=CGt>p zVsCQz(M!b>6N$RL5L?|C^;f!qXe%H{|B#-AD0qlx$Es^$lbUi?>=SCe7UH_?^b)#f zepby1V*~1C2P;{xJ5oZm!Ed2-%1-UWc`an-kQOH2peVCZ&G7VjVHCJKL~kK@ zYGfqGs^v$G-(<)MO=VFC>;N8vA}Hy^#erTMBtPTapm`M+D+y8UFT@`@awH2Q_~a}9 zUoGF1jvg1<=rjK3HvP6e)S)Lj_3OeChcWup9v-M}!Lix!f*v87Yj+ZhwPL;q+@OVzBDY zGx0#Py2xfntI>m{unTG^E_`|*>1p7Xj*TcSUJ~)l@Jm>_bwNlqx;J3r_Un%OaPKH zSbTr4I$Tto{2_Adp3e5tV@VAFxNT4cJm!Zw?$sCBJ}Fx3;Py=w@^b4OX-ScNms2nM ztg_qJQjuulvcGe&#Ha;bPZ~F8nOIUb%QzxVrj)q_n7qA&7dt2J>+S8(l5X*}tz+aF zTT-H0^*bTg)h2$n)s}Wb<_omaq}O4#`=dS&zVVPpiZW_Eol{5C-e1{Vphom%K6taL zU|cExZCcoWZSuK@MT1jA-sO z%?oZpM(>69J}gabQh$@aZMy{q!4dLd)iQrXc}Gcii;^?G~aM8=$KQ;OsL3IC{GH?BkBuW-lA81>#vmdOH{S+8D9puX3y1)-`;OLJ`e;_lxd(RrJcTEM(TCJoLJjQ7e3uNl|;{~rEVQm z_1_OVQ3edU{f~(wU_>!3Ryv>FX@zmGrq|WU3!*mocnV=9=)-Hv=RZA*FaV&m59Cr| z8xD^V_*xKwM#-50A$J;CYU6@$$`7nL1m*fGO_WcEkZA07S%@Wo8)PEmIH-68QL5(; zuYCGEYh2=x3`oq(qg|~tloCq>z9~Cfx(pTv(W!(+9&0l!B=p&rtt_uB8bnmzUra{= zlTRw)Eu*8F+f(Lp=FQ~ZRPyZ20~MQ|m_;=*>Ik=G9`N8b;5|;}YUX|TqKBMkjPosQ zI(uV8A1sOe$bd~7XJ)rWOy!SSM{_MsW#3XMCw)JDlGdvBMAB>1!noGC?3ujG<$C^B z`NyYgrIR4Mni9XA{`s?jLeIhx59;5=po{zZ<5%JQpQxILi>1o1d{jV?5aV)yUjZUr zJ}Rj#yo7f~+29C$WnoA@j_vJR(Zei%fZ~;IU-tRUavrO@(x$02<2SdX z-Q?Z3`Eix~fma}Y2ebxSG`pp*auu~GZ5G0;aro$!>hOVIqOVw8EzEDjOi(}|AtHIR z_h{Hdj~ATcNm)o#_bH;GC!fG0IZuj^VlieR#p}&%k(djSD!6!o`JlCPF!1L)gwmN} zoi{_ydb4rPnVfFR&@isE3T~_c1)lb_2DMCnD$Zh>Qf-^sXR*h2ww-9vUA3s|KJn$j zGCi-?X7)#xXu>7`x`5TyU0FxMnCopM{2f~_F>h_wK;uDPf8(ftbyR8~Gn`XAA?txf zU=sCo%1|HfCdvJI>xhXjl?V%38S!+Ip{<)eEIYceI*QwPtM)kV9sE7NYF;) zG9)JhXU6TgdbUzfe+?DObRBV@M`exJllv4RS9m|LJkuF2!U(Mb)2Tlddh#i zTf)6Jk7+q#0hs5p7;y^&P?Y5xW#nILWp^Q}=4hr8UcQLJAQ?LKTeV@bY(@Lhn+{%* z2uwjlMlD_*E9+^O5gfQ7_TRu8zQ`@A_<@q(j&Zmd(_)7a0Q-n!_N8_7e{PUE+@MMm zPX3Em@t#5&CaMDG5i#KA?8{V! zjAzRKKL8f<{&VP@!al5_i7$g6%pLqeFt3$w8UE#$6t+FwP=0*kL^{ZDcx#JEBM;}Q zoqdPY&s2N&4`WCHW`7lv_~_AhHCY|)Zhx}vmPK6G>&|fgh`z5DQ)H_?Vd0Iq>aH$h zFa4?NH_ITkfP8UBD2z_#_46L z-Y6g~Wc#_ehzD1?WHqW8kQ=#nIuH`}`6Zq1DLT*O@#Rxfpx;z?<<4Fw;D1Jw|Fg9Bh1x=oNRJW5je@ z?+uVha%~50U$QqbVZ2e8uE=qT_I-OR`vSlK?|k`vNy4I#EXTsYwM6AaV=yNWP-*^~ z#(0xv_hg%)`>&Zlkr{Ji`#QD8*>@Z!H1$Dc$;670mzwjM$CYYllR05XYLgSE|7JVn zj(FoQD*w~evqSO2Yv4htbV!9W1aF;cv);;ttAJ;aGzeYh3Bw3*RZpN+6>7ZtC@$gM zucvp~t%l%`l)W~h{>WR@+1a!sy_U%v%hwAmyu!j2lP7T#H#SHiDwq_XQf!R}<*oNJ zmm>mqk5*Q~OD@?Pt|r9raG4xy8{u74&(NGOhUy^cS@q;y>%P05b7<1s{CP0bE~D>+ zHs|OimC2<)fOhPXJw8~w@b;`(b^4S#PYcAoG;)7GXnGEDc&Of`k&Tazzj)|6=v*z_ zoO0WBt*{M^KYN;p4lTMcH$NKw@a(qB+dd%?%u@G`BkjNG|!7 z^G_z27}pDdUG)_?OcVF*`du zhulo9iS1oN=V{mHhwS3)?XfOETyTF;qIGRx(-LU1^s-ml4~YDaq&I2Yu_csQ$UZ@WD=comaP&xoRJDDe@4c4UviaD$htft-hD0<)zM{3taD#_!_X$Mr zHIac445ci^hytop1hAiDzjIHMItd^oV;qK4+$`;Lrhwon!P(|KiI_KUtV%RNNj_Nb zi--6KY8Akc&3s5PTN!5P9s=nlP&|lJhm027af)q;&8w3q+1Wv|K7twzU}bb9*IweF z0tXMoN=bpA?+QTaO1DzdK)%pM5?#|42*lpb*uEcV^Co^^yanE5kO#FFr}~D=6YGx>o>k1hOe!V( z-v-aequhmcJXwJ&1KDCE>R0C1Qu9=>LP%V-&)5ES3ja!U_N~OM>E{jEJb(U)CyHp4+siG{b+Kb~oXo_cKI% zAH=3qzy70)li#q4W=%x&){9V}F8SU9DYO8Q^niINppu^`qXzO&0OAw)l`A9^FOt!n z8^X~#o7{b}Fm^n*rXlg+Lep>sjAr*U`q06OiA=P0hQ**Omig>xmqv_ejG?Pe=|?g_ zJMF4WV9}rZ_v;)`ve>aB=5>VTm@hZXLo_lETgv7&yceBXPm5zo{obXbC$UT~P--ln zwqiS-YuXyDF!oj^o~cO}`hM%w&6ip`WF>w_ zBA5F%wvI5Q=<5FN&bi^#q|yY=`S6E_3%08 ze`DLt2abp#{4ehPH6!Wn?sFD^F>gJR4sQvD;raWQTM|*^)&Emoyq&hbA1?QMKomer z<&qh%lr00E|A;m2fRx9oyRk7XZbD;cyX^d$4K%c09+j6%9@(3>%KJ=L zg4;zX?!u`nxvV;sjcM#0nV&6a=pIt&ae04c7VMmCUSdG(W7S`SLy)=IzTe!+E?tA{ zBN*Yhn(WO5Ub0f4Hj#}@<;0e15>Dpg`7K2&JPSIAL~>h?|F18WTwUcw4z$!?I$1DD z{*k_a480_G=zEH+>q=FB@#qPZ!*J+ur={(@x#a$fB%e$ih|aZ+OV(j^_G^F zRo?wQyb7LIE&MK-x5Z*R7PRJl|9ts!u+HN-0ZoyC-8DoX)VK<2@JKtC)pSDDN({K> zX6@hDUgNiFwJw&_ud%n>IrrtxIlIx#PjEN^q>5^p>#Tl4cP>aE?Ep<*q(7*dIC_(mqSem=ID-~4|m?#Jr^_aasYAhDtGUO!&-*|pza0`{%TW= zr7~B3hb`cH%k7uxx7J)h1%2?8MsK&}0ZgVW&XN46G>gM~Df-552S6|SNe&_tCAtwtrrey@`t{6z_#)6T?E>~#8=RUb%Au#K0R$&$-@hO8 z_Vxx!Ul-tRCh-${{)116FZ-zTch`PEU3B40$*-7U#Aq4kRXC$T5ekSfOrbIc;yW3M~xvO7cZX1f2v!! zp7IJKK-gb>iRK0O_`>16`M1Zm;p_?WZR3OG&c)yMZ~^C64hs7W@Sgcl33TH|YJW?v z9UO_4Vg>>!#%{zQ2CaPq@*3*7!p>C6{88Yz$N)H3WNAXUU~T8`zwCcXXilM$SbDY{ zNxd#^T*6XP`gds#ZIw3<6q!|`V3hT-yK3R+wDtXq4IZ28H&8nFTM}D(XLM}^P+>g5 z*1kzFF%cv&YO5|ywLL*nZ&pW85H)@8-m*N@)h%uR*J+Gztj#d01IbWhwj`=^9q8z2 z00+E%ecL__58oSwiJ7lKO#qrs`<@P_c&m0)&4V`R5p&x77CU1;(uFwosw3$V5Ex?T zgjhiHAVSe4xidMDZ=zuWEDE1NA?!Q`xgYJ8YKPdP1n3Hy-P8aK1O5;)T4PpCDUu58S!!0eu5)Wzu5E$P#AB%AeobNK-MOnALv;0(>Vol26Tlg^-)mP$7cM4Y(cCy4s< z&zCw(h4T)dyX0RUWD9y66cGdlY-n0uUcL|OB2LKDHv|7SlM{~@-6RvvFrades96?Z zI2Wu2`A|0Wm^jv=v@0ZBvFOrlZvc~+oOD?M+QiB!#5l|LzbL*G3v~=%Zg3m{ad@oq5#uJfM zY1`TKCXW9!&zY!}&s>_krwb-VJBHW5{bU0y7>V@bSbes2FPq&hStCZ>vBiNHY7GI^%B?}DF;=iAU?DhIK>h%I2|{77uq%jp4)OQ z8WTg+%a}|@qO;vnbSebMnV2hr0w~zcxTj=1(g7-A1dLwozCJ&!x{0vPVu>>SOEEH0 zfik13#Ndfhg?D$y`-k{z?F)=09p}0pvay}E`^UaV_U5>Rvzb==)FbeD16ob$j{;HD zV1ru(LN4h$O5en!YbLi4Zztb?Ar;88UT!jGGE}JpzAqvJ8C}o9OmKI5rI(j-EMB#Z zEy_d){`m*neVZ+pne;iU%`h67u~6qw2Vgfs?=I7o_mT5_2(3)tM($*gkm=|^k-`s- zzrLqNXv;;IycEI&GWwHS@TPGk4|w3l2kCBk)b9dNqkAItV=%`^LkyVHdmj8yl;%_A z#STS>rlN*Ly^U&dC^p%@TJXLueJ|2hdBLdeNI{_TTdTak2PL_=NeSO0X|D3_WLqB> z5EPvD`h#`a+&qP|4Sc-^p2&*OwI%mViefU~-@8Hk+8Z(Hb@LLY1m?l&Ndy%CwFW4= zSECdjZZFuHx~|e2mhfVpT{j!f>BAulz}mR}!Kp81kqP;^K2nt4v2AR>gzh5C5PAIn zQgMHI8%&N|ZI?PMar9^g^0#}zFG*;+8di*W1GjioOSI4=mlf0}F(--MTWTA+Z>mGb z!X7s>gIl)>NBk()o;L}h4hnU4K|suFK40%yprpyN5BD~Mx10P{tixMdzF80pNtuO*u6gj19CE={E-O6P+?xkR6gYPMtlIOO`EvzeKz zJ`CEz?h|>o)S4nfXR_(AsT7DuWPMhih8$WXL}{+8f#z@@Ia2*x+ zepv^caZ$fQL9V{uUk6@`T{}{0cZTD&;k<`}c{C&kwuPe}h`d^6u>N6Wt$w4ZqfBg72>cbn{nzd=sF!hkkkap2d|8;OJiyNss8>Q2Il5z^NSA>E_gpy+?-GYud{z*u(O#}dfvvC`?}GsB_R&Wf2e7}xtYk?7DL z;9b)Ku?*|2tQ=d^{&~?7>L;Ctr8ksuPDk>BLt{zI!5VZ9pU+P|Z*QMgtNiFpZmgHt z2GKxQFZAZ*L{cC8iX@s$tMH{xP6`VN2`Q|9SLm4yI>Hvzw(Vb|{8jjUwfAa*oJ-`_ zQ)Pt)1tRLFjLsN%PzR0naIxOLdUXap+@N;yIlB&=!-*3gov!G&akj@qMrP%5MncHO zEuV|syYm{3?Wfa`_yJhQ-5`%Tfm&K#*1xM=^67WzZd#^d*yu$`Cny#73Z?oN<)l0; z>}OD?rVMN?K>SQiH)(_MIDY(!2sSqtCoc3Pt;sh&Dym?r{e%-k?1cQS{BiTD+G_pU zRKv#ea`R zR`->}%qn2h&NF8+kqLqqq9ClgV?SE&%9S)g)%EoBOevij$W(}Os3r;uW^pUHzEIxF z1GanPHfSpJu_?o6mmHudb8)L*Q1LMkGxzpWYgc;kqdIGJ^yJtgWhNcs8VZ3p+WTVc ziM1s6Ay^WSisZBEHX9};G7Drqv?6{Lw{~>o;R3z9WIVzsg_WbpX~hqc-8V8HkO^gp zBYx8-L1+w>n=@&<<~`p83tzZUTK=$QcT8-I@VWOEx~DW>f4HOd{Eeqn!$LxF=W1WS zA(~OD>-35)FyD*c+{pg;@hZpPNA+x#4D-{Ttbt1WdQ425noiLuRyiYWP-Tqr|F z#8l~+U0O!^wIC14!`qG_Kf%er-x^2c=`LlYV>j}+c<#5$$WJh5kG8r!6>7 z-~X<9Pm)^@Wm9&8GqiDJ@}j_#563dP@6`6&{$R=|6yyB~9vj=(s1EcTVf;2y``s?=~c>nS~zRgbxA|hwCwY5vke-SC% zUhOw&6rvjD(BIrc-#3$zk`msk!sJ@snp|uSU6c8@Q991fDFVVG`N2%u>|IhSIOocd zjoXmHfiWi!lqK?2u{2g!nKv=}`BeKwvGqA%>j-CS!tUKmFQDO>&9sD7S|tdbqd-3V zZ0~%|bG|wi+=s#NbduJ=Xx?j{)891SN+-){%p${WOCt8Y!R#jW?lt!IuK&z zO-y7k$H&>hC@ge`^VZVl+^{z>U>KRCUh(|gcQ-W^7T**fk+=%t^TPh;fkCOK!uc~Q zEdsT@hCHKyl+TY5CEmm|Mer0od5(#}U_?-mRO>HA9x{{gdBZy*24mE7{W#hXy@`7#!}uFV+o4uwko zlQJ@f`*>vEeSqM~z}jX~vPTZu0G9+m5B^sB^wbr$KTJOyrSYF)V>{~=Z=@gibPqc_ z4juXjdl^;q^cf&nLjS0wDlOkefj2HelzS_$ZpF9T=o=(hoi`Cc@$t=bpZ9xhP;6RI zyYMC(D(mcjz71GfS+Tocq@khVX9IRXCVZ;|@ACHG-*=%fJv|amq#lV2f~dP`$9M1k z9scHI-J#nN#E)Fg=%+Qc&jL!-6JzN{d${Ka3NAYKlE-eaKwlSwKTRj??+R#ador8;r>XfIcpfClYp((y}ad7qBQJVN% zmj<)9a?Z6a{Q;L*BS=6pvi4n9f!>_Mad-y1x#5%Sma;gmEIMsf++?aysGWKj%yWQA zl5x}MJ)GA8Htr6)cOu?xT=cV$;z_2h?ujLbRk8|h#vad~ZF~+i7c0sYoUhb8`3sX83&L z;LyeQ|LxsXTh_gWzY(*4_rPDUF5vP1&Osob{BNzStuGhb_sYD&Les=bC&QkR?XnL~ z8$ob(;o_xPnqjJ;mR3-G+g3LF{w_3btjb(k(wr^8;(I?fw(0BWIFRONXVbh!eP)w> zx(qB4$fJ0G_vEQsu&Ur;i0oDr_f^J?b0$O6Ccm!kV}+Rf8NCPK^r_#p9XJT-gNx9F zq%Tw)pBFL0ib&5eA*J2h`qg5;--Fl^Ou+!9JS5+MUTa+y?VUuG%2Cg#Q|eXOP0|Ac zLbQ+gk=Fw8?NbhGQynISaQ8&cNM^ni-D>sry|wwoF}8%h&5h^o)AbPsdsx}(_2w3V zt9OgWEN)n5Z7x+#$0WvC&}!042RG;Djt(!^Hhawc>^@b@hnzu>DF3!&L8sg%zMNNJ z=H$er2C8Bv#^#GF&3&&hhCD(cG;~BWAOh+co3Qv)ztkGyum*Lc`dV7KDtx{=!oqo6 zrlTd}LMxwj#qHKTDjmL7<<%^wsH{v9-NdW#5`w3w#7rJ%m*|GA>#aHr<+gL%$g+>GAig4T_CT&?b{cC)pBJly71}LPBXPO6Fihef5D9-k0C$ zR5GKrYw{4x#kqbx6y336g1*it@IgB=p7+KRw^y*Q)PGTYe@6_L86?(a^ULNPO4riC8}g zQ4_D>2W8osiGCfMwe$XZ5Wyx$P%Mw^)qj$Ox2Q73Hf*M(1k$nGUHCZ8Gp5-_qhAdT z3@ZHm{Q8OdK9L;xWGO;K~B4E@QZsA#(2AWv`J3 zWy)cPhu$)vPd6LeFEsErLCRi|lT}jzm0#$xl9IQ#kot%9+Hy}pE&H@z4tYktpMZNG-IvR(DR1uhR)^Q-SneK}rphvu#8rYhJI{r;9piiUgs$YUd<||iHcHK73k&6K69M!+ z^$I^oXC_|S!>yMQ7nj55|4R|-*l+2&RBMXknc*-P1N4ZaiZ?qtI+%+&G)!iC`aSe$ zi3y~0v1MgtyLaz~jdIOX$b6$W4i?uNdyPozV-9g}2!m|p5>Hr2SeUkx)2mlIpJ;F# za#+N0)XdkEaD#*OVT2Itz0?hjeV##>UY1Nk7?VJce^FsWx~^RKa-7v{s{@HiqZ-*J3Z(>G0k?yjmx=G--F6y9 zR6pvt#)KK6&vV0&-%^>qmkUbB3RKv8Lt-4=n}^vQ!8Bn6l$0!J)ZS|#DtO&^ue+0{ zveikNLhk+~fC7U=z`AJqOV~cj9`eIB{BjLfZEGdVTR1o*oZ$@JWUM;vJ8~X%P5D+& zDvQaE(y_6rpjLgEYM+>z@~PR+kJ3r(*RI&u+!lbz#PsNF-Ix1{^4tHqoH1C6w#5<8 zp6wtX;?bonLXjq0?MU#&~MKt}iN@oKmL0efb73-={IEu8Q36NOu{Q1cjQIz<_wUw&TM;X6Q8ZHjWAcX%O%pO1Fbdbo?~Fk;vQ5}w>8}0& z!>j528+ArzvR={8pVvZ-{TV~3qIsrAI0#mS((lq^Sk@4QPsQ$BSrAjQ;17eSW|{L$ zH|ffw5J>FPKc0Y=j=C(y^m8l8pE5_b&UPHa6mdAafmIaje0i7ms!>dVvO+7D29kDvVJL9Obp8K>tF!g(Zosv1%hG`BMuv3UF_ zcAB=-Q*8Fqxaxj&VW~*IbtafkafC4w7=HNaA(i9>ff6$Y6svt1Du#$bVK7FIL*!g^ zdoijZvGS&3gCd!mXtYx(=if*4BJLHw(Kuq9&D7@A&H_xO-`#}^9p}jj!UWFoKiKyW zh!RSh9US`N}~Q} zgwVw2LtA;#dyWuDC+zedJ=)gVp=g9Ar3;EmPLanvDkxychR16qXCU&K%ayJs78e_G8~!mp*MARU;~u6RZ0@gdnIz+UevaYE-%9#+GUQx7{Jk;O zEu?2`?Ag&kIYkK2_~#1RkkhJxl%*!1r^=YIfEvm%Sy+E!?!TcR$dAe^!~Xd3x4(jK zit`)SIP<{ePuvklV{t%Kjk@HH@GedDyDDWL7Xqg^Uc#Gm(|bv}M~Xo&kytx``x0S8#|^aZ8N z^76eL92~@f4#09;@SBeTRpY5#Dggj{<+j_fiMVZIDsYa!C_WiQGAUU=G6*3!9gYPQq_=>QmZbS}8)}pF! z++7)!aK2vMz`&NV4oJ7y-Ue*J0L}epPM9v#Zn8#V6MaAP zs!O}L)>YT)c^+SDc1LWx3A?G^9~4R30!o#c0w&Jp+T{Sg}M36EzNv(y9cY&L5vIETf@!YptRpU^Kw%SxvK- z_NbzQgS?As>jN><(yO!f@ujW#bn2i3Ir=5k{>BK@Gns2h#DVaYaKT?beY*B!7oG4f zZM&0ybZm@0U1mAvjr--|;Y*5CMcw#bY|-+rZr zf^(vUc^Jm^>*M?wZZB<$&*(X)-B3)~X+|RHdPOXDC$n1m-=w4@$al5%HgkoEU38;fipVoof z8}&n*suji5@x0(fRriZUIv)a*hm|@Eb3()ts`GEIHgbA6jiu-0>^LpoW#=e?ep9L3 zn89tY5Vrr|er{}QT&s+LNjNFx$3{bc^^sUHQE9$D-p@tJZ zuFV;GqbS|juIIDkA@0A=pjwsm-x@)ihwo`8!4mZlGM=^E$=%o#2Yy1S(DYLEUu~+1=ad~ijzyU0ePnWN1>!(#{SvzZ?Xx8p@8-t6xi<$8dZg4% zL&Sbz8$ySCf3)GW#swwJmdzS7CC?Xn_jGRP5C4#*)Uzw<8w~_&#?k2Xo|(vNv^j~u zeqBxZ?DchBXnyO4vz+>BmV5WwE^^~^YF~1tIss!X8iR2istDX%&k{LvroT7P_m(D$ zdOrT^DPE0YU#ZC>ZM$jD7hz3aurqWGo(~W+(KY|l4 z)^4O2%%34Vk9cY~tMqAd8r@a9XAimV6!vQiab--=cva`Ad7Z>fmYL4m%xI?O!Aw!Zhh`NHHWv`(fcd{Y00|xva*}p;QuoN( zYH7U%GEoqvoRN4>uENkqnHCf7`?*=T1}%!xf%6YmfVit3x@RMY_YU>2EWk+~*P- zHWopZ-p*2uT2U)LH07fACXirPb6}CrXQNhEHrhtVUBY&f!>D}na`mSCfQ2AOzcC4_ zXpdzi?9i{LySwSIH0D(`u)Bj=MT?9}v##?i{+-UYkdN0KmgzTKmPz87G9@*uosZOK zIOr&8`oGJ)>}5vH_zR!!Iqu_4E?V{26_nxoFyF+TVArgneU?1fukIURcv_mg9vXIt zgUb@4f0#_DGOnjL?ZTyq10FR$?+itq zFs*(hZD?q4nQPY0NYi8u{h9WFP#Gs~?Aq@L%@<2=pQ$(y4pV7Z+CK!o7QE3@IyKM) z{21}+qM;fF*idBJ0`bIZ#VAT2|8sFScLpFqa2oUeUTElD76FnSldQe za25KaS>OChNR9UmPH*3&lmHW($T(jD z5&bdQqwT)SFw-@5r`H3b`n5Xrqr{xVC}mGZ*GKh6A1h3%!Tf1`QyxQ-J85tb)${0J z4AbvMWVn?S{W4; znELM?y1j%#WRJ|r0YN)p<JW~QRQoa(_ z_%}5p+fTYvR(LqL|1JcP0A)JNq=1*=DVr-FRTde6?0@xs_2=HpY`ItN-+v90-u;LB z_odK-LKhDGts`}{lhCdYkd;rH%* zazUaDO#&#wb$Q7VeGrTdUARnDw2%y2Vq6=Sm!vh`8eUY5b>^SUnA5c}W0__TnI=hQ z=h)&ZjtA^S42sK!;_cM4;^pepF!XHt9i=CnE@!*PR#f+eEnjr0{T#j9yOu|?xH3nq zP_2b2wZ4b_T&vw{osK_#Z;#E7d=!`X;-}V;y*smxu6bBf0NR?IniM{BX5#VMzJ2>* zfmZhHKm`LNu$Bt_Rv&9OGnec)1x6kCp@dw>Vo~3 z?*SFIf7nd-ZI&Sn@7ue-$}X|>y(bWEY^>3H)_15$`43t_o^HP!%d6V?rO(XkR*V4d zg;TbAVkOC7n>qbcgh%oHqu&>D9)CPxZDl14XizOoOL?5V^}{K8rzgG3uprcZ+Kyl0+=wCjD+Z3bKq?78a3|j!aroN6ro}?2(l0xW-pJ9iA;$Yj!(GTWHT$)sAz*B7H`Vo^kdteQ9zEqi6peeIw#ICO;6Uh_l)FOUy5lQNZf3aP<8PbE2kDc}8*0qx~d!O6Oh1YEn8-!KaP zQxwV+J!X%JYHCI-SIAi?NQKE4&O-Djbow2+`VFZ<=*#f1*)H}|hI^n6`)k>WE3Frtu9s zDq#f_E`Bg%;NvrTTnn6!&Y?}tWaReci|uNanh{|*=-RR8#IN+RTw^S(A_q?3!tVFG zRqoKExLMUbH{YN~7tc-_VLi`Bo~=P=Mg*`7!q0FP_%v2gUgm8w&!>Iu-|VKWuV9T< z6MiyoRo7m$zpA7eHgE2)2bdNUWeIyO6c?Fz<>yvi2m4hsU2Jmb0H2TchQ?7PW#?jN zkfX-IunIsy9xl`wok;iZ4U1Xj;2l4t6h8(jwPjxtA4Z`x>+#cv)4|^$i)>}MD zO{-KaxrGhzRUK92$TluL_Izo54_5eCmjx0~ZPD3m-~Vp?@--Hp>Y@-{=Le)LTfoV> zp=9?3Da9H_!p<`zTA}OrLKSbD=FXnw>??K2<_~1XX3*_m4%c}i$8Tr`%Dp7~z@$?(dR;|RA1!DEX+wdqng8rh`0f3*=izoMUp{!y8346>Yp5_T8Z5KLrju~h-d z{cG*oH=IjU)zrYa94{c`XV&kMy!Y!4f^-9c5+#r=$-@%o zxp7KxPNV0Sql)7lmZHz3(t`a=*CzB63AO1odYkFL%l-6ft^w9Ohfm>$r03V0fWV9W z3V2!Jtoa&ZynAxxy&h3b(7$&)iRnPe=&|bg7~FzcpD6Z?Br>09e&9I?*<`sNtpavjEDh*{A6d9{xfZ4klb1EwP zR?1t$&E*v32=4TKJeB0Gv6D+HKfB&O@<&rU4PZ44)%gJ>pfxgL4s?)3szWmZ{`AW% z<78%oOij)D@GjyUoE*Xsrvh&krxD>^XWx3gu{@#z=SxYBKoSimJ&zmp#`TOoNE6obLYQ5I8%<`| zLw|a3>r@bOv>X@{W30_e{*min$5#2oPy0+kdA$zAi$R3YkocS zwFfTGVK_hd)~T`))=$v2;`59z8uk8mQX zKIC45$yJ6J_n&uMago-TLj!g3JLwB2foH6)>RWK(v?((Jeyco;&&|z)@a4dhn0KPE zqh7VS|C?JjVB)Vpi)npGxgc1Tw7bj?L7g2mx!f1PnxF)Bh>tWMguC6`Q-W;S!v(IWwC2n)N z9rUN~sMtbDWQVqdbDIuOx6{(zu5XDwa@=iP($q@boc$1jWIlqrAegr`&Og36PzNhsI{d75 zbz4Tn({UEwwS%5O`2eOpz{#H1)-og?-_9u|=UC$s`o%`I^Q-fH^=XO=2wOljisVPu zStx{gBxEEa%}E|VzRIhnuKV!e3qK9b(U{DiU9TPdtE+4B%F7G;xd+Q%_Cx`SW%lPw zW7hI1~NE z$U15fxU$=4FqyU~>*G7r2}R_LDQ(;S-aY=3o`I0-ccYDk0p8oaJG3v)61HDTB2=i0 zBAcSc8x1%RE0`w)n|#7wK-N;G4XjQskVME8ShOeP2(g$i(D*1_+ISf4wm@c&RjI!j zm;yw7iaOY2$1LZuI(N9-eZaxm%32>gUicp_0ZMDD1OQQl^_ia9@2o|V)~7f;^=G+9-xGuLzIW%=IV=fBHT zH8EGXc!!l+RCJL2%sl4%u3!%Fkj$YaMIR)!2%%*;%9Ri6K;+EnXn`HS|7!a_k@>aI zLPf^-3}^D!_JaN4=tp!C?F{&*=@x5>_p0zb3t(U z_kz6*W+v#-$hY6Z&l4)VLc+S~ynlw+6X}nc`*!c`g68B_IAiM)&?P(deZR5+8@255 zSbvxRLan7`O=0`dM?Q?PA3q8qz@M%44vhv844Bz|mv8A{`ev|cL&S8|F7zLZ!smvW8Ge8nSQE zSlaAc*6dnPN-{_Y$vT4}V~Md;wr_+iW3mgAbwZ4Nc(2Fz{r%4Q{rjHx{o|eEIL~?J zp8Gt{yt*+OAcDm| zUL{$n1Dr?zAUd+GWosdZJFP@Krl6-0o7Vv366`Y@xpA5#8%qA4SRx6*u8QSw};h=tU+TxU)nABION z-#IFYH8xMSe?`aNXHjR`e0D(;2^gUWr3M>K@teWhfisF~`d|bjxBt^(tCIwNU6Icc z$6`0aiv)XC_4YPCf|BZd_R_wJomw;037ZVdBB$fx%kw}VN zk(V4}Xk-MTP6Le-obw;#qoJR7Ufg^V6sx|82_A>j17;ff%vuzGHbsck1wvXq(7bd* zK_GW-796x}Xhct$eNlCLvglF@Oc#_?Ty(U7Z!Ah`=Ku+sTla=Ar*EuF>(QTzSW&@NA;pP#w2OP1xw_HSS|EII@t*amD=JR0y!2sMXC@`AFF9>1RTenhN zy}U?Xw(#ZB9)#+vfEE-nygj6pc&$;##H17y10AQ7v;q+NBE8^tktw4+KDkKYesY6) zBVwWNO3Dy&ov#5YreK^)_Kl85A)w8m2 zLpaxje94~bEN{K~Y26MTf}Uu7vDN`}0bRw%w3G-UH@zmnO$O$%W)$^Z`=Tli zAd?Uu$Epsnx)Ej|m{=50bgVI%g#!1Jt$=X)yVQ**Mg2ezc{&KF&mAW+5&^a~FgIGC z)Dp<#>48KuLKlP!TkWpFj!Z)bwDIy*Sm36N)HGdPT^Y2TQXxT6-Nhx*i9Shl7M68f zT6wvjV{f^cf)`!a)U*tkhDk2KmT$abYZ3<*kYwWd$P+-5*hF(GXjf}J#@)Z#iQg24 z6HasC2rb>=b;N6M{~N`^L$+PJIwO>c)VijgLNEmt=Lh>FevHR5Y46_`=#i@8@}lqH z5iJtHN=EX`TVuo8Ruh>;N8A}%w=_N1^)uOEAD~T78$0@%n^yu}R~;$`8x2A(<{#f! zUwUVhgLTt-Y7zBXB;Fp#MBzqivDvp{@)f==bens;&4tI4tXeVB+9A;APZb&UJHHn) z0KRFhM%aG-(vu2JYZEv70(vz6@E7htefs@c*i2ABZXCF+CqWE?Wbxlv9Xe7mgH-^t zS7v#6Zcf{_xi`4sTZ7T4*0GLCvm-?|tyrA<+R`q%@~a$x(BKROLs_hBvuLt{hPpb! z6&9@5gMFHi|9wzH$!2T#WActqqF^{W?q2=NQ($~mwXw)~BSi!D1!#fD$R?@Pgk_1F z!hi%ky{z(>Hah8sX%3W-HO6(68EW*LO@}S-tcaot&H#%&$;&&fq1Q;uDlf-MRwZT6 z&tDHGTcwG>$)+GP1I#6L7;g)$_~pw<|5@76QZjjxsNh5_b_V7i@H5(TOL~8dECK*- z1Mfu0%K8pFZO6%iILFnJ0TBb3b-;~x?&*Jnn5?c#mKYrH?Es%Ln2z+)9CyVJhsM~0 z_U(O7hBlsaJ$L1PA|&d6#R5T$d>u2{pFD70VF~0^NQDX5o#w%U`W_AbRFQY1XKl?D zw6Ii7KMkAz?VAH+uc62^6;)Ag!5l;vtBbqA~>nzn9|x zj>}iz;)*4RP0ciZ1K!FnU@8FkZ5 zM_l#das7CyZM{H?W92xFh7|SSLmKx43|ba!Sz{6$ogILoLGthGXt$ko{bk_p+d2Cj zdI~7TIk@^Og4yznz>w1qi3!h66W?;J?@IIuO)yV2JejG~NZg*L?E6qp6zhmm=fI z#=KEGW=jIZ2&d2BGb?k9o=cEiqvK*uS@7}(hlUEB75_w(P6=2V+4V^j8M8lT55NdT z^b?TPcB4{}uGa|Dn;!$Y0xI}_T73D6OwJ z_Kl2z3nmXUlSe%>V0>#zdS@Zl6FnnYvZ#EAoT`qIBf{!p z*ZST&YD2ZM5~@0b37ht$$gM&;NqdKOX(9<6yvZLQ4%oGyA$+yphI%JB)mx;7#2%oR z0EEa}8a+4qi-wk!&Fe1ymg5k2J>!gAGR2Mpq)3Vgkp!|yDs)7lXWvzb6nDv_4%;-` z_g`jU_i%S;GglT2U@?Lbzn9D!WG!@7*x=Hw6qrnL$NjbsHly;N>u(R1_xQDwJDVcv zaa1ATvYcEgav}&e_J>d5#|OK}Q4@@*0!hdZQ2ur6Cnzi}`qUM_^;1KGI-KH+pPHX< zUZ4{=FW>j_YBx+&n8=h?hS(jkp{d2#pz#{at0LW&4UHvZ@X>BMm+F50T%O!o)-2rgqC=ymY;Kg!*(E zUl)3ty6~bZza70h>01-Bxnm>SBnx1G<*rVX&5%8Im+u0>tK~t@I+*VwrsbFA1l%YP z#tdPf$bKzy%AW2F{8C)n!>#cFER~I_TFn?k10#aUbp?zbkhekbi98RBCESPY3G50C z4j5qi@ccj}&wi)zkuNl&qy&y8nBSoHtr~ZD1=P<{y(-;U9`#1Ej93|L$qpI{K74N0 zRI@Ch$?AaS`zwwYGTGo_p%J^b;xhD^)?(=S&O#fE#mRyEAj&J`2&$oaD!72yuO-xz>)z zRXe^2sIriC_SC?!?Vh_w>Kd6_b|1+ez!NKVGi)cEl^+C7UB}s=MTOpYvbp4JdvuAu zx_rq{M3B1Jpnf+#!>M^99 z<`L`4p}G5AD)iCMmM(heGKGWlns-AyYqx&>6g|L-;%lW)WC>Z~7AA4rgq#~`Wo30w zQ8P1nRc(Ln#h4ly;>%X99$Qb&W2`523-V6>;MF21NsTmGk?>X?9^Z(klH{FwqxosH zaHrn&WpqNJtEyp*cXK18@<>!vE0s&N77hudf4nc5!D4y!YP^KRy7SUCzJ1Xxqfzh& z^b6`_Obh%UjiF8&dwJ!Rk$r7Bv@U|>GW0%6T>18(+RfFH2|6Q-+RjBnxwy={6fMF= z@*CzoZSFeGAu+!rlhez4|88i+1gv_2Loy$?MS`VVQ~PP~SW!tJ zI+zf9AxR0Nca?ohbjTc6hs*k--vM6Qr%s)c(A2kBTikDGBpmie;)vt8t*wyBd5hRQ zEM?tdEt5bHl9ClO-m@o_{7y7hpJc6UreM_+OU%k~|M`R4IXlUM=v^D^DxWCtUu>S) z(t)?LRqgmvmH%{~%XFqsiRT}=AZCdZ(x?qmnvEfWx3sL?1;&+L3=LgAr2Xb4m-A0X z2Srv$%uA(aabn`gy~A~BolMdw&)vfzzYb{+ut5@`_hmo)OxAziN|ft)7otN;vW=HF z9yrg5N;>a-)tHFY*S%F)t~5{>agW5^Z9>+><6Exbkj@PL_4=?G#*g-dup({E@!5do*7=5dGv7ksj8ODsi{`tBNwzw4r|IDc6LI2`{F0gLGkK*!Ft8eU7vS_ z0W}f(MCIe`Yf-_7uikDY&Ky_Xe&*V_ts|h~P8;#2@Y)RP&G}gY)(%QvYN`eA5pth6 zd&QqWb(u~j4mLJt-+Q!)v(sp_F|1i?0F$N*mp1JoTz3jy&(BNIdp{WR{_e|roP4Y; zsp`k^SteZJnylKJkKIh=Szl}1)eEZGH<&Az3`%j>{p6~jJqPW2jt4FzHXcfR_xrZn zbM|T-6WeEHWxgkGzRL6tFT*x-`#+XnA9&GCcdm0hHk{5cU_bj_51HzAw##XwaZ8Jf zD~!E~&gEHzblN!uS8#*l42%cTzC0?8mvzz?m1b~DOH13&WfVb|uFz%c8K1Qm;J`YQ zq{;w_td!>R4a#tL$Z6ZooQ|hPLpKVzuU;`UFC2J8R!QkEUAfwnY>{Irp2cKUqB4K3 z3JJf>PC1dcvf}*JDSjoPs#~O5-2IosV}3yeUr%=~+0TQC|XlmhHo$WX2QpX zc<-3($LpvX&ZVPGNoA&SDPd$7;qGHI`wwv)vgzrhj<{bbS#d6Z@nZf%arCqP2h7zw zi_bE8k1nQ>xT`bB{%4k%)hjgXP=3tDjF&Pca=>p+N5vtGZI1E#Wv*oL%Z4!3iHYCb z_9@|1`7_-g*Hw#3yvDfT9T!Rhb8^1R$!f$#tMyJ>8At5(TL_krlq?Kz)a>Zoin>_% z-~w}{csQiLZ{4a!hXYvq8X~!6E+144HPF#8*VY|{^0y>vE@5d;3!uI3K=-Rz|R{SF^T#ed~J1J5T5bLra zvCj6$;o5Qcu@;$^TCGJr^zOph^iX1X0%p&s*p=%{q?O{O(S{2B-YTmB>l)0-s=%Ck zhKEcIEBqXI+$}7swBBCGUI{q^Pc)WTVs89L>cArw)U~_jdB*k@ewTs|$jl{bWtw*t zT*{D>Kb-5idPLs0_!3OLF$UGV72odhXO+3jgsJ4^M3h%>wqp>s7x7wIQb4O}Qb(QW*1%(qb`}b6z z@$%$!tkmX9wJ~wL5W2$h;ChDR6=Q9B_=KC^9C;Xb@LbN;2M6i&V?qHnq~^7NDln+h zVVFh7MG_}s4294l&$@XY&K@6?Mq|9D12V-T{BoZ+#b&Op;~Hwa^8>>5c5a|hZ*(J8 z155Zl7Uw6D*Ox5{eMfr;XE%}#@)X=39OSaIwWTPpGg&2?#tc}5+@)F{KDNlpCaXb5 z7_9VeIm9_K88BEWuR!*|)579Kv3gD~Z#q}b6586W6x)V5*xA>=+OHL->K~JpAMXCO z`fk|sHY2Vmn=E@~l%jUvP!KBU$&kBz5e&}DQ!ZOL&@kDVOKJnuSJZ4G@woQ|rUbi6 zR~IQJAu92eA%t)*&|zr!FkpcracrpEOW#fNw4VG!GuqQ%n!V^*aey+To$?abNAB-z zO|7ExY9|`r(Vt6O%^{c*Jtpn$c01^rHM;BR;TYJjTe|&3f{@e%mLdECr^mazRqsUQ zu%Is9zPZ?D2V0Mxy?w$C)@hr@Uko9%+1X6Vvihe_;$#wJ9Q`o%c1gxw+Ic>T{%uc3 zJX>^M`fByc?zawYmaU75`0sQF7m5lbB%_ON+hVD&qDS=Z>t4d{I50H6FPTRV_0Q+r zzd$t94J4BQpWSh2l5$wR`aWGK1aNW%0_*KC@(he3fEcr{yD{q z#;Uv@)ZPq#qdwinidvV)&IpjcNb|G#mUC?ugvFHRay}Y&a@j9n`{PUDFJ9F6VmNBW z*}EKMO0imUM_)b=tC#q9wSWI~+4ug^`%TF&{61f1%f)}H`Sj&qWl+2Sk=Mh0VMy)p zsc>qcRqoQ_?>)7?f}3Su>Mm5LQ(*9_pJG*k_xpSvI7iNJQ3IeLnH%GOZ=bOd+Hhqr`x55 zD~=)+q3)LS#JrZ#c+M3oh?YFn-{^f(hh^vB!-4_{D9$~7Z?jNP{gv%}n^!2yTib&E txe5yYcWw&Kf5X0;J+S%x|KEZORlhQxU)=J7?+NlE7*(w+#LJeC{tK0?xnBSP diff --git a/e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-firefox-linux.png b/e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-firefox-linux.png deleted file mode 100644 index bb002566e2196f26ff602beee9c1a1355657ff3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112948 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 diff --git a/e2e-tests/playwright/tsconfig.json b/e2e-tests/playwright/tsconfig.json deleted file mode 100644 index e9d33d2052..0000000000 --- a/e2e-tests/playwright/tsconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "compilerOptions": { - "esModuleInterop": true, - "strict": true, - "strictNullChecks": true, - "skipLibCheck": true, - "noEmit": true, - "baseUrl": ".", - "paths": { - "@mattermost/client/*": ["../../webapp/platform/client/lib/*"], - "@mattermost/types/*": ["../../webapp/platform/types/lib/*"], - "@e2e-support/*": ["support/*"], - "@e2e-test.config": ["test.config.ts"], - "@e2e-types": ["types.ts"] - } - }, - "include": ["./**/*"], - "exclude": ["playwright-report"] -}