From d971fd77af60f8bce37ebb401aa95424e46505d2 Mon Sep 17 00:00:00 2001 From: Laurent GAY Date: Fri, 24 Oct 2025 13:00:15 +0200 Subject: [PATCH] update frontend lib : remove histoire (obselete) + update vitest - #1815 --- .gitignore | 1 - env.d.ts | 2 - histoire.config.ts | 52 - package-lock.json | 3300 +++++------------ package.json | 23 +- .../About/InstanceContactLink.story.vue | 20 - src/components/Account/ActorCard.story.vue | 52 - src/components/Account/ActorInline.story.vue | 52 - .../Account/PopoverActorCard.story.vue | 59 - .../Account/ProfileOnboarding.story.vue | 29 - src/components/Address/AddressInfo.story.vue | 31 - .../Address/InlineAddress.story.vue | 27 - .../Categories/CategoryCard.story.vue | 29 - .../Discussion/DiscussionComment.story.vue | 50 - .../Discussion/DiscussionListItem.story.vue | 33 - .../Event/DateCalendarIcon.story.vue | 14 - .../Event/OrganizerPicker.story.vue | 56 - .../Event/OrganizerPickerWrapper.story.vue | 89 - .../Event/ParticipationButton.story.vue | 114 - .../Event/ShareEventModal.story.vue | 29 - .../Event/SkeletonEventResult.story.vue | 17 - src/components/Event/TagInput.story.vue | 18 - src/components/Group/GroupCard.story.vue | 60 - .../Group/GroupMemberCard.story.vue | 91 - .../Home/CategoriesPreview.story.vue | 16 - .../Home/MobilizonPresentation.story.vue | 10 - src/components/Home/SearchFields.story.vue | 22 - .../Home/UnloggedIntroduction.story.vue | 23 - src/components/Post/PostListItem.story.vue | 48 - src/components/Post/SharePostModal.story.vue | 20 - src/components/User/AuthProviders.story.vue | 13 - src/components/core/MaterialIcon.story.vue | 16 - src/histoire.setup.ts | 17 - .../About/InstanceContactLink.spec.ts | 74 + .../InstanceContactLink.spec.ts.snap | 9 + .../components/Account/ActorCard.spec.ts | 87 + .../components/Account/ActorInline.spec.ts | 87 + .../Account/PopoverActorCard.spec.ts | 90 + .../Account/ProfileOnboarding.spec.ts | 63 + .../__snapshots__/ActorCard.spec.ts.snap | 103 + .../__snapshots__/ActorInline.spec.ts.snap | 23 + .../PopoverActorCard.spec.ts.snap | 13 + .../ProfileOnboarding.spec.ts.snap | 13 + .../components/Address/AddressInfo.spec.ts | 73 + .../components/Address/InlineAddress.spec.ts | 71 + .../__snapshots__/AddressInfo.spec.ts.snap | 17 + .../__snapshots__/InlineAddress.spec.ts.snap | 5 + .../Categories/CategoryCard.spec.ts | 67 + .../__snapshots__/CategoryCard.spec.ts.snap | 26 + .../components/Comment/EventComment.spec.ts | 106 +- .../__snapshots__/EventComment.spec.ts.snap | 177 + .../Discussion/DiscussionComment.spec.ts | 96 + .../Discussion/DiscussionListItem.spec.ts | 60 + .../DiscussionComment.spec.ts.snap | 130 + .../DiscussionListItem.spec.ts.snap | 25 + .../components/Event/DateCalendarIcon.spec.ts | 59 + .../specs/components/Event/EventCard.spec.ts | 127 +- .../Event/EventListViewCard.spec.ts | 94 +- .../components/Event/OrganizerPicker.spec.ts | 78 + .../Event/OrganizerPickerWrapper.spec.ts | 73 + .../Event/ParticipationButton.spec.ts | 160 + .../components/Event/ShareEventModal.spec.ts | 92 + .../Event/SkeletonEventResult.spec.ts | 65 + .../specs/components/Event/TagInput.spec.ts | 55 + .../DateCalendarIcon.spec.ts.snap | 17 + .../__snapshots__/EventCard.spec.ts.snap | 252 ++ .../EventListViewCard.spec.ts.snap | 47 + .../OrganizerPicker.spec.ts.snap | 28 + .../OrganizerPickerWrapper.spec.ts.snap | 47 + .../ParticipationButton.spec.ts.snap | 104 + .../ShareEventModal.spec.ts.snap | 178 + .../SkeletonEventResult.spec.ts.snap | 62 + .../Event/__snapshots__/TagInput.spec.ts.snap | 42 + .../specs/components/Group/GroupCard.spec.ts | 111 + .../components/Group/GroupMemberCard.spec.ts | 120 + .../__snapshots__/GroupCard.spec.ts.snap | 79 + .../GroupMemberCard.spec.ts.snap | 123 + .../components/Home/CategoriesPreview.spec.ts | 50 + .../Home/MobilizonPresentation.spec.ts | 47 + .../components/Home/SearchFields.spec.ts | 50 + .../Home/UnloggedIntroduction.spec.ts | 68 + .../CategoriesPreview.spec.ts.snap | 3 + .../MobilizonPresentation.spec.ts.snap | 23 + .../__snapshots__/SearchFields.spec.ts.snap | 21 + .../UnloggedIntroduction.spec.ts.snap | 15 + .../components/Post/SharePostModal.spec.ts | 64 + .../__snapshots__/SharePostModal.spec.ts.snap | 69 + .../components/User/AuthProviders.spec.ts | 51 + .../__snapshots__/AuthProviders.spec.ts.snap | 11 + .../components/core/MaterialIcon.spec.ts | 63 + .../__snapshots__/MaterialIcon.spec.ts.snap | 7 + .../components/stories/ActorCardStory.spec.ts | 15 - .../stories/ActorInlineStory.spec.ts | 15 - .../stories/AddressInfoStory.spec.ts | 15 - .../stories/AuthProvidersStory.spec.ts | 15 - .../stories/CategoriesPreviewStory.spec.ts | 19 - .../stories/CategoryCardStory.spec.ts | 16 - .../stories/DateCalendarIconStory.spec.ts | 15 - .../stories/DiscussionListItemStory.spec.ts | 15 - .../components/stories/EventCardStory.spec.ts | 25 - .../stories/EventListViewCardStory.spec.ts | 15 - .../components/stories/GroupCardStory.spec.ts | 15 - .../stories/GroupMemberCardStory.spec.ts | 15 - .../stories/InlineAddressStory.spec.ts | 15 - .../stories/InstanceContactLinkStory.spec.ts | 15 - .../stories/MaterialIconStory.spec.ts | 15 - .../MobilizonPresentationStory.spec.ts | 15 - .../stories/PopoverActorCardStory.spec.ts | 15 - .../stories/PostListItemStory.spec.ts | 25 - .../stories/ProfileOnboardingStory.spec.ts | 15 - .../stories/ShareEventModalStory.spec.ts | 15 - .../stories/SharePostModalStory.spec.ts | 15 - .../stories/SkeletonEventResultStory.spec.ts | 15 - .../components/stories/TagInputStory.spec.ts | 15 - .../stories/UnloggedIntroductionStory.spec.ts | 15 - .../__snapshots__/ActorCardStory.spec.ts.snap | 110 - .../ActorInlineStory.spec.ts.snap | 26 - .../AddressInfoStory.spec.ts.snap | 20 - .../AuthProvidersStory.spec.ts.snap | 14 - .../CategoriesPreviewStory.spec.ts.snap | 11 - .../CategoryCardStory.spec.ts.snap | 33 - .../DateCalendarIconStory.spec.ts.snap | 20 - .../DiscussionCommentStory.spec.ts.snap | 87 - .../DiscussionListItemStory.spec.ts.snap | 28 - .../__snapshots__/EventCardStory.spec.ts.snap | 262 -- .../EventListViewCardStory.spec.ts.snap | 59 - .../__snapshots__/GroupCardStory.spec.ts.snap | 86 - .../GroupMemberCardStory.spec.ts.snap | 107 - .../InlineAddressStory.spec.ts.snap | 12 - .../InstanceContactLinkStory.spec.ts.snap | 18 - .../MaterialIconStory.spec.ts.snap | 15 - .../MobilizonPresentationStory.spec.ts.snap | 27 - .../PopoverActorCardStory.spec.ts.snap | 24 - .../PostListItemStory.spec.ts.snap | 60 - .../ProfileOnboardingStory.spec.ts.snap | 19 - .../ShareEventModalStory.spec.ts.snap | 99 - .../SharePostModalStory.spec.ts.snap | 44 - .../SkeletonEventResultStory.spec.ts.snap | 64 - .../__snapshots__/TagInputStory.spec.ts.snap | 14 - .../UnloggedIntroductionStory.spec.ts.snap | 18 - .../Group/CreateView.spec.ts | 0 .../Group/GroupFollowers.spec.ts | 0 .../Group/GroupMembers.spec.ts | 0 .../Group/GroupSettings.spec.ts | 0 .../Group/GroupView.spec.ts | 0 .../Group/MyGroups.spec.ts | 0 .../Group/SettingsView.spec.ts | 0 .../Group/TimelineView.spec.ts | 0 .../__snapshots__/CreateView.spec.ts.snap | 0 .../__snapshots__/GroupFollowers.spec.ts.snap | 0 .../__snapshots__/GroupMembers.spec.ts.snap | 0 .../__snapshots__/GroupSettings.spec.ts.snap | 0 .../__snapshots__/GroupView.spec.ts.snap | 0 .../Group/__snapshots__/MyGroups.spec.ts.snap | 0 .../__snapshots__/SettingsView.spec.ts.snap | 0 .../__snapshots__/TimelineView.spec.ts.snap | 0 .../User/PasswordReset.spec.ts | 0 .../User/RegisterView.spec.ts | 0 .../User/ValidateUser.spec.ts | 0 .../__snapshots__/RegisterView.spec.ts.snap | 0 .../__snapshots__/ValidateUser.spec.ts.snap | 0 .../__snapshots__/emailValidate.spec.ts.snap | 0 .../providerValidation.spec.ts.snap | 0 .../resendConfirmation.spec.ts.snap | 0 .../sendPasswordReset.spec.ts.snap | 0 .../settingsOnboard.spec.ts.snap | 0 .../User/emailValidate.spec.ts | 0 .../{components => views}/User/login.spec.ts | 0 .../User/providerValidation.spec.ts | 0 .../User/resendConfirmation.spec.ts | 0 .../User/sendPasswordReset.spec.ts | 0 .../User/settingsOnboard.spec.ts | 0 .../adminGroupProfile.spec.ts.snap | 0 .../__snapshots__/adminProfile.spec.ts.snap | 0 .../adminUsersProfileView.spec.ts.snap | 0 .../__snapshots__/dashboard.spec.ts.snap | 0 .../__snapshots__/groupProfiles.spec.ts.snap | 0 .../__snapshots__/instanceView.spec.ts.snap | 0 .../__snapshots__/instancesView.spec.ts.snap | 2 +- .../__snapshots__/profilesView.spec.ts.snap | 0 .../admin/__snapshots__/settings.spec.ts.snap | 0 .../__snapshots__/usersView.spec.ts.snap | 0 .../admin/adminGroupProfile.spec.ts | 0 .../admin/adminProfile.spec.ts | 0 .../admin/adminUsersProfileView.spec.ts | 0 .../admin/dashboard.spec.ts | 0 .../admin/groupProfiles.spec.ts | 0 .../admin/instanceView.spec.ts | 0 .../admin/instancesView.spec.ts | 0 .../admin/profilesView.spec.ts | 0 .../admin/settings.spec.ts | 0 .../admin/usersView.spec.ts | 0 192 files changed, 4767 insertions(+), 5300 deletions(-) delete mode 100644 histoire.config.ts delete mode 100644 src/components/About/InstanceContactLink.story.vue delete mode 100644 src/components/Account/ActorCard.story.vue delete mode 100644 src/components/Account/ActorInline.story.vue delete mode 100644 src/components/Account/PopoverActorCard.story.vue delete mode 100644 src/components/Account/ProfileOnboarding.story.vue delete mode 100644 src/components/Address/AddressInfo.story.vue delete mode 100644 src/components/Address/InlineAddress.story.vue delete mode 100644 src/components/Categories/CategoryCard.story.vue delete mode 100644 src/components/Discussion/DiscussionComment.story.vue delete mode 100644 src/components/Discussion/DiscussionListItem.story.vue delete mode 100644 src/components/Event/DateCalendarIcon.story.vue delete mode 100644 src/components/Event/OrganizerPicker.story.vue delete mode 100644 src/components/Event/OrganizerPickerWrapper.story.vue delete mode 100644 src/components/Event/ParticipationButton.story.vue delete mode 100644 src/components/Event/ShareEventModal.story.vue delete mode 100644 src/components/Event/SkeletonEventResult.story.vue delete mode 100644 src/components/Event/TagInput.story.vue delete mode 100644 src/components/Group/GroupCard.story.vue delete mode 100644 src/components/Group/GroupMemberCard.story.vue delete mode 100644 src/components/Home/CategoriesPreview.story.vue delete mode 100644 src/components/Home/MobilizonPresentation.story.vue delete mode 100644 src/components/Home/SearchFields.story.vue delete mode 100644 src/components/Home/UnloggedIntroduction.story.vue delete mode 100644 src/components/Post/PostListItem.story.vue delete mode 100644 src/components/Post/SharePostModal.story.vue delete mode 100644 src/components/User/AuthProviders.story.vue delete mode 100644 src/components/core/MaterialIcon.story.vue delete mode 100644 src/histoire.setup.ts create mode 100644 tests/unit/specs/components/About/InstanceContactLink.spec.ts create mode 100644 tests/unit/specs/components/About/__snapshots__/InstanceContactLink.spec.ts.snap create mode 100644 tests/unit/specs/components/Account/ActorCard.spec.ts create mode 100644 tests/unit/specs/components/Account/ActorInline.spec.ts create mode 100644 tests/unit/specs/components/Account/PopoverActorCard.spec.ts create mode 100644 tests/unit/specs/components/Account/ProfileOnboarding.spec.ts create mode 100644 tests/unit/specs/components/Account/__snapshots__/ActorCard.spec.ts.snap create mode 100644 tests/unit/specs/components/Account/__snapshots__/ActorInline.spec.ts.snap create mode 100644 tests/unit/specs/components/Account/__snapshots__/PopoverActorCard.spec.ts.snap create mode 100644 tests/unit/specs/components/Account/__snapshots__/ProfileOnboarding.spec.ts.snap create mode 100644 tests/unit/specs/components/Address/AddressInfo.spec.ts create mode 100644 tests/unit/specs/components/Address/InlineAddress.spec.ts create mode 100644 tests/unit/specs/components/Address/__snapshots__/AddressInfo.spec.ts.snap create mode 100644 tests/unit/specs/components/Address/__snapshots__/InlineAddress.spec.ts.snap create mode 100644 tests/unit/specs/components/Categories/CategoryCard.spec.ts create mode 100644 tests/unit/specs/components/Categories/__snapshots__/CategoryCard.spec.ts.snap rename src/components/Comment/EventComment.story.vue => tests/unit/specs/components/Comment/EventComment.spec.ts (67%) create mode 100644 tests/unit/specs/components/Comment/__snapshots__/EventComment.spec.ts.snap create mode 100644 tests/unit/specs/components/Discussion/DiscussionComment.spec.ts create mode 100644 tests/unit/specs/components/Discussion/DiscussionListItem.spec.ts create mode 100644 tests/unit/specs/components/Discussion/__snapshots__/DiscussionComment.spec.ts.snap create mode 100644 tests/unit/specs/components/Discussion/__snapshots__/DiscussionListItem.spec.ts.snap create mode 100644 tests/unit/specs/components/Event/DateCalendarIcon.spec.ts rename src/components/Event/EventCard.story.vue => tests/unit/specs/components/Event/EventCard.spec.ts (53%) rename src/components/Event/EventListViewCard.story.vue => tests/unit/specs/components/Event/EventListViewCard.spec.ts (61%) create mode 100644 tests/unit/specs/components/Event/OrganizerPicker.spec.ts create mode 100644 tests/unit/specs/components/Event/OrganizerPickerWrapper.spec.ts create mode 100644 tests/unit/specs/components/Event/ParticipationButton.spec.ts create mode 100644 tests/unit/specs/components/Event/ShareEventModal.spec.ts create mode 100644 tests/unit/specs/components/Event/SkeletonEventResult.spec.ts create mode 100644 tests/unit/specs/components/Event/TagInput.spec.ts create mode 100644 tests/unit/specs/components/Event/__snapshots__/DateCalendarIcon.spec.ts.snap create mode 100644 tests/unit/specs/components/Event/__snapshots__/EventCard.spec.ts.snap create mode 100644 tests/unit/specs/components/Event/__snapshots__/EventListViewCard.spec.ts.snap create mode 100644 tests/unit/specs/components/Event/__snapshots__/OrganizerPicker.spec.ts.snap create mode 100644 tests/unit/specs/components/Event/__snapshots__/OrganizerPickerWrapper.spec.ts.snap create mode 100644 tests/unit/specs/components/Event/__snapshots__/ParticipationButton.spec.ts.snap create mode 100644 tests/unit/specs/components/Event/__snapshots__/ShareEventModal.spec.ts.snap create mode 100644 tests/unit/specs/components/Event/__snapshots__/SkeletonEventResult.spec.ts.snap create mode 100644 tests/unit/specs/components/Event/__snapshots__/TagInput.spec.ts.snap create mode 100644 tests/unit/specs/components/Group/GroupCard.spec.ts create mode 100644 tests/unit/specs/components/Group/GroupMemberCard.spec.ts create mode 100644 tests/unit/specs/components/Group/__snapshots__/GroupCard.spec.ts.snap create mode 100644 tests/unit/specs/components/Group/__snapshots__/GroupMemberCard.spec.ts.snap create mode 100644 tests/unit/specs/components/Home/CategoriesPreview.spec.ts create mode 100644 tests/unit/specs/components/Home/MobilizonPresentation.spec.ts create mode 100644 tests/unit/specs/components/Home/SearchFields.spec.ts create mode 100644 tests/unit/specs/components/Home/UnloggedIntroduction.spec.ts create mode 100644 tests/unit/specs/components/Home/__snapshots__/CategoriesPreview.spec.ts.snap create mode 100644 tests/unit/specs/components/Home/__snapshots__/MobilizonPresentation.spec.ts.snap create mode 100644 tests/unit/specs/components/Home/__snapshots__/SearchFields.spec.ts.snap create mode 100644 tests/unit/specs/components/Home/__snapshots__/UnloggedIntroduction.spec.ts.snap create mode 100644 tests/unit/specs/components/Post/SharePostModal.spec.ts create mode 100644 tests/unit/specs/components/Post/__snapshots__/SharePostModal.spec.ts.snap create mode 100644 tests/unit/specs/components/User/AuthProviders.spec.ts create mode 100644 tests/unit/specs/components/User/__snapshots__/AuthProviders.spec.ts.snap create mode 100644 tests/unit/specs/components/core/MaterialIcon.spec.ts create mode 100644 tests/unit/specs/components/core/__snapshots__/MaterialIcon.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/ActorCardStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/ActorInlineStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/AddressInfoStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/AuthProvidersStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/CategoriesPreviewStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/CategoryCardStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/DateCalendarIconStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/DiscussionListItemStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/EventCardStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/EventListViewCardStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/GroupCardStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/GroupMemberCardStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/InlineAddressStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/InstanceContactLinkStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/MaterialIconStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/MobilizonPresentationStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/PopoverActorCardStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/PostListItemStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/ProfileOnboardingStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/ShareEventModalStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/SharePostModalStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/SkeletonEventResultStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/TagInputStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/UnloggedIntroductionStory.spec.ts delete mode 100644 tests/unit/specs/components/stories/__snapshots__/ActorCardStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/ActorInlineStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/AddressInfoStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/AuthProvidersStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/CategoriesPreviewStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/CategoryCardStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/DateCalendarIconStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/DiscussionCommentStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/DiscussionListItemStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/EventCardStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/EventListViewCardStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/GroupCardStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/GroupMemberCardStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/InlineAddressStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/InstanceContactLinkStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/MaterialIconStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/MobilizonPresentationStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/PopoverActorCardStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/PostListItemStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/ProfileOnboardingStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/ShareEventModalStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/SharePostModalStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/SkeletonEventResultStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/TagInputStory.spec.ts.snap delete mode 100644 tests/unit/specs/components/stories/__snapshots__/UnloggedIntroductionStory.spec.ts.snap rename tests/unit/specs/{components => views}/Group/CreateView.spec.ts (100%) rename tests/unit/specs/{components => views}/Group/GroupFollowers.spec.ts (100%) rename tests/unit/specs/{components => views}/Group/GroupMembers.spec.ts (100%) rename tests/unit/specs/{components => views}/Group/GroupSettings.spec.ts (100%) rename tests/unit/specs/{components => views}/Group/GroupView.spec.ts (100%) rename tests/unit/specs/{components => views}/Group/MyGroups.spec.ts (100%) rename tests/unit/specs/{components => views}/Group/SettingsView.spec.ts (100%) rename tests/unit/specs/{components => views}/Group/TimelineView.spec.ts (100%) rename tests/unit/specs/{components => views}/Group/__snapshots__/CreateView.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/Group/__snapshots__/GroupFollowers.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/Group/__snapshots__/GroupMembers.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/Group/__snapshots__/GroupSettings.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/Group/__snapshots__/GroupView.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/Group/__snapshots__/MyGroups.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/Group/__snapshots__/SettingsView.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/Group/__snapshots__/TimelineView.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/User/PasswordReset.spec.ts (100%) rename tests/unit/specs/{components => views}/User/RegisterView.spec.ts (100%) rename tests/unit/specs/{components => views}/User/ValidateUser.spec.ts (100%) rename tests/unit/specs/{components => views}/User/__snapshots__/RegisterView.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/User/__snapshots__/ValidateUser.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/User/__snapshots__/emailValidate.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/User/__snapshots__/providerValidation.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/User/__snapshots__/resendConfirmation.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/User/__snapshots__/sendPasswordReset.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/User/__snapshots__/settingsOnboard.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/User/emailValidate.spec.ts (100%) rename tests/unit/specs/{components => views}/User/login.spec.ts (100%) rename tests/unit/specs/{components => views}/User/providerValidation.spec.ts (100%) rename tests/unit/specs/{components => views}/User/resendConfirmation.spec.ts (100%) rename tests/unit/specs/{components => views}/User/sendPasswordReset.spec.ts (100%) rename tests/unit/specs/{components => views}/User/settingsOnboard.spec.ts (100%) rename tests/unit/specs/{components => views}/admin/__snapshots__/adminGroupProfile.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/admin/__snapshots__/adminProfile.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/admin/__snapshots__/adminUsersProfileView.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/admin/__snapshots__/dashboard.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/admin/__snapshots__/groupProfiles.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/admin/__snapshots__/instanceView.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/admin/__snapshots__/instancesView.spec.ts.snap (88%) rename tests/unit/specs/{components => views}/admin/__snapshots__/profilesView.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/admin/__snapshots__/settings.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/admin/__snapshots__/usersView.spec.ts.snap (100%) rename tests/unit/specs/{components => views}/admin/adminGroupProfile.spec.ts (100%) rename tests/unit/specs/{components => views}/admin/adminProfile.spec.ts (100%) rename tests/unit/specs/{components => views}/admin/adminUsersProfileView.spec.ts (100%) rename tests/unit/specs/{components => views}/admin/dashboard.spec.ts (100%) rename tests/unit/specs/{components => views}/admin/groupProfiles.spec.ts (100%) rename tests/unit/specs/{components => views}/admin/instanceView.spec.ts (100%) rename tests/unit/specs/{components => views}/admin/instancesView.spec.ts (100%) rename tests/unit/specs/{components => views}/admin/profilesView.spec.ts (100%) rename tests/unit/specs/{components => views}/admin/settings.spec.ts (100%) rename tests/unit/specs/{components => views}/admin/usersView.spec.ts (100%) diff --git a/.gitignore b/.gitignore index b97d7ba2f..37c322c80 100644 --- a/.gitignore +++ b/.gitignore @@ -55,5 +55,4 @@ node_modules stats.html /coverage /playwright-report/ -.histoire diff --git a/env.d.ts b/env.d.ts index f284c30a9..5cdc6906b 100644 --- a/env.d.ts +++ b/env.d.ts @@ -1,5 +1,3 @@ -/// - /// interface ImportMetaEnv { diff --git a/histoire.config.ts b/histoire.config.ts deleted file mode 100644 index 8cd1c1719..000000000 --- a/histoire.config.ts +++ /dev/null @@ -1,52 +0,0 @@ -/// - -import { defineConfig } from "histoire"; -import { HstVue } from "@histoire/plugin-vue"; -import path from "path"; - -export default defineConfig({ - plugins: [HstVue()], - setupFile: path.resolve(__dirname, "./src/histoire.setup.ts"), - viteNodeInlineDeps: [/date-fns/], - // viteIgnorePlugins: ['vite-plugin-pwa', 'vite-plugin-pwa:build', 'vite-plugin-pwa:info'], - tree: { - groups: [ - { - title: "Actors", - include: (file) => /^src\/components\/Account/.test(file.path), - }, - { - title: "Address", - include: (file) => /^src\/components\/Address/.test(file.path), - }, - { - title: "Comments", - include: (file) => /^src\/components\/Comment/.test(file.path), - }, - { - title: "Discussion", - include: (file) => /^src\/components\/Discussion/.test(file.path), - }, - { - title: "Events", - include: (file) => /^src\/components\/Event/.test(file.path), - }, - { - title: "Groups", - include: (file) => /^src\/components\/Group/.test(file.path), - }, - { - title: "Home", - include: (file) => /^src\/components\/Home/.test(file.path), - }, - { - title: "Posts", - include: (file) => /^src\/components\/Post/.test(file.path), - }, - { - title: "Others", - include: () => true, - }, - ], - }, -}); diff --git a/package-lock.json b/package-lock.json index 0b219ec26..88a47c85e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -90,7 +90,6 @@ }, "devDependencies": { "@eslint/js": "^9.38.0", - "@histoire/plugin-vue": "^0.17.1", "@playwright/test": "^1.25.1", "@rushstack/eslint-patch": "^1.1.4", "@tailwindcss/forms": "^0.5.2", @@ -103,9 +102,9 @@ "@types/ngeohash": "^0.6.2", "@types/phoenix": "^1.5.2", "@types/sanitize-html": "^2.5.0", - "@vitejs/plugin-vue": "^5.0.0", - "@vitest/coverage-v8": "^1.2.2", - "@vitest/ui": "^1.2.2", + "@vitejs/plugin-vue": "^6.0.1", + "@vitest/coverage-v8": "^4.0.2", + "@vitest/ui": "^4.0.2", "@vue/eslint-config-prettier": "^10.2.0", "@vue/eslint-config-typescript": "^14.6.0", "@vue/test-utils": "^2.0.2", @@ -116,32 +115,21 @@ "eslint-plugin-vue": "^10.5.1", "flush-promises": "^1.0.2", "globals": "^16.4.0", - "histoire": "^0.17.0", "husky": "^9.0.10", "jsdom": "^24.0.0", - "lint-staged": "^15.1.0", + "lint-staged": "^16.2.6", "mock-apollo-client": "^1.1.0", "prettier": "^3.0.0", "prettier-eslint": "^16.1.2", - "rollup-plugin-visualizer": "^5.7.1", + "rollup-plugin-visualizer": "^6.0.5", "sass": "^1.34.1", "typescript": "^5.9.3", "typescript-eslint": "^8.46.2", - "vite": "^5.0.12", - "vite-plugin-pwa": "^0.19.0", - "vitest": "^1.2.2", + "vite": "^7.1.12", + "vite-plugin-pwa": "^1.1.0", + "vitest": "^4.0.2", "vue-i18n-extract": "^2.0.4", - "vue-router-mock": "^1.0.0" - } - }, - "node_modules/@akryum/tinypool": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@akryum/tinypool/-/tinypool-0.3.1.tgz", - "integrity": "sha512-nznEC1ZA/m3hQDEnrGQ4c5gkaa9pcaVnw4LFJyzBAaR7E3nfiAPEHS3otnSafpZouVnoKeITl5D+2LsnwlnK8g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" + "vue-router-mock": "^2.0.0" } }, "node_modules/@alloc/quick-lru": { @@ -156,20 +144,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@apollo/client": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.14.0.tgz", @@ -242,9 +216,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", - "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "dev": true, "license": "MIT", "engines": { @@ -252,21 +226,21 @@ } }, "node_modules/@babel/core": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", - "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", + "@babel/generator": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.4", + "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.4", - "@babel/types": "^7.28.4", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -306,14 +280,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -373,18 +347,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz", - "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", + "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.28.3", + "@babel/traverse": "^7.28.5", "semver": "^6.3.1" }, "engines": { @@ -405,14 +379,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", - "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "regexpu-core": "^6.2.0", + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", "semver": "^6.3.1" }, "engines": { @@ -460,14 +434,14 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", - "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -588,9 +562,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -636,12 +610,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", - "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "license": "MIT", "dependencies": { - "@babel/types": "^7.28.4" + "@babel/types": "^7.28.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -651,14 +625,14 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", - "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -865,9 +839,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.4.tgz", - "integrity": "sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", + "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", "dev": true, "license": "MIT", "dependencies": { @@ -953,14 +927,14 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", - "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.0" + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -1053,9 +1027,9 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", - "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz", + "integrity": "sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==", "dev": true, "license": "MIT", "dependencies": { @@ -1152,9 +1126,9 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", - "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", + "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==", "dev": true, "license": "MIT", "dependencies": { @@ -1218,16 +1192,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", - "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", + "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-module-transforms": "^7.28.3", "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -1372,9 +1346,9 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", - "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", + "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1653,17 +1627,17 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.3.tgz", - "integrity": "sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.5.tgz", + "integrity": "sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.28.0", + "@babel/compat-data": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", @@ -1676,42 +1650,42 @@ "@babel/plugin-transform-async-generator-functions": "^7.28.0", "@babel/plugin-transform-async-to-generator": "^7.27.1", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.28.0", + "@babel/plugin-transform-block-scoping": "^7.28.5", "@babel/plugin-transform-class-properties": "^7.27.1", "@babel/plugin-transform-class-static-block": "^7.28.3", - "@babel/plugin-transform-classes": "^7.28.3", + "@babel/plugin-transform-classes": "^7.28.4", "@babel/plugin-transform-computed-properties": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-destructuring": "^7.28.5", "@babel/plugin-transform-dotall-regex": "^7.27.1", "@babel/plugin-transform-duplicate-keys": "^7.27.1", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", "@babel/plugin-transform-dynamic-import": "^7.27.1", "@babel/plugin-transform-explicit-resource-management": "^7.28.0", - "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-exponentiation-operator": "^7.28.5", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", "@babel/plugin-transform-function-name": "^7.27.1", "@babel/plugin-transform-json-strings": "^7.27.1", "@babel/plugin-transform-literals": "^7.27.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.5", "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.28.5", "@babel/plugin-transform-modules-umd": "^7.27.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", "@babel/plugin-transform-new-target": "^7.27.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", "@babel/plugin-transform-numeric-separator": "^7.27.1", - "@babel/plugin-transform-object-rest-spread": "^7.28.0", + "@babel/plugin-transform-object-rest-spread": "^7.28.4", "@babel/plugin-transform-object-super": "^7.27.1", "@babel/plugin-transform-optional-catch-binding": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.28.5", "@babel/plugin-transform-parameters": "^7.27.7", "@babel/plugin-transform-private-methods": "^7.27.1", "@babel/plugin-transform-private-property-in-object": "^7.27.1", "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.28.3", + "@babel/plugin-transform-regenerator": "^7.28.4", "@babel/plugin-transform-regexp-modifiers": "^7.27.1", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", @@ -1787,18 +1761,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", + "@babel/generator": "^7.28.5", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", + "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", + "@babel/types": "^7.28.5", "debug": "^4.3.1" }, "engines": { @@ -1806,110 +1780,26 @@ } }, "node_modules/@babel/types": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", - "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@codemirror/commands": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.9.0.tgz", - "integrity": "sha512-454TVgjhO6cMufsyyGN70rGIfJxJEjcqjBG2x2Y03Y/+Fm99d3O/Kv1QDYWuG6hvxsgmjXmBuATikIIYvERX+w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", "dev": true, "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.4.0", - "@codemirror/view": "^6.27.0", - "@lezer/common": "^1.1.0" - } - }, - "node_modules/@codemirror/lang-json": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-json/-/lang-json-6.0.2.tgz", - "integrity": "sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/json": "^1.0.0" - } - }, - "node_modules/@codemirror/language": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.11.3.tgz", - "integrity": "sha512-9HBM2XnwDj7fnu0551HkGdrUrrqmYq/WC5iv6nbY2WdicXdGbhR/gfbZOH73Aqj4351alY1+aoG9rCNfiwS1RA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.23.0", - "@lezer/common": "^1.1.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0", - "style-mod": "^4.0.0" - } - }, - "node_modules/@codemirror/lint": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.9.0.tgz", - "integrity": "sha512-wZxW+9XDytH3SKvS8cQzMyQCaaazH8XL1EMHleHe00wVzsv7NBQKVW2yzEHrRhmM7ZOhVdItPbvlRBvMp9ej7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.35.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/state": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.2.tgz", - "integrity": "sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@marijn/find-cluster-break": "^1.0.0" - } - }, - "node_modules/@codemirror/theme-one-dark": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.3.tgz", - "integrity": "sha512-NzBdIvEJmx6fjeremiGp3t/okrLPYT0d9orIc7AFun8oZcRk58aejkqhv6spnz4MLAevrKNPMQYXEWMg4s+sKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/highlight": "^1.0.0" - } - }, - "node_modules/@codemirror/view": { - "version": "6.38.6", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.38.6.tgz", - "integrity": "sha512-qiS0z1bKs5WOvHIAC0Cybmv4AJSkAXgX5aD6Mqd2epSLlVJsQl8NG23jCVouIgkh4All/mrbdsf2UOLFnJw0tw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.5.0", - "crelt": "^1.0.6", - "style-mod": "^4.1.0", - "w3c-keyname": "^2.2.4" + "engines": { + "node": ">=18" } }, "node_modules/@csstools/color-helpers": { @@ -2028,9 +1918,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.11.tgz", + "integrity": "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==", "cpu": [ "ppc64" ], @@ -2041,13 +1931,13 @@ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.11.tgz", + "integrity": "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==", "cpu": [ "arm" ], @@ -2058,13 +1948,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.11.tgz", + "integrity": "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==", "cpu": [ "arm64" ], @@ -2075,13 +1965,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.11.tgz", + "integrity": "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==", "cpu": [ "x64" ], @@ -2092,13 +1982,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.11.tgz", + "integrity": "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==", "cpu": [ "arm64" ], @@ -2109,13 +1999,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.11.tgz", + "integrity": "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==", "cpu": [ "x64" ], @@ -2126,13 +2016,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.11.tgz", + "integrity": "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==", "cpu": [ "arm64" ], @@ -2143,13 +2033,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.11.tgz", + "integrity": "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==", "cpu": [ "x64" ], @@ -2160,13 +2050,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.11.tgz", + "integrity": "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==", "cpu": [ "arm" ], @@ -2177,13 +2067,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.11.tgz", + "integrity": "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==", "cpu": [ "arm64" ], @@ -2194,13 +2084,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.11.tgz", + "integrity": "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==", "cpu": [ "ia32" ], @@ -2211,13 +2101,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.11.tgz", + "integrity": "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==", "cpu": [ "loong64" ], @@ -2228,13 +2118,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.11.tgz", + "integrity": "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==", "cpu": [ "mips64el" ], @@ -2245,13 +2135,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.11.tgz", + "integrity": "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==", "cpu": [ "ppc64" ], @@ -2262,13 +2152,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.11.tgz", + "integrity": "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==", "cpu": [ "riscv64" ], @@ -2279,13 +2169,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.11.tgz", + "integrity": "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==", "cpu": [ "s390x" ], @@ -2296,13 +2186,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.11.tgz", + "integrity": "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==", "cpu": [ "x64" ], @@ -2313,13 +2203,30 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.11.tgz", + "integrity": "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.11.tgz", + "integrity": "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==", "cpu": [ "x64" ], @@ -2330,13 +2237,30 @@ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.11.tgz", + "integrity": "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.11.tgz", + "integrity": "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==", "cpu": [ "x64" ], @@ -2347,13 +2271,30 @@ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.11.tgz", + "integrity": "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.11.tgz", + "integrity": "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==", "cpu": [ "x64" ], @@ -2364,13 +2305,13 @@ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.11.tgz", + "integrity": "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==", "cpu": [ "arm64" ], @@ -2381,13 +2322,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.11.tgz", + "integrity": "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==", "cpu": [ "ia32" ], @@ -2398,13 +2339,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.11.tgz", + "integrity": "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==", "cpu": [ "x64" ], @@ -2415,7 +2356,7 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eslint-community/eslint-utils": { @@ -2713,84 +2654,6 @@ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@histoire/app": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@histoire/app/-/app-0.17.17.tgz", - "integrity": "sha512-2i1V38o08V+eaR0d3L0/EA6AYG14xyQBJbyYv0Hz3r4sH3Elj1FoJiwolbCfTDmkOnSgwWTc7+JoCqkLIbxfhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@histoire/controls": "^0.17.17", - "@histoire/shared": "^0.17.17", - "@histoire/vendors": "^0.17.17", - "@types/flexsearch": "^0.7.6", - "flexsearch": "0.7.21", - "shiki-es": "^0.2.0" - } - }, - "node_modules/@histoire/controls": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@histoire/controls/-/controls-0.17.17.tgz", - "integrity": "sha512-W22HZ/X078IZmE09XEKj4Fq7LxQPP/w/aMYAzm94V2NIGhI0fkiSaBDvyTUl7NYrGT66Wq5+9Po1IWPMllk3cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@codemirror/commands": "^6.3.0", - "@codemirror/lang-json": "^6.0.1", - "@codemirror/language": "^6.9.2", - "@codemirror/lint": "^6.4.2", - "@codemirror/state": "^6.3.1", - "@codemirror/theme-one-dark": "^6.1.2", - "@codemirror/view": "^6.22.0", - "@histoire/shared": "^0.17.17", - "@histoire/vendors": "^0.17.17" - } - }, - "node_modules/@histoire/plugin-vue": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@histoire/plugin-vue/-/plugin-vue-0.17.17.tgz", - "integrity": "sha512-O5h/Ww6IT2CygVVT4onN27IZt11Z2qE8XeHeXJCEese3dxnnVWRhjMpsaWAU5XqgfjKNAiALJk86b49/6NQaRg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@histoire/controls": "^0.17.17", - "@histoire/shared": "^0.17.17", - "@histoire/vendors": "^0.17.17", - "change-case": "^4.1.2", - "globby": "^13.2.2", - "launch-editor": "^2.6.1", - "pathe": "^1.1.1" - }, - "peerDependencies": { - "histoire": "^0.17.17", - "vue": "^3.2.47" - } - }, - "node_modules/@histoire/shared": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@histoire/shared/-/shared-0.17.17.tgz", - "integrity": "sha512-ueGtURysonT0MujCObPCR57+mgZluMEXCrbc2FBgKAD/DoAt38tNwSGsmLldk2O6nTr7lr6ClbVSgWrLwgY6Xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@histoire/vendors": "^0.17.17", - "@types/fs-extra": "^9.0.13", - "@types/markdown-it": "^12.2.3", - "chokidar": "^3.5.3", - "pathe": "^1.1.1", - "picocolors": "^1.0.0" - }, - "peerDependencies": { - "vite": "^2.9.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" - } - }, - "node_modules/@histoire/vendors": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@histoire/vendors/-/vendors-0.17.17.tgz", - "integrity": "sha512-QZvmffdoJlLuYftPIkOU5Q2FPAdG2JjMuQ5jF7NmEl0n1XnmbMqtRkdYTZ4eF6CO1KLZ0Zyf6gBQvoT1uWNcjA==", - "dev": true, - "license": "MIT" - }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -2952,16 +2815,6 @@ "node": ">=12" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", @@ -3108,52 +2961,6 @@ "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==", "license": "MIT" }, - "node_modules/@lezer/common": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.3.0.tgz", - "integrity": "sha512-L9X8uHCYU310o99L3/MpJKYxPzXPOS7S0NmBaM7UO/x2Kb2WbmMLSkfvdr1KxRIFYOpbY0Jhn7CfLSUDzL8arQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@lezer/highlight": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.2.tgz", - "integrity": "sha512-z8TQwaBXXQIvG6i2g3e9cgMwUUXu9Ib7jo2qRRggdhwKpM56Dw3PM3wmexn+EGaaOZ7az0K7sjc3/gcGW7sz7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.3.0" - } - }, - "node_modules/@lezer/json": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@lezer/json/-/json-1.0.3.tgz", - "integrity": "sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/lr": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.2.tgz", - "integrity": "sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@marijn/find-cluster-break": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", - "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", - "dev": true, - "license": "MIT" - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -3583,6 +3390,13 @@ "integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==", "license": "MIT" }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.29", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.29.tgz", + "integrity": "sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==", + "dev": true, + "license": "MIT" + }, "node_modules/@rollup/plugin-node-resolve": { "version": "15.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", @@ -3997,86 +3811,86 @@ "license": "MIT" }, "node_modules/@sentry-internal/browser-utils": { - "version": "10.21.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.21.0.tgz", - "integrity": "sha512-QRHpCBheLd/88Z2m3ABMriV0MweW+pcGKuVsH61/UdziKcQLdoQpOSvGg0/0CuqFm2UjL7237ZzLdZrWaCOlfQ==", + "version": "10.22.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.22.0.tgz", + "integrity": "sha512-BpJoLZEyJr7ORzkCrIjxRTnFWwO1mJNICVh3B9g5d9245niGT4OJvRozmLz89WgJkZFHWu84ls6Xfq5b/3tGFQ==", "license": "MIT", "dependencies": { - "@sentry/core": "10.21.0" + "@sentry/core": "10.22.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry-internal/browser-utils/node_modules/@sentry/core": { - "version": "10.21.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.21.0.tgz", - "integrity": "sha512-/+gpOOb2Wr1UbW59WKqNAVVIqFz9FjtUJuPtVh4UanxGCfavMPaKpFzSlaEKJSKDkiCQgANP4O2y8Y5Bh3tvEA==", + "version": "10.22.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.22.0.tgz", + "integrity": "sha512-V1oeHbrOKzxadsCmgtPku3v3Emo/Bpb3VSuKmlLrQefiHX98MWtjJ3XDGfduzD5/dCdh0r/OOLwjcmrO/PZ2aw==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@sentry-internal/feedback": { - "version": "10.21.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.21.0.tgz", - "integrity": "sha512-6SnRR2FiW6TMwCE0PqbueHkkpeVnjOjz00R+/mX25Dp1U5BU5TzbXHzn9Y4wKnaD3Rzz4+nnzVkpHAOL3SppGw==", + "version": "10.22.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.22.0.tgz", + "integrity": "sha512-zXySOin/gGHPV+yKaHqjN9YZ7psEJwzLn8PzCLeo+4REzF1eQwbYZIgOxJFD32z8s3nZiABSWFM/n1CvVfMEsQ==", "license": "MIT", "dependencies": { - "@sentry/core": "10.21.0" + "@sentry/core": "10.22.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry-internal/feedback/node_modules/@sentry/core": { - "version": "10.21.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.21.0.tgz", - "integrity": "sha512-/+gpOOb2Wr1UbW59WKqNAVVIqFz9FjtUJuPtVh4UanxGCfavMPaKpFzSlaEKJSKDkiCQgANP4O2y8Y5Bh3tvEA==", + "version": "10.22.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.22.0.tgz", + "integrity": "sha512-V1oeHbrOKzxadsCmgtPku3v3Emo/Bpb3VSuKmlLrQefiHX98MWtjJ3XDGfduzD5/dCdh0r/OOLwjcmrO/PZ2aw==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@sentry-internal/replay": { - "version": "10.21.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.21.0.tgz", - "integrity": "sha512-5tfiKZJzZf9+Xk8SyvoC4ZEVLNmjBZZEaKhVyNo53CLWUWfWOqDc3DB9fj85i/yHFQ0ImdRnaPBc0CIeN00CcA==", + "version": "10.22.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.22.0.tgz", + "integrity": "sha512-JNE4kHAQSG4/V+J+Zog3vKBWgOe9H33ol/MEU1RuLM/4I+uLf4mTetwnS9ilpnnW/Z/gQYfA+R3CiMrZtqTivw==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "10.21.0", - "@sentry/core": "10.21.0" + "@sentry-internal/browser-utils": "10.22.0", + "@sentry/core": "10.22.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry-internal/replay-canvas": { - "version": "10.21.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.21.0.tgz", - "integrity": "sha512-TOLo5mAjJSOuJId8Po44d1hwJ5bIZDtRSoupWpYWqLw1tuUh1tc4vqID11ZXsw9pBzjVIK653BPDX/z/9+Um+Q==", + "version": "10.22.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.22.0.tgz", + "integrity": "sha512-DE4JNUskJg+O+wFq42W5gAa/99aD5k7TfGOwABxvnzFv8vkKA7pqXwPbFFPzypdKIkln+df7RmbnDwQRNg6/lA==", "license": "MIT", "dependencies": { - "@sentry-internal/replay": "10.21.0", - "@sentry/core": "10.21.0" + "@sentry-internal/replay": "10.22.0", + "@sentry/core": "10.22.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry-internal/replay-canvas/node_modules/@sentry/core": { - "version": "10.21.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.21.0.tgz", - "integrity": "sha512-/+gpOOb2Wr1UbW59WKqNAVVIqFz9FjtUJuPtVh4UanxGCfavMPaKpFzSlaEKJSKDkiCQgANP4O2y8Y5Bh3tvEA==", + "version": "10.22.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.22.0.tgz", + "integrity": "sha512-V1oeHbrOKzxadsCmgtPku3v3Emo/Bpb3VSuKmlLrQefiHX98MWtjJ3XDGfduzD5/dCdh0r/OOLwjcmrO/PZ2aw==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@sentry-internal/replay/node_modules/@sentry/core": { - "version": "10.21.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.21.0.tgz", - "integrity": "sha512-/+gpOOb2Wr1UbW59WKqNAVVIqFz9FjtUJuPtVh4UanxGCfavMPaKpFzSlaEKJSKDkiCQgANP4O2y8Y5Bh3tvEA==", + "version": "10.22.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.22.0.tgz", + "integrity": "sha512-V1oeHbrOKzxadsCmgtPku3v3Emo/Bpb3VSuKmlLrQefiHX98MWtjJ3XDGfduzD5/dCdh0r/OOLwjcmrO/PZ2aw==", "license": "MIT", "engines": { "node": ">=18" @@ -4097,25 +3911,25 @@ } }, "node_modules/@sentry/browser": { - "version": "10.21.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.21.0.tgz", - "integrity": "sha512-z/63bUFBQkTfJ5ElhWTYvomz+gZ1GsoH16v4/RGoPY5qZgYxcVO3fkp0opnu3gcbXS0ZW7TLRiHpqhvipDdP6g==", + "version": "10.22.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.22.0.tgz", + "integrity": "sha512-wD2XqN+yeBpQFfdPo6+wlKDMyyuDctVGzZWE4qTPntICKQuwMdAfeq5Ma89ad0Dw+bzG9UijGeyuJQlswF87Mw==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "10.21.0", - "@sentry-internal/feedback": "10.21.0", - "@sentry-internal/replay": "10.21.0", - "@sentry-internal/replay-canvas": "10.21.0", - "@sentry/core": "10.21.0" + "@sentry-internal/browser-utils": "10.22.0", + "@sentry-internal/feedback": "10.22.0", + "@sentry-internal/replay": "10.22.0", + "@sentry-internal/replay-canvas": "10.22.0", + "@sentry/core": "10.22.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry/browser/node_modules/@sentry/core": { - "version": "10.21.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.21.0.tgz", - "integrity": "sha512-/+gpOOb2Wr1UbW59WKqNAVVIqFz9FjtUJuPtVh4UanxGCfavMPaKpFzSlaEKJSKDkiCQgANP4O2y8Y5Bh3tvEA==", + "version": "10.22.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.22.0.tgz", + "integrity": "sha512-V1oeHbrOKzxadsCmgtPku3v3Emo/Bpb3VSuKmlLrQefiHX98MWtjJ3XDGfduzD5/dCdh0r/OOLwjcmrO/PZ2aw==", "license": "MIT", "engines": { "node": ">=18" @@ -4168,13 +3982,13 @@ } }, "node_modules/@sentry/vue": { - "version": "10.21.0", - "resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-10.21.0.tgz", - "integrity": "sha512-jOX9jOkC7gBcr+JG65zjLczHRGfxxzc9QxHShM3g3+YuXk5BxMcRveyq4ne1+tzmvwqG6OI0T7jt28J6fL2JDQ==", + "version": "10.22.0", + "resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-10.22.0.tgz", + "integrity": "sha512-rzwGkFKqAFsH1GGsH83lo0GdZ29yXHOReJqFOzexbhX2j0mtKmFqSwAqKTDbPz/snIQIO5eKtXHTF6kpZ+CkiA==", "license": "MIT", "dependencies": { - "@sentry/browser": "10.21.0", - "@sentry/core": "10.21.0" + "@sentry/browser": "10.22.0", + "@sentry/core": "10.22.0" }, "engines": { "node": ">=18" @@ -4190,9 +4004,9 @@ } }, "node_modules/@sentry/vue/node_modules/@sentry/core": { - "version": "10.21.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.21.0.tgz", - "integrity": "sha512-/+gpOOb2Wr1UbW59WKqNAVVIqFz9FjtUJuPtVh4UanxGCfavMPaKpFzSlaEKJSKDkiCQgANP4O2y8Y5Bh3tvEA==", + "version": "10.22.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.22.0.tgz", + "integrity": "sha512-V1oeHbrOKzxadsCmgtPku3v3Emo/Bpb3VSuKmlLrQefiHX98MWtjJ3XDGfduzD5/dCdh0r/OOLwjcmrO/PZ2aw==", "license": "MIT", "engines": { "node": ">=18" @@ -4205,6 +4019,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "dev": true, + "license": "MIT" + }, "node_modules/@surma/rollup-plugin-off-main-thread": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", @@ -4660,16 +4481,24 @@ "vue": "^3.0.0" } }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 10" + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" } }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", @@ -4677,23 +4506,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/flexsearch": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/@types/flexsearch/-/flexsearch-0.7.6.tgz", - "integrity": "sha512-H5IXcRn96/gaDmo+rDl2aJuIJsob8dgOXDqf8K0t8rWZd1AFNaaspmRsElESiU+EWE33qfbFPgI0OC/B1g9FCA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/geojson": { "version": "7946.0.16", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", @@ -4766,14 +4578,13 @@ "license": "MIT" }, "node_modules/@types/markdown-it": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", - "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", - "dev": true, + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", "license": "MIT", "dependencies": { - "@types/linkify-it": "*", - "@types/mdurl": "*" + "@types/linkify-it": "^5", + "@types/mdurl": "^2" } }, "node_modules/@types/mdurl": { @@ -4789,16 +4600,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/node": { - "version": "24.9.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.9.1.tgz", - "integrity": "sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~7.16.0" - } - }, "node_modules/@types/phoenix": { "version": "1.6.6", "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.6.tgz", @@ -5146,167 +4947,182 @@ } }, "node_modules/@vitejs/plugin-vue": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", - "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.1.tgz", + "integrity": "sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==", "dev": true, "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-beta.29" + }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^20.19.0 || >=22.12.0" }, "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", "vue": "^3.2.25" } }, "node_modules/@vitest/coverage-v8": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-1.6.1.tgz", - "integrity": "sha512-6YeRZwuO4oTGKxD3bijok756oktHSIm3eczVVzNe3scqzuhLwltIF3S9ZL/vwOVIpURmU6SnZhziXXAfw8/Qlw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.2.tgz", + "integrity": "sha512-daQs7CNoq4KKJ+3mgnxwbX8NLkT3nNxK/ZARdWyy/VtNwe0LoKIHgXFvj0hCKXclgfHaihpqbv1UHkQOgyEZng==", "dev": true, "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.1", - "@bcoe/v8-coverage": "^0.2.3", - "debug": "^4.3.4", + "@bcoe/v8-coverage": "^1.0.2", + "@vitest/utils": "4.0.2", + "ast-v8-to-istanbul": "^0.3.5", + "debug": "^4.4.3", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", - "istanbul-lib-source-maps": "^5.0.4", - "istanbul-reports": "^3.1.6", - "magic-string": "^0.30.5", - "magicast": "^0.3.3", - "picocolors": "^1.0.0", - "std-env": "^3.5.0", - "strip-literal": "^2.0.0", - "test-exclude": "^6.0.0" + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.2.0", + "magicast": "^0.3.5", + "std-env": "^3.9.0", + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "vitest": "1.6.1" + "@vitest/browser": "4.0.2", + "vitest": "4.0.2" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, "node_modules/@vitest/expect": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz", - "integrity": "sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.2.tgz", + "integrity": "sha512-izQY+ABWqL2Vyr5+LNo3m16nLLTAzLn8em6i5uxqsrWRhdgzdN5JIHrpFVGBAYRGDAbtwE+yD4Heu8gsBSWTVQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "1.6.1", - "@vitest/utils": "1.6.1", - "chai": "^4.3.10" + "@standard-schema/spec": "^1.0.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.0.2", + "@vitest/utils": "4.0.2", + "chai": "^6.0.1", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.2.tgz", + "integrity": "sha512-oiny+oBSGU9vHMA1DPdO+t1GVidCRuA4lKSG6rbo5SrCiTCGl7bTCyTaUkwxDpUkiSxEVneeXW4LJ4fg3H56dw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "4.0.2", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.19" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.2.tgz", + "integrity": "sha512-PhrSiljryCz5nUDhHla5ihXYy2iRCBob+rNqlu34dA+KZIllVR39rUGny5R3kLgDgw3r8GW1ptOo64WbieMkeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/runner": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz", - "integrity": "sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.2.tgz", + "integrity": "sha512-mPS5T/ZDuO6J5rsQiA76CFmlHtos7dnCvL14I1Oo8SbcjIhJd6kirFmekovfYLRygdF0gJe6SA5asCKIWKw1tw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "1.6.1", - "p-limit": "^5.0.0", - "pathe": "^1.1.1" + "@vitest/utils": "4.0.2", + "pathe": "^2.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/runner/node_modules/p-limit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", - "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@vitest/runner/node_modules/yocto-queue": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", - "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@vitest/snapshot": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz", - "integrity": "sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.2.tgz", + "integrity": "sha512-NibujZAh+fTQlpGdP8J2pZcsPg7EPjiLUOUq9In++4p35vc9xIFMkXfQDbBSpijqZPe6i2hEKrUCbKu70/sPzw==", "dev": true, "license": "MIT", "dependencies": { - "magic-string": "^0.30.5", - "pathe": "^1.1.1", - "pretty-format": "^29.7.0" + "@vitest/pretty-format": "4.0.2", + "magic-string": "^0.30.19", + "pathe": "^2.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/spy": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz", - "integrity": "sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.2.tgz", + "integrity": "sha512-KrTWRXFPYrbhD0iUXeoA8BMXl81nvemj5D8sc7NbTlRvCeUWo36JheOWtAUCafcNi0G72ycAdsvWQVSOxy/3TA==", "dev": true, "license": "MIT", - "dependencies": { - "tinyspy": "^2.2.0" - }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/ui": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-1.6.1.tgz", - "integrity": "sha512-xa57bCPGuzEFqGjPs3vVLyqareG8DX0uMkr5U/v5vLv5/ZUrBrPL7gzxzTJedEyZxFMfsozwTIbbYfEQVo3kgg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-4.0.2.tgz", + "integrity": "sha512-GqPobLaUnKxkEJQHxszJ4yTSHCNGysWto6wANoBn/iXWU1juZV5pVjopxu+DkMKU+J6UQqvZ4ZXkcjxzRQS31A==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "1.6.1", - "fast-glob": "^3.3.2", - "fflate": "^0.8.1", - "flatted": "^3.2.9", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "sirv": "^2.0.4" + "@vitest/utils": "4.0.2", + "fflate": "^0.8.2", + "flatted": "^3.3.3", + "pathe": "^2.0.3", + "sirv": "^3.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "vitest": "1.6.1" + "vitest": "4.0.2" } }, "node_modules/@vitest/utils": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz", - "integrity": "sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.2.tgz", + "integrity": "sha512-H9jFzZb/5B5Qh7ajPUWMJ8UYGxQ4EQTaNLSm3icXs/oXkzQ1jqfcWDEJ4U3LkFPZOd6QW8M2MYjz32poW+KKqg==", "dev": true, "license": "MIT", "dependencies": { - "diff-sequences": "^29.6.3", - "estree-walker": "^3.0.3", - "loupe": "^2.3.7", - "pretty-format": "^29.7.0" + "@vitest/pretty-format": "4.0.2", + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" @@ -5744,14 +5560,6 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "license": "BSD-2-Clause" }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/abbrev": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", @@ -5775,17 +5583,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -5796,19 +5593,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/agent-base": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", @@ -6073,15 +5857,34 @@ } }, "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, "license": "MIT", "engines": { - "node": "*" + "node": ">=12" } }, + "node_modules/ast-v8-to-istanbul": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.8.tgz", + "integrity": "sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^9.0.1" + } + }, + "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, "node_modules/async": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", @@ -6277,9 +6080,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.8.19", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.19.tgz", - "integrity": "sha512-zoKGUdu6vb2jd3YOq0nnhEDQVbPcHhco3UImJrv5dSkvxTc2pl2WjOPsjZXDwPDSl5eghIMuY3R6J9NDKF3KcQ==", + "version": "2.8.20", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.20.tgz", + "integrity": "sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.js" @@ -6303,16 +6106,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/birpc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.1.1.tgz", - "integrity": "sha512-B64AGL4ug2IS2jvV/zjTYDD1L+2gOJTT7Rv+VaK7KVQtQOo/xZbCDsh7g727ipckmU+QJYRqo5RcifVr0Kgcmg==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, "node_modules/blurhash": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.5.tgz", @@ -6454,17 +6247,6 @@ "node": ">=6" } }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, "node_modules/camelcase-css": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", @@ -6494,35 +6276,14 @@ ], "license": "CC-BY-4.0" }, - "node_modules/capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, "node_modules/chai": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", - "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.0.tgz", + "integrity": "sha512-aUTnJc/JipRzJrNADXVvpVqi6CO0dn3nx4EVPxijri+fj3LUUDyZQOgVeW54Ob3Y1Xh9Iz8f+CgaCl8v0mn9bA==", "dev": true, "license": "MIT", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.1.0" - }, "engines": { - "node": ">=4" + "node": ">=18" } }, "node_modules/chalk": { @@ -6541,62 +6302,20 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.2" - }, - "engines": { - "node": "*" - } - }, "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "readdirp": "^4.0.1" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 14.16.0" }, "funding": { "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" } }, "node_modules/ci-info": { @@ -6631,42 +6350,34 @@ } }, "node_modules/cli-truncate": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.1.1.tgz", + "integrity": "sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==", "dev": true, "license": "MIT", "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^7.0.0" + "slice-ansi": "^7.1.0", + "string-width": "^8.0.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", - "dev": true, - "license": "MIT" - }, "node_modules/cli-truncate/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", + "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", + "get-east-asian-width": "^1.3.0", "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6825,13 +6536,6 @@ "dev": true, "license": "MIT" }, - "node_modules/confbox": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", - "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", - "dev": true, - "license": "MIT" - }, "node_modules/config-chain": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", @@ -6843,51 +6547,6 @@ "proto-list": "~1.2.1" } }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" - } - }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -6962,13 +6621,6 @@ "node": ">=4" } }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true, - "license": "MIT" - }, "node_modules/cssstyle": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", @@ -7108,19 +6760,6 @@ "dev": true, "license": "MIT" }, - "node_modules/deep-eql": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", - "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -7182,13 +6821,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/defu": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", - "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", - "dev": true, - "license": "MIT" - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -7213,29 +6845,12 @@ "node": ">=0.10" } }, - "node_modules/diacritics": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/diacritics/-/diacritics-1.3.0.tgz", - "integrity": "sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==", - "dev": true, - "license": "MIT" - }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "license": "Apache-2.0" }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -7294,20 +6909,6 @@ ], "license": "BSD-2-Clause" }, - "node_modules/domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "deprecated": "Use your platform's native DOMException instead", - "dev": true, - "license": "MIT", - "dependencies": { - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", @@ -7337,17 +6938,6 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "node_modules/dot-object": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/dot-object/-/dot-object-2.1.5.tgz", @@ -7473,13 +7063,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true, - "license": "MIT" - }, "node_modules/ejs": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", @@ -7497,9 +7080,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.239", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.239.tgz", - "integrity": "sha512-1y5w0Zsq39MSPmEjHjbizvhYoTaulVtivpxkp5q5kaPmQtsK6/2nvAzGRxNMS9DoYySp9PkW0MAQDwU1m764mg==", + "version": "1.5.240", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.240.tgz", + "integrity": "sha512-OBwbZjWgrCOH+g6uJsA2/7Twpas2OlepS9uvByJjR2datRDuKGYeD+nP8lBBks2qnB7bGJNHDUx7c/YLaT3QMQ==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -7508,16 +7091,6 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "license": "MIT" }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -7630,6 +7203,13 @@ "node": ">= 0.4" } }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", @@ -7690,9 +7270,9 @@ } }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.11.tgz", + "integrity": "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -7700,32 +7280,35 @@ "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.25.11", + "@esbuild/android-arm": "0.25.11", + "@esbuild/android-arm64": "0.25.11", + "@esbuild/android-x64": "0.25.11", + "@esbuild/darwin-arm64": "0.25.11", + "@esbuild/darwin-x64": "0.25.11", + "@esbuild/freebsd-arm64": "0.25.11", + "@esbuild/freebsd-x64": "0.25.11", + "@esbuild/linux-arm": "0.25.11", + "@esbuild/linux-arm64": "0.25.11", + "@esbuild/linux-ia32": "0.25.11", + "@esbuild/linux-loong64": "0.25.11", + "@esbuild/linux-mips64el": "0.25.11", + "@esbuild/linux-ppc64": "0.25.11", + "@esbuild/linux-riscv64": "0.25.11", + "@esbuild/linux-s390x": "0.25.11", + "@esbuild/linux-x64": "0.25.11", + "@esbuild/netbsd-arm64": "0.25.11", + "@esbuild/netbsd-x64": "0.25.11", + "@esbuild/openbsd-arm64": "0.25.11", + "@esbuild/openbsd-x64": "0.25.11", + "@esbuild/openharmony-arm64": "0.25.11", + "@esbuild/sunos-x64": "0.25.11", + "@esbuild/win32-arm64": "0.25.11", + "@esbuild/win32-ia32": "0.25.11", + "@esbuild/win32-x64": "0.25.11" } }, "node_modules/escalade": { @@ -7737,13 +7320,6 @@ "node": ">=6" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true, - "license": "MIT" - }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -7756,39 +7332,6 @@ "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==", - "dev": true, - "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/escodegen/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==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint": { "version": "9.38.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.38.0.tgz", @@ -8131,19 +7674,6 @@ "dev": true, "license": "MIT" }, - "node_modules/eslint/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/eslint/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -8188,20 +7718,6 @@ "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==", - "dev": true, - "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", @@ -8265,41 +7781,14 @@ "dev": true, "license": "MIT" }, - "node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "node_modules/expect-type": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", + "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, + "license": "Apache-2.0", "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "node": ">=12.0.0" } }, "node_modules/fast-deep-equal": { @@ -8331,6 +7820,18 @@ "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", @@ -8426,42 +7927,6 @@ "node": ">=8" } }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -8509,13 +7974,6 @@ "dev": true, "license": "ISC" }, - "node_modules/flexsearch": { - "version": "0.7.21", - "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.21.tgz", - "integrity": "sha512-W7cHV7Hrwjid6lWmy0IhsWDFQboWSng25U3VVywpHOTJnnAZNPScog67G+cVpeX9f7yDD21ih0WDrMMT+JoaYg==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/floating-vue": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/floating-vue/-/floating-vue-5.2.2.tgz", @@ -8641,9 +8099,9 @@ "license": "ISC" }, "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "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, @@ -8737,16 +8195,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -8791,19 +8239,6 @@ "node": ">= 0.4" } }, - "node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "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", @@ -8843,15 +8278,15 @@ } }, "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==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, "node_modules/globals": { @@ -8885,25 +8320,36 @@ } }, "node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "license": "MIT", "dependencies": { + "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", "merge2": "^1.4.1", - "slash": "^4.0.0" + "slash": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globby/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/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -8953,46 +8399,6 @@ "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/gray-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/hammerjs": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", @@ -9115,262 +8521,6 @@ "node": ">= 0.4" } }, - "node_modules/header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/histoire": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/histoire/-/histoire-0.17.17.tgz", - "integrity": "sha512-DAwY4sgIoP7NGE5ldaws2d3RWz4OOQcwhS8elRMiA2euqzLvDU2IXm+ZjeDDFVtGkvmQNQyfZBDKLCLHfRkSUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@akryum/tinypool": "^0.3.1", - "@histoire/app": "^0.17.17", - "@histoire/controls": "^0.17.17", - "@histoire/shared": "^0.17.17", - "@histoire/vendors": "^0.17.17", - "@types/flexsearch": "^0.7.6", - "@types/markdown-it": "^12.2.3", - "birpc": "^0.1.1", - "change-case": "^4.1.2", - "chokidar": "^3.5.3", - "connect": "^3.7.0", - "defu": "^6.1.3", - "diacritics": "^1.3.0", - "flexsearch": "0.7.21", - "fs-extra": "^10.1.0", - "globby": "^13.2.2", - "gray-matter": "^4.0.3", - "jiti": "^1.21.0", - "jsdom": "^20.0.3", - "markdown-it": "^12.3.2", - "markdown-it-anchor": "^8.6.7", - "markdown-it-attrs": "^4.1.6", - "markdown-it-emoji": "^2.0.2", - "micromatch": "^4.0.5", - "mrmime": "^1.0.1", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "sade": "^1.8.1", - "shiki-es": "^0.2.0", - "sirv": "^2.0.3", - "vite-node": "^0.34.6" - }, - "bin": { - "histoire": "bin.mjs" - }, - "peerDependencies": { - "vite": "^2.9.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" - } - }, - "node_modules/histoire/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/histoire/node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/histoire/node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true, - "license": "MIT" - }, - "node_modules/histoire/node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/histoire/node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/histoire/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/histoire/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/histoire/node_modules/jsdom": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", - "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.6", - "acorn": "^8.8.1", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/histoire/node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/histoire/node_modules/w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/histoire/node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/histoire/node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/histoire/node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -9453,16 +8603,6 @@ "node": ">= 14" } }, - "node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=16.17.0" - } - }, "node_modules/husky": { "version": "9.1.7", "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", @@ -9768,16 +8908,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -9804,13 +8934,16 @@ } }, "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", "dev": true, "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.1" + }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -10001,19 +9134,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-string": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", @@ -10472,16 +9592,6 @@ "json-buffer": "3.0.1" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/klaw-sync": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", @@ -10491,17 +9601,6 @@ "graceful-fs": "^4.1.11" } }, - "node_modules/launch-editor": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.11.1.tgz", - "integrity": "sha512-SEET7oNfgSaB6Ym0jufAdCeo3meJVeCaaDyzRygy0xsp2BFKCprcfHljTq4QkzTLUxEKkFK6OK4811YM2oSrRg==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^1.1.1", - "shell-quote": "^1.8.3" - } - }, "node_modules/leaflet": { "version": "1.9.4", "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", @@ -10566,13 +9665,12 @@ "license": "MIT" }, "node_modules/linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "license": "MIT", "dependencies": { - "uc.micro": "^1.0.1" + "uc.micro": "^2.0.0" } }, "node_modules/linkifyjs": { @@ -10582,64 +9680,48 @@ "license": "MIT" }, "node_modules/lint-staged": { - "version": "15.5.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.5.2.tgz", - "integrity": "sha512-YUSOLq9VeRNAo/CTaVmhGDKG+LBtA8KF1X4K5+ykMSwWST1vDxJRB2kv2COgLb1fvpCo+A/y9A0G0znNVmdx4w==", + "version": "16.2.6", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.6.tgz", + "integrity": "sha512-s1gphtDbV4bmW1eylXpVMk2u7is7YsrLl8hzrtvC70h4ByhcMLZFY01Fx05ZUDNuv1H8HO4E+e2zgejV1jVwNw==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^5.4.1", - "commander": "^13.1.0", - "debug": "^4.4.0", - "execa": "^8.0.1", - "lilconfig": "^3.1.3", - "listr2": "^8.2.5", + "commander": "^14.0.1", + "listr2": "^9.0.5", "micromatch": "^4.0.8", + "nano-spawn": "^2.0.0", "pidtree": "^0.6.0", "string-argv": "^0.3.2", - "yaml": "^2.7.0" + "yaml": "^2.8.1" }, "bin": { "lint-staged": "bin/lint-staged.js" }, "engines": { - "node": ">=18.12.0" + "node": ">=20.17" }, "funding": { "url": "https://opencollective.com/lint-staged" } }, - "node_modules/lint-staged/node_modules/chalk": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", - "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/lint-staged/node_modules/commander": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", - "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.1.tgz", + "integrity": "sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/listr2": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.3.3.tgz", - "integrity": "sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz", + "integrity": "sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==", "dev": true, "license": "MIT", "dependencies": { - "cli-truncate": "^4.0.0", + "cli-truncate": "^5.0.0", "colorette": "^2.0.20", "eventemitter3": "^5.0.1", "log-update": "^6.1.0", @@ -10647,7 +9729,7 @@ "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/listr2/node_modules/ansi-styles": { @@ -10706,23 +9788,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/local-pkg": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz", - "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mlly": "^1.7.3", - "pkg-types": "^1.2.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -10806,39 +9871,6 @@ "dev": true, "license": "MIT" }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", - "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.3.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", - "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, "node_modules/log-update/node_modules/string-width": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", @@ -10982,26 +10014,6 @@ "loose-envify": "cli.js" } }, - "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.1" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, "node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", @@ -11009,9 +10021,9 @@ "license": "ISC" }, "node_modules/magic-string": { - "version": "0.30.19", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", - "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" @@ -11046,61 +10058,20 @@ } }, "node_modules/markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dev": true, + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "license": "MIT", "dependencies": { "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/markdown-it-anchor": { - "version": "8.6.7", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", - "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", - "dev": true, - "license": "Unlicense", - "peerDependencies": { - "@types/markdown-it": "*", - "markdown-it": "*" - } - }, - "node_modules/markdown-it-attrs": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/markdown-it-attrs/-/markdown-it-attrs-4.3.1.tgz", - "integrity": "sha512-/ko6cba+H6gdZ0DOw7BbNMZtfuJTRp9g/IrGIuz8lYc/EfnmWRpaR3CFPnNbVz0LDvF8Gf1hFGPqrQqq7De0rg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "markdown-it": ">= 9.0.0" - } - }, - "node_modules/markdown-it-emoji": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz", - "integrity": "sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/markdown-it/node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "markdown-it": "bin/markdown-it.mjs" } }, "node_modules/math-intrinsics": { @@ -11113,17 +10084,9 @@ } }, "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true, - "license": "MIT" - }, - "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "license": "MIT" }, "node_modules/merge2": { @@ -11171,19 +10134,6 @@ "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/mimic-function": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", @@ -11240,26 +10190,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/mlly": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", - "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.15.0", - "pathe": "^2.0.3", - "pkg-types": "^1.3.1", - "ufo": "^1.6.1" - } - }, - "node_modules/mlly/node_modules/pathe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "dev": true, - "license": "MIT" - }, "node_modules/mock-apollo-client": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/mock-apollo-client/-/mock-apollo-client-1.4.0.tgz", @@ -11270,20 +10200,10 @@ "@apollo/client": "^3.0.0" } }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "dev": true, "license": "MIT", "engines": { @@ -11308,6 +10228,19 @@ "thenify-all": "^1.0.0" } }, + "node_modules/nano-spawn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-2.0.0.tgz", + "integrity": "sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/nano-spawn?sponsor=1" + } + }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", @@ -11342,17 +10275,6 @@ "node": ">=v0.2.0" } }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, "node_modules/node-addon-api": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", @@ -11401,35 +10323,6 @@ "node": ">=0.10.0" } }, - "node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -11564,19 +10457,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -11588,16 +10468,16 @@ } }, "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, "license": "MIT", "dependencies": { - "mimic-fn": "^4.0.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -11732,17 +10612,6 @@ "url": "https://github.com/sponsors/harlan-zw" } }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -11788,27 +10657,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "node_modules/patch-package": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.1.tgz", @@ -11838,26 +10686,6 @@ "npm": ">5" } }, - "node_modules/patch-package/node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -11920,22 +10748,12 @@ } }, "node_modules/pathe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", "dev": true, "license": "MIT" }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/phoenix": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/phoenix/-/phoenix-1.8.1.tgz", @@ -11991,25 +10809,6 @@ "node": ">= 6" } }, - "node_modules/pkg-types": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", - "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "confbox": "^0.1.8", - "mlly": "^1.7.4", - "pathe": "^2.0.1" - } - }, - "node_modules/pkg-types/node_modules/pathe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "dev": true, - "license": "MIT" - }, "node_modules/plausible-tracker": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/plausible-tracker/-/plausible-tracker-0.3.9.tgz", @@ -12051,21 +10850,6 @@ "node": ">=18" } }, - "node_modules/playwright/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "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", @@ -12661,19 +11445,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/prettier-eslint/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/prettier-eslint/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -12690,27 +11461,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/prettier-eslint/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/prettier-eslint/node_modules/minimatch": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", @@ -12727,16 +11477,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/prettier-eslint/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/prettier-eslint/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -12968,54 +11708,6 @@ "prosemirror-model": "^1.25.0" } }, - "node_modules/prosemirror-markdown/node_modules/@types/markdown-it": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", - "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", - "license": "MIT", - "dependencies": { - "@types/linkify-it": "^5", - "@types/mdurl": "^2" - } - }, - "node_modules/prosemirror-markdown/node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", - "license": "MIT", - "dependencies": { - "uc.micro": "^2.0.0" - } - }, - "node_modules/prosemirror-markdown/node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" - }, - "bin": { - "markdown-it": "bin/markdown-it.mjs" - } - }, - "node_modules/prosemirror-markdown/node_modules/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", - "license": "MIT" - }, - "node_modules/prosemirror-markdown/node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", - "license": "MIT" - }, "node_modules/prosemirror-menu": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.5.tgz", @@ -13058,9 +11750,9 @@ } }, "node_modules/prosemirror-state": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz", - "integrity": "sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.4.tgz", + "integrity": "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==", "license": "MIT", "dependencies": { "prosemirror-model": "^1.0.0", @@ -13208,15 +11900,17 @@ } }, "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, "engines": { - "node": ">=8.10.0" + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, "node_modules/reflect.getprototypeof": { @@ -13432,22 +12126,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", @@ -13571,13 +12249,13 @@ } }, "node_modules/rollup-plugin-visualizer": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.14.0.tgz", - "integrity": "sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-6.0.5.tgz", + "integrity": "sha512-9+HlNgKCVbJDs8tVtjQ43US12eqaiHyyiLMdBwQ7vSZPiHMysGNo2E88TAp1si5wx8NAoYriI2A5kuKfIakmJg==", "dev": true, "license": "MIT", "dependencies": { - "open": "^8.4.0", + "open": "^8.0.0", "picomatch": "^4.0.2", "source-map": "^0.7.4", "yargs": "^17.5.1" @@ -13589,7 +12267,7 @@ "node": ">=18" }, "peerDependencies": { - "rolldown": "1.x", + "rolldown": "1.x || ^1.0.0-beta", "rollup": "2.x || 3.x || 4.x" }, "peerDependenciesMeta": { @@ -13686,19 +12364,6 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "license": "0BSD" }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/safe-array-concat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", @@ -13817,36 +12482,6 @@ "@parcel/watcher": "^2.4.1" } }, - "node_modules/sass/node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/sass/node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", @@ -13860,20 +12495,6 @@ "node": ">=v12.22.7" } }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/semver": { "version": "7.7.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", @@ -13886,18 +12507,6 @@ "node": ">=10" } }, - "node_modules/sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -13977,27 +12586,6 @@ "node": ">=8" } }, - "node_modules/shell-quote": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", - "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/shiki-es": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/shiki-es/-/shiki-es-0.2.0.tgz", - "integrity": "sha512-RbRMD+IuJJseSZljDdne9ThrUYrwBwJR04FvN4VXpfsU3MNID5VJGHLAD5je/HGThCyEKNgH+nEkSFEWKD7C3Q==", - "deprecated": "Please migrate to https://github.com/antfu/shikiji", - "dev": true, - "license": "MIT" - }, "node_modules/side-channel": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", @@ -14094,9 +12682,9 @@ } }, "node_modules/sirv": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", - "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", "dev": true, "license": "MIT", "dependencies": { @@ -14105,44 +12693,30 @@ "totalist": "^3.0.0" }, "engines": { - "node": ">= 10" - } - }, - "node_modules/sirv/node_modules/mrmime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", - "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", + "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/chalk/slice-ansi?sponsor=1" @@ -14168,17 +12742,6 @@ "dev": true, "license": "MIT" }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dev": true, - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "node_modules/sortablejs": { "version": "1.14.0", "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz", @@ -14233,13 +12796,6 @@ "dev": true, "license": "MIT" }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", @@ -14247,16 +12803,6 @@ "dev": true, "license": "MIT" }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/std-env": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", @@ -14505,16 +13051,6 @@ "node": ">=4" } }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/strip-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", @@ -14525,19 +13061,6 @@ "node": ">=10" } }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -14551,33 +13074,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-literal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz", - "integrity": "sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-tokens": "^9.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/strip-literal/node_modules/js-tokens": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", - "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/style-mod": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", - "integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==", - "dev": true, - "license": "MIT" - }, "node_modules/sucrase": { "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", @@ -14702,16 +13198,40 @@ "node": ">=14.0.0" } }, - "node_modules/tailwindcss/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==", - "license": "ISC", + "node_modules/tailwindcss/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.3" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">=10.13.0" + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/tailwindcss/node_modules/chokidar/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/tailwindcss/node_modules/postcss-selector-parser": { @@ -14727,6 +13247,18 @@ "node": ">=4" } }, + "node_modules/tailwindcss/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/temp-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", @@ -14795,67 +13327,6 @@ "dev": true, "license": "MIT" }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/test-exclude/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", - "dev": true, - "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/test-exclude/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/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -14900,20 +13371,65 @@ "dev": true, "license": "MIT" }, - "node_modules/tinypool": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", - "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", "engines": { - "node": ">=14.0.0" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/tinyspy": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", - "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tinyrainbow": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", "dev": true, "license": "MIT", "engines": { @@ -15076,16 +13592,6 @@ "node": ">= 0.8.0" } }, - "node_modules/type-detect": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", - "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/type-fest": { "version": "0.16.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", @@ -15216,17 +13722,9 @@ } }, "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true, - "license": "MIT" - }, - "node_modules/ufo": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", - "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "license": "MIT" }, "node_modules/unbox-primitive": { @@ -15248,13 +13746,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", - "dev": true, - "license": "MIT" - }, "node_modules/unfetch": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-5.0.0.tgz", @@ -15345,16 +13836,6 @@ "node": ">= 10.0.0" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", @@ -15396,26 +13877,6 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -15443,32 +13904,25 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT" }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/vite": { - "version": "5.4.21", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", - "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "version": "7.1.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.12.tgz", + "integrity": "sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^20.19.0 || >=22.12.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -15477,19 +13931,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -15510,45 +13970,27 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, - "node_modules/vite-node": { - "version": "0.34.7", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.34.7.tgz", - "integrity": "sha512-0Yzb96QzHmqIKIs/x2q/sqG750V/EF6yDkS2p1WjJc1W2bgRSuQjf5vB9HY8h2nVb5j4pO5paS5Npcv3s69YUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.3.4", - "mlly": "^1.4.0", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0-0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": ">=v14.18.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, "node_modules/vite-plugin-pwa": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.19.8.tgz", - "integrity": "sha512-e1oK0dfhzhDhY3VBuML6c0h8Xfx6EkOVYqolj7g+u8eRfdauZe5RLteCIA/c5gH0CBQ0CNFAuv/AFTx4Z7IXTw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-1.1.0.tgz", + "integrity": "sha512-VsSpdubPzXhHWVINcSx6uHRMpOHVHQcHsef1QgkOlEoaIDAlssFEW88LBq1a59BuokAhsh2kUDJbaX1bZv4Bjw==", "dev": true, "license": "MIT", "dependencies": { - "debug": "^4.3.4", - "fast-glob": "^3.3.2", + "debug": "^4.3.6", "pretty-bytes": "^6.1.1", - "workbox-build": "^7.0.0", - "workbox-window": "^7.0.0" + "tinyglobby": "^0.2.10", + "workbox-build": "^7.3.0", + "workbox-window": "^7.3.0" }, "engines": { "node": ">=16.0.0" @@ -15557,10 +13999,10 @@ "url": "https://github.com/sponsors/antfu" }, "peerDependencies": { - "@vite-pwa/assets-generator": "^0.2.4", - "vite": "^3.1.0 || ^4.0.0 || ^5.0.0", - "workbox-build": "^7.0.0", - "workbox-window": "^7.0.0" + "@vite-pwa/assets-generator": "^1.0.0", + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "workbox-build": "^7.3.0", + "workbox-window": "^7.3.0" }, "peerDependenciesMeta": { "@vite-pwa/assets-generator": { @@ -15568,48 +14010,97 @@ } } }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/vitest": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.1.tgz", - "integrity": "sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.2.tgz", + "integrity": "sha512-SXrA2ZzOPulX479d8W13RqKSmvHb9Bfg71eW7Fbs6ZjUFcCCXyt/OzFCkNyiUE8mFlPHa4ZVUGw0ky+5ndKnrg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "1.6.1", - "@vitest/runner": "1.6.1", - "@vitest/snapshot": "1.6.1", - "@vitest/spy": "1.6.1", - "@vitest/utils": "1.6.1", - "acorn-walk": "^8.3.2", - "chai": "^4.3.10", - "debug": "^4.3.4", - "execa": "^8.0.1", - "local-pkg": "^0.5.0", - "magic-string": "^0.30.5", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "std-env": "^3.5.0", - "strip-literal": "^2.0.0", - "tinybench": "^2.5.1", - "tinypool": "^0.8.3", - "vite": "^5.0.0", - "vite-node": "1.6.1", - "why-is-node-running": "^2.2.2" + "@vitest/expect": "4.0.2", + "@vitest/mocker": "4.0.2", + "@vitest/pretty-format": "4.0.2", + "@vitest/runner": "4.0.2", + "@vitest/snapshot": "4.0.2", + "@vitest/spy": "4.0.2", + "@vitest/utils": "4.0.2", + "debug": "^4.4.3", + "es-module-lexer": "^1.7.0", + "expect-type": "^1.2.2", + "magic-string": "^0.30.19", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.0.3", + "vite": "^6.0.0 || ^7.0.0", + "why-is-node-running": "^2.3.0" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "@edge-runtime/vm": "*", - "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "1.6.1", - "@vitest/ui": "1.6.1", + "@types/debug": "^4.1.12", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.0.2", + "@vitest/browser-preview": "4.0.2", + "@vitest/browser-webdriverio": "4.0.2", + "@vitest/ui": "4.0.2", "happy-dom": "*", "jsdom": "*" }, @@ -15617,10 +14108,19 @@ "@edge-runtime/vm": { "optional": true }, + "@types/debug": { + "optional": true + }, "@types/node": { "optional": true }, - "@vitest/browser": { + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { "optional": true }, "@vitest/ui": { @@ -15634,27 +14134,17 @@ } } }, - "node_modules/vitest/node_modules/vite-node": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz", - "integrity": "sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==", + "node_modules/vitest/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.3.4", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "vite": "^5.0.0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": ">=12" }, "funding": { - "url": "https://opencollective.com/vitest" + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/vue": { @@ -15843,9 +14333,9 @@ } }, "node_modules/vue-router-mock": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vue-router-mock/-/vue-router-mock-1.1.0.tgz", - "integrity": "sha512-RhKhxkiZh2zB2eRkzfcCILQQ0ZUc0tk7CE2ZC1PGJYi5GOU+2QQAGHtTCgb8V4B/OPm9ws+X5Q9SQB5vyTXxBQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vue-router-mock/-/vue-router-mock-2.0.0.tgz", + "integrity": "sha512-UmfJ9C4odcC8P2d8+yZWGPnjK7MMc1Uk3bmchpq+8lcGEdpwrO18RPQOMUEiwAjqjTVN5Z955Weaz2Ev9UrXMw==", "dev": true, "license": "MIT", "peerDependencies": { diff --git a/package.json b/package.json index 5bf4dd8f0..343734b2a 100644 --- a/package.json +++ b/package.json @@ -10,9 +10,6 @@ "format": "prettier . --write", "build:assets": "vite build", "build:pictures": "bash ./scripts/build/pictures.sh", - "story:dev": "histoire dev", - "story:build": "histoire build", - "story:preview": "histoire preview", "test": "vitest", "coverage": "vitest run --coverage", "prepare": "husky", @@ -112,7 +109,6 @@ }, "devDependencies": { "@eslint/js": "^9.38.0", - "@histoire/plugin-vue": "^0.17.1", "@playwright/test": "^1.25.1", "@rushstack/eslint-patch": "^1.1.4", "@tailwindcss/forms": "^0.5.2", @@ -125,9 +121,9 @@ "@types/ngeohash": "^0.6.2", "@types/phoenix": "^1.5.2", "@types/sanitize-html": "^2.5.0", - "@vitejs/plugin-vue": "^5.0.0", - "@vitest/coverage-v8": "^1.2.2", - "@vitest/ui": "^1.2.2", + "@vitejs/plugin-vue": "^6.0.1", + "@vitest/coverage-v8": "^4.0.2", + "@vitest/ui": "^4.0.2", "@vue/eslint-config-prettier": "^10.2.0", "@vue/eslint-config-typescript": "^14.6.0", "@vue/test-utils": "^2.0.2", @@ -138,21 +134,20 @@ "eslint-plugin-vue": "^10.5.1", "flush-promises": "^1.0.2", "globals": "^16.4.0", - "histoire": "^0.17.0", "husky": "^9.0.10", "jsdom": "^24.0.0", - "lint-staged": "^15.1.0", + "lint-staged": "^16.2.6", "mock-apollo-client": "^1.1.0", "prettier": "^3.0.0", "prettier-eslint": "^16.1.2", - "rollup-plugin-visualizer": "^5.7.1", + "rollup-plugin-visualizer": "^6.0.5", "sass": "^1.34.1", "typescript": "^5.9.3", "typescript-eslint": "^8.46.2", - "vite": "^5.0.12", - "vite-plugin-pwa": "^0.19.0", - "vitest": "^1.2.2", + "vite": "^7.1.12", + "vite-plugin-pwa": "^1.1.0", + "vitest": "^4.0.2", "vue-i18n-extract": "^2.0.4", - "vue-router-mock": "^1.0.0" + "vue-router-mock": "^2.0.0" } } diff --git a/src/components/About/InstanceContactLink.story.vue b/src/components/About/InstanceContactLink.story.vue deleted file mode 100644 index 6369bd2c4..000000000 --- a/src/components/About/InstanceContactLink.story.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/src/components/Account/ActorCard.story.vue b/src/components/Account/ActorCard.story.vue deleted file mode 100644 index ee5f2e830..000000000 --- a/src/components/Account/ActorCard.story.vue +++ /dev/null @@ -1,52 +0,0 @@ - - diff --git a/src/components/Account/ActorInline.story.vue b/src/components/Account/ActorInline.story.vue deleted file mode 100644 index 7ab2923f8..000000000 --- a/src/components/Account/ActorInline.story.vue +++ /dev/null @@ -1,52 +0,0 @@ - - diff --git a/src/components/Account/PopoverActorCard.story.vue b/src/components/Account/PopoverActorCard.story.vue deleted file mode 100644 index 25a5950eb..000000000 --- a/src/components/Account/PopoverActorCard.story.vue +++ /dev/null @@ -1,59 +0,0 @@ - - - diff --git a/src/components/Account/ProfileOnboarding.story.vue b/src/components/Account/ProfileOnboarding.story.vue deleted file mode 100644 index 604b118e1..000000000 --- a/src/components/Account/ProfileOnboarding.story.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - diff --git a/src/components/Address/AddressInfo.story.vue b/src/components/Address/AddressInfo.story.vue deleted file mode 100644 index 97ae8821e..000000000 --- a/src/components/Address/AddressInfo.story.vue +++ /dev/null @@ -1,31 +0,0 @@ - - diff --git a/src/components/Address/InlineAddress.story.vue b/src/components/Address/InlineAddress.story.vue deleted file mode 100644 index da69eab8f..000000000 --- a/src/components/Address/InlineAddress.story.vue +++ /dev/null @@ -1,27 +0,0 @@ - - diff --git a/src/components/Categories/CategoryCard.story.vue b/src/components/Categories/CategoryCard.story.vue deleted file mode 100644 index 95fec5c33..000000000 --- a/src/components/Categories/CategoryCard.story.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - diff --git a/src/components/Discussion/DiscussionComment.story.vue b/src/components/Discussion/DiscussionComment.story.vue deleted file mode 100644 index 86621443f..000000000 --- a/src/components/Discussion/DiscussionComment.story.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - diff --git a/src/components/Discussion/DiscussionListItem.story.vue b/src/components/Discussion/DiscussionListItem.story.vue deleted file mode 100644 index 7f075f3c2..000000000 --- a/src/components/Discussion/DiscussionListItem.story.vue +++ /dev/null @@ -1,33 +0,0 @@ - - - diff --git a/src/components/Event/DateCalendarIcon.story.vue b/src/components/Event/DateCalendarIcon.story.vue deleted file mode 100644 index e6b55dcb3..000000000 --- a/src/components/Event/DateCalendarIcon.story.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - diff --git a/src/components/Event/OrganizerPicker.story.vue b/src/components/Event/OrganizerPicker.story.vue deleted file mode 100644 index a58dcd68d..000000000 --- a/src/components/Event/OrganizerPicker.story.vue +++ /dev/null @@ -1,56 +0,0 @@ - - diff --git a/src/components/Event/OrganizerPickerWrapper.story.vue b/src/components/Event/OrganizerPickerWrapper.story.vue deleted file mode 100644 index 0906588d0..000000000 --- a/src/components/Event/OrganizerPickerWrapper.story.vue +++ /dev/null @@ -1,89 +0,0 @@ - - diff --git a/src/components/Event/ParticipationButton.story.vue b/src/components/Event/ParticipationButton.story.vue deleted file mode 100644 index 594a3353d..000000000 --- a/src/components/Event/ParticipationButton.story.vue +++ /dev/null @@ -1,114 +0,0 @@ - - - diff --git a/src/components/Event/ShareEventModal.story.vue b/src/components/Event/ShareEventModal.story.vue deleted file mode 100644 index c153fdc5a..000000000 --- a/src/components/Event/ShareEventModal.story.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - diff --git a/src/components/Event/SkeletonEventResult.story.vue b/src/components/Event/SkeletonEventResult.story.vue deleted file mode 100644 index 079d01ba7..000000000 --- a/src/components/Event/SkeletonEventResult.story.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/src/components/Event/TagInput.story.vue b/src/components/Event/TagInput.story.vue deleted file mode 100644 index 19bced808..000000000 --- a/src/components/Event/TagInput.story.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/src/components/Group/GroupCard.story.vue b/src/components/Group/GroupCard.story.vue deleted file mode 100644 index 56772549b..000000000 --- a/src/components/Group/GroupCard.story.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/src/components/Group/GroupMemberCard.story.vue b/src/components/Group/GroupMemberCard.story.vue deleted file mode 100644 index 461d2177c..000000000 --- a/src/components/Group/GroupMemberCard.story.vue +++ /dev/null @@ -1,91 +0,0 @@ - - - diff --git a/src/components/Home/CategoriesPreview.story.vue b/src/components/Home/CategoriesPreview.story.vue deleted file mode 100644 index dc788a9df..000000000 --- a/src/components/Home/CategoriesPreview.story.vue +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/src/components/Home/MobilizonPresentation.story.vue b/src/components/Home/MobilizonPresentation.story.vue deleted file mode 100644 index 5d66f6045..000000000 --- a/src/components/Home/MobilizonPresentation.story.vue +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/src/components/Home/SearchFields.story.vue b/src/components/Home/SearchFields.story.vue deleted file mode 100644 index fd3f8112e..000000000 --- a/src/components/Home/SearchFields.story.vue +++ /dev/null @@ -1,22 +0,0 @@ - - diff --git a/src/components/Home/UnloggedIntroduction.story.vue b/src/components/Home/UnloggedIntroduction.story.vue deleted file mode 100644 index 4958f4e22..000000000 --- a/src/components/Home/UnloggedIntroduction.story.vue +++ /dev/null @@ -1,23 +0,0 @@ - - diff --git a/src/components/Post/PostListItem.story.vue b/src/components/Post/PostListItem.story.vue deleted file mode 100644 index 61d583900..000000000 --- a/src/components/Post/PostListItem.story.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - diff --git a/src/components/Post/SharePostModal.story.vue b/src/components/Post/SharePostModal.story.vue deleted file mode 100644 index 9531800ea..000000000 --- a/src/components/Post/SharePostModal.story.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/src/components/User/AuthProviders.story.vue b/src/components/User/AuthProviders.story.vue deleted file mode 100644 index ee88b54a1..000000000 --- a/src/components/User/AuthProviders.story.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/src/components/core/MaterialIcon.story.vue b/src/components/core/MaterialIcon.story.vue deleted file mode 100644 index 1b6a20a58..000000000 --- a/src/components/core/MaterialIcon.story.vue +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/src/histoire.setup.ts b/src/histoire.setup.ts deleted file mode 100644 index b9757b419..000000000 --- a/src/histoire.setup.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { defineSetupVue3 } from "@histoire/plugin-vue"; -import { orugaConfig } from "./oruga-config"; -import { i18n } from "./utils/i18n"; -import Oruga from "@oruga-ui/oruga-next"; -import "@oruga-ui/oruga-next/dist/oruga-full-vars.css"; -import "./assets/tailwind.css"; -import "./assets/oruga-tailwindcss.css"; -import locale from "date-fns/locale/en-US"; -import MaterialIcon from "./components/core/MaterialIcon.vue"; - -export const setupVue3 = defineSetupVue3(({ app }) => { - // Vue plugin - app.use(i18n); - app.use(Oruga, orugaConfig); - app.component("material-icon", MaterialIcon); - app.provide("dateFnsLocale", locale); -}); diff --git a/tests/unit/specs/components/About/InstanceContactLink.spec.ts b/tests/unit/specs/components/About/InstanceContactLink.spec.ts new file mode 100644 index 000000000..056f5acd0 --- /dev/null +++ b/tests/unit/specs/components/About/InstanceContactLink.spec.ts @@ -0,0 +1,74 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import InstanceContactLink from "@/components/About/InstanceContactLink.vue"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const generateWrapper = (props: any = {}) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(InstanceContactLink, { + props: props, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("InstanceContactLink", () => { + it("Show empty", async () => { + const wrapper = generateWrapper(); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show string", async () => { + const wrapper = generateWrapper({ + contact: "someone", + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show email", async () => { + const wrapper = generateWrapper({ + contact: "someone@somewhere.tld", + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show url", async () => { + const wrapper = generateWrapper({ + contact: "https://somewhere.com", + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/About/__snapshots__/InstanceContactLink.spec.ts.snap b/tests/unit/specs/components/About/__snapshots__/InstanceContactLink.spec.ts.snap new file mode 100644 index 000000000..a8d8505d8 --- /dev/null +++ b/tests/unit/specs/components/About/__snapshots__/InstanceContactLink.spec.ts.snap @@ -0,0 +1,9 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`InstanceContactLink > Show email 1`] = `"

someone@somewhere.tld

"`; + +exports[`InstanceContactLink > Show empty 1`] = `"

contact uninformed

"`; + +exports[`InstanceContactLink > Show string 1`] = `"

someone

"`; + +exports[`InstanceContactLink > Show url 1`] = `"

somewhere.com

"`; diff --git a/tests/unit/specs/components/Account/ActorCard.spec.ts b/tests/unit/specs/components/Account/ActorCard.spec.ts new file mode 100644 index 000000000..1f1f7c1ff --- /dev/null +++ b/tests/unit/specs/components/Account/ActorCard.spec.ts @@ -0,0 +1,87 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import ActorCard from "@/components/Account/ActorCard.vue"; +import { reactive, ref } from "vue"; +import { IActor } from "@/types/actor"; +import { ActorType } from "@/types/enums"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const avatarUrl = ref( + "https://stockage.framapiaf.org/framapiaf/accounts/avatars/000/000/399/original/52b08a3e80b43d40.jpg" +); + +const stateLocal = reactive({ + name: "Thomas Citharel", + preferredUsername: "tcit", + avatar: null, + domain: null, + url: "", + summary: "", + suspended: false, + type: ActorType.PERSON, +}); + +const stateRemote = reactive({ + name: "Framasoft", + preferredUsername: "framasoft", + avatar: { url: avatarUrl.value, id: "", name: "", alt: "", metadata: {} }, + domain: "framapiaf.org", + url: "", + summary: "", + suspended: false, + type: ActorType.PERSON, +}); + +const generateWrapper = (props: any) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(ActorCard, { + props: props, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("ActorCard", () => { + it("Show local", async () => { + const wrapper = generateWrapper({ + actor: stateLocal, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show simple", async () => { + const wrapper = generateWrapper({ + actor: stateRemote, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Account/ActorInline.spec.ts b/tests/unit/specs/components/Account/ActorInline.spec.ts new file mode 100644 index 000000000..67a1b1db4 --- /dev/null +++ b/tests/unit/specs/components/Account/ActorInline.spec.ts @@ -0,0 +1,87 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import ActorInline from "@/components/Account/ActorInline.vue"; +import { reactive, ref } from "vue"; +import { IActor } from "@/types/actor"; +import { ActorType } from "@/types/enums"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const generateWrapper = (props: any) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(ActorInline, { + props: props, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +const avatarUrl = ref( + "https://stockage.framapiaf.org/framapiaf/accounts/avatars/000/000/399/original/52b08a3e80b43d40.jpg" +); + +const stateLocal = reactive({ + name: "Thomas Citharel", + preferredUsername: "tcit", + avatar: null, + domain: null, + url: "", + summary: "", + suspended: false, + type: ActorType.PERSON, +}); + +const stateRemote = reactive({ + name: "Framasoft", + preferredUsername: "framasoft", + avatar: { url: avatarUrl.value, id: "", name: "", alt: "", metadata: {} }, + domain: "framapiaf.org", + url: "", + summary: "", + suspended: false, + type: ActorType.PERSON, +}); + +describe("ActorInline", () => { + it("Show local", async () => { + const wrapper = generateWrapper({ + actor: stateLocal, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show remote", async () => { + const wrapper = generateWrapper({ + actor: stateRemote, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Account/PopoverActorCard.spec.ts b/tests/unit/specs/components/Account/PopoverActorCard.spec.ts new file mode 100644 index 000000000..691cb9eb4 --- /dev/null +++ b/tests/unit/specs/components/Account/PopoverActorCard.spec.ts @@ -0,0 +1,90 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient, requestHandlers } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import PopoverActorCard from "@/components/Account/PopoverActorCard.vue"; +import { ActorType } from "@/types/enums"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const baseActorAvatar = { + id: "", + name: "", + alt: "", + metadata: {}, + url: "https://social.tcit.fr/system/accounts/avatars/000/000/001/original/a28c50ce5f2b13fd.jpg", +}; + +const baseActor = { + name: "Thomas Citharel", + preferredUsername: "tcit", + avatar: baseActorAvatar, + domain: null, + url: "", + summary: "", + suspended: false, + type: ActorType.PERSON, +}; + +const group = { + ...baseActor, + name: "Framasoft", + preferredUsername: "framasoft", + domain: "mobilizon.fr", + avatar: { + ...baseActorAvatar, + url: "https://stockage.framapiaf.org/framapiaf/accounts/avatars/000/000/399/original/52b08a3e80b43d40.jpg", + }, +}; + +const generateWrapper = (actor: any) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(PopoverActorCard, { + props: { + actor: actor, + }, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + slots: { + default: "
Popover me !
", + }, + }); +}; + +describe("PopoverActorCard", () => { + it("Show Person", async () => { + const wrapper = generateWrapper(baseActor); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show Group", async () => { + const wrapper = generateWrapper(group); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Account/ProfileOnboarding.spec.ts b/tests/unit/specs/components/Account/ProfileOnboarding.spec.ts new file mode 100644 index 000000000..77b52c300 --- /dev/null +++ b/tests/unit/specs/components/Account/ProfileOnboarding.spec.ts @@ -0,0 +1,63 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import ProfileOnboarding from "@/components/Account/ProfileOnboarding.vue"; +import { ActorType } from "@/types/enums"; +import { IPerson } from "@/types/actor"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const baseActor: IPerson = { + name: "Thomas Citharel", + preferredUsername: "tcit", + avatar: null, + domain: null, + url: "", + summary: "", + suspended: false, + type: ActorType.PERSON, +}; + +const generateWrapper = (props: any) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(ProfileOnboarding, { + props: props, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("ProfileOnboarding", () => { + it("Show simple", async () => { + const wrapper = generateWrapper({ + currentActor: baseActor, + instanceName: "Instance name", + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Account/__snapshots__/ActorCard.spec.ts.snap b/tests/unit/specs/components/Account/__snapshots__/ActorCard.spec.ts.snap new file mode 100644 index 000000000..10eb5f58f --- /dev/null +++ b/tests/unit/specs/components/Account/__snapshots__/ActorCard.spec.ts.snap @@ -0,0 +1,103 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`ActorCard > Show local 1`] = ` +"
+
+
+
Thomas Citharel
+

@tcit

+ + +
+
+
+" +`; + +exports[`ActorCard > Show simple 1`] = ` +"
+
+
+
+
+
Framasoft
+

@framasoft@framapiaf.org

+ + +
+
+
+" +`; diff --git a/tests/unit/specs/components/Account/__snapshots__/ActorInline.spec.ts.snap b/tests/unit/specs/components/Account/__snapshots__/ActorInline.spec.ts.snap new file mode 100644 index 000000000..afe458152 --- /dev/null +++ b/tests/unit/specs/components/Account/__snapshots__/ActorInline.spec.ts.snap @@ -0,0 +1,23 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`ActorInline > Show local 1`] = ` +"
+
+
+

Thomas Citharel

+

@tcit

+
+
" +`; + +exports[`ActorInline > Show remote 1`] = ` +"
+
+
+
+
+

Framasoft

+

@framasoft@framapiaf.org

+
+
" +`; diff --git a/tests/unit/specs/components/Account/__snapshots__/PopoverActorCard.spec.ts.snap b/tests/unit/specs/components/Account/__snapshots__/PopoverActorCard.spec.ts.snap new file mode 100644 index 000000000..314ce49ed --- /dev/null +++ b/tests/unit/specs/components/Account/__snapshots__/PopoverActorCard.spec.ts.snap @@ -0,0 +1,13 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`PopoverActorCard > Show Group 1`] = ` +" +
Popover me !
+
" +`; + +exports[`PopoverActorCard > Show Person 1`] = ` +" +
Popover me !
+
" +`; diff --git a/tests/unit/specs/components/Account/__snapshots__/ProfileOnboarding.spec.ts.snap b/tests/unit/specs/components/Account/__snapshots__/ProfileOnboarding.spec.ts.snap new file mode 100644 index 000000000..7aa9e5658 --- /dev/null +++ b/tests/unit/specs/components/Account/__snapshots__/ProfileOnboarding.spec.ts.snap @@ -0,0 +1,13 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`ProfileOnboarding > Show simple 1`] = ` +"
+

Profiles and federation

+
+

Mobilizon uses a system of profiles to compartiment your activities. You will be able to create as many profiles as you want.

+
+

Mobilizon is a federated software, meaning you can interact - depending on your admin's federation settings - with content from other instances, such as joining groups or events that were created elsewhere.This instance, Instance name (localhost), hosts your profile, so remember its name.

+
+

If you are being asked for your federated indentity, it's composed of your username and your instance. For instance, the federated identity for your first profile is:

+
tcit@localhost
" +`; diff --git a/tests/unit/specs/components/Address/AddressInfo.spec.ts b/tests/unit/specs/components/Address/AddressInfo.spec.ts new file mode 100644 index 000000000..870cac9bd --- /dev/null +++ b/tests/unit/specs/components/Address/AddressInfo.spec.ts @@ -0,0 +1,73 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import AddressInfo from "@/components/Address/AddressInfo.vue"; +import { IAddress } from "@/types/address.model"; +import { reactive } from "vue"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const generateWrapper = (props: any) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(AddressInfo, { + props: props, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +const address = reactive({ + description: "Locaux Motiv", + street: "10 Rue Jangot", + locality: "Lyon", + postalCode: "69007", + region: "Auvergne Rhône-Alpes", + country: "France", + type: "", + timezone: "Europe/Dublin", +}); + +describe("AddressInfo", () => { + it("Show Basic", async () => { + const wrapper = generateWrapper({ + address: address, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show Basic with timezone", async () => { + const wrapper = generateWrapper({ + address: address, + showTimezone: true, + userTimezone: "Europe/Berlin", + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Address/InlineAddress.spec.ts b/tests/unit/specs/components/Address/InlineAddress.spec.ts new file mode 100644 index 000000000..9ee9b3993 --- /dev/null +++ b/tests/unit/specs/components/Address/InlineAddress.spec.ts @@ -0,0 +1,71 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import { IAddress } from "@/types/address.model"; +import { reactive } from "vue"; +import InlineAddress from "@/components/Address/InlineAddress.vue"; + +const address = reactive({ + description: "Locaux Motiv", + street: "10 Rue Jangot", + locality: "Lyon", + postalCode: "69007", + region: "Auvergne Rhône-Alpes", + country: "France", + type: "", + timezone: "Europe/Dublin", +}); + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const generateWrapper = (props: any = {}) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(InlineAddress, { + props: props, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("InlineAddress", () => { + it("Show with locality", async () => { + const wrapper = generateWrapper({ + physicalAddress: address, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show without locality", async () => { + const wrapper = generateWrapper({ + physicalAddress: { ...address, locality: null }, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Address/__snapshots__/AddressInfo.spec.ts.snap b/tests/unit/specs/components/Address/__snapshots__/AddressInfo.spec.ts.snap new file mode 100644 index 000000000..b0a7530b6 --- /dev/null +++ b/tests/unit/specs/components/Address/__snapshots__/AddressInfo.spec.ts.snap @@ -0,0 +1,17 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`AddressInfo > Show Basic 1`] = ` +"
+ +

Locaux Motiv
10 Rue Jangot, 69007, Lyon
+ +

+
" +`; + +exports[`AddressInfo > Show Basic with timezone 1`] = ` +"
+ +

Locaux Motiv
10 Rue Jangot, 69007, Lyon
🌐 heure moyenne de Greenwich (UTC)

+
" +`; diff --git a/tests/unit/specs/components/Address/__snapshots__/InlineAddress.spec.ts.snap b/tests/unit/specs/components/Address/__snapshots__/InlineAddress.spec.ts.snap new file mode 100644 index 000000000..05c75a229 --- /dev/null +++ b/tests/unit/specs/components/Address/__snapshots__/InlineAddress.spec.ts.snap @@ -0,0 +1,5 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`InlineAddress > Show with locality 1`] = `"
Lyon
"`; + +exports[`InlineAddress > Show without locality 1`] = `"
Locaux Motiv
"`; diff --git a/tests/unit/specs/components/Categories/CategoryCard.spec.ts b/tests/unit/specs/components/Categories/CategoryCard.spec.ts new file mode 100644 index 000000000..5075cfa6d --- /dev/null +++ b/tests/unit/specs/components/Categories/CategoryCard.spec.ts @@ -0,0 +1,67 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import CategoryCard from "@/components/Categories/CategoryCard.vue"; +import { CategoryStatsModel } from "@/types/stats.model"; +import { reactive } from "vue"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const generateWrapper = (props: any) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(CategoryCard, { + props: props, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +const category = reactive({ + key: "PHOTOGRAPHY", + number: 5, + label: "Hello", +}); + +describe("CategoryCard", () => { + it("Show Basic", async () => { + const wrapper = generateWrapper({ + category: category, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show Details", async () => { + const wrapper = generateWrapper({ + category: { ...category, key: "OUTDOORS_ADVENTURE" }, + withDetails: true, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Categories/__snapshots__/CategoryCard.spec.ts.snap b/tests/unit/specs/components/Categories/__snapshots__/CategoryCard.spec.ts.snap new file mode 100644 index 000000000..5f758a59e --- /dev/null +++ b/tests/unit/specs/components/Categories/__snapshots__/CategoryCard.spec.ts.snap @@ -0,0 +1,26 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`CategoryCard > Show Basic 1`] = ` +" + + + + +
+

Hello

+
+ +
" +`; + +exports[`CategoryCard > Show Details 1`] = ` +" + + + + +
+

Hello

+
5 events +
" +`; diff --git a/src/components/Comment/EventComment.story.vue b/tests/unit/specs/components/Comment/EventComment.spec.ts similarity index 67% rename from src/components/Comment/EventComment.story.vue rename to tests/unit/specs/components/Comment/EventComment.spec.ts index b0baf3295..526fd6868 100644 --- a/src/components/Comment/EventComment.story.vue +++ b/tests/unit/specs/components/Comment/EventComment.spec.ts @@ -1,28 +1,13 @@ - - + +const generateWrapper = (props: any) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(EventComment, { + props: props, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("EventComment", () => { + it("Show Basic", async () => { + const wrapper = generateWrapper({ + comment: comment, + event: event, + currentActor: baseActor, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + it("Show Announcement", async () => { + const wrapper = generateWrapper({ + comment: { ...comment, isAnnouncement: true }, + event: event, + currentActor: baseActor, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Comment/__snapshots__/EventComment.spec.ts.snap b/tests/unit/specs/components/Comment/__snapshots__/EventComment.spec.ts.snap new file mode 100644 index 000000000..8fccca323 --- /dev/null +++ b/tests/unit/specs/components/Comment/__snapshots__/EventComment.spec.ts.snap @@ -0,0 +1,177 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`EventComment > Show Announcement 1`] = ` +"
  • +
    +
    +
    +
    + +
    +
    Thomas Citharel +
    in over 3 years +
    +
    hello
    + +
    +
    +
    +
    +
    +
    +
    +
    Thomas Citharel@tcit
    +
    + +
    +
    +
    +
    + + + + + + +
  • " +`; + +exports[`EventComment > Show Basic 1`] = ` +"
  • +
    +
    +
    +
    + +
    +
    Thomas Citharel +
    in over 3 years +
    +
    hello
    + +
    +
    +
    +
    +
    +
    +
    +
    Thomas Citharel@tcit
    +
    + +
    +
    +
    +
    + + + + + + +
  • " +`; diff --git a/tests/unit/specs/components/Discussion/DiscussionComment.spec.ts b/tests/unit/specs/components/Discussion/DiscussionComment.spec.ts new file mode 100644 index 000000000..87f86bbea --- /dev/null +++ b/tests/unit/specs/components/Discussion/DiscussionComment.spec.ts @@ -0,0 +1,96 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import DiscussionComment from "@/components/Discussion/DiscussionComment.vue"; +import { IPerson } from "@/types/actor"; +import { IComment } from "@/types/comment.model"; +import { ActorType } from "@/types/enums"; +import { reactive } from "vue"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const baseActorAvatar = { + id: "", + name: "", + alt: "", + metadata: {}, + url: "https://social.tcit.fr/system/accounts/avatars/000/000/001/original/a28c50ce5f2b13fd.jpg", +}; + +const baseActor: IPerson = { + name: "Thomas Citharel", + preferredUsername: "tcit", + avatar: baseActorAvatar, + domain: null, + url: "", + summary: "", + suspended: false, + type: ActorType.PERSON, + id: "598", +}; + +const comment = reactive({ + text: "Hello there", + publishedAt: new Date().toString(), + actor: baseActor, +}); + +const deletedComment = reactive({ + ...comment, + actor: null, + deletedAt: new Date().toString(), +}); + +const generateWrapper = (props: any) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(DiscussionComment, { + props: props, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("DiscussionComment", () => { + it("Show Basic", async () => { + const wrapper = generateWrapper({ + modelValue: comment, + currentActor: baseActor, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show Deleted comment", async () => { + const wrapper = generateWrapper({ + modelValue: deletedComment, + currentActor: baseActor, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Discussion/DiscussionListItem.spec.ts b/tests/unit/specs/components/Discussion/DiscussionListItem.spec.ts new file mode 100644 index 000000000..ed76ba0f6 --- /dev/null +++ b/tests/unit/specs/components/Discussion/DiscussionListItem.spec.ts @@ -0,0 +1,60 @@ +import { describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import DiscussionListItem from "@/components/Discussion/DiscussionListItem.vue"; +import { IDiscussion } from "@/types/discussions"; +import { reactive } from "vue"; + +config.global.plugins.push(Oruga); + +const generateWrapper = (props: any) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = []; + return mount(DiscussionListItem, { + props: props, + global: { + ...global_data, + }, + }); +}; + +const mockdiscussion = reactive({ + title: "A discussion", + comments: { total: 5, elements: [] }, + insertedAt: "2022-02-02T02:04:00.000Z", + updatedAt: "2022-02-04T02:04:00.000Z", + deletedAt: null, + lastComment: { text: "Hello there", publishedAt: new Date().toString() }, +}); + +const mockdiscussionWithDeletedComment = reactive({ + ...mockdiscussion, + lastComment: { + ...mockdiscussion.lastComment, + deletedAt: "2022-02-06T02:04:00.000Z", + }, +}); + +describe("DiscussionListItem", () => { + it("Show Basic", async () => { + const wrapper = generateWrapper({ + discussion: mockdiscussion, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + it("Show Deleted comment", async () => { + const wrapper = generateWrapper({ + discussion: mockdiscussion, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Discussion/__snapshots__/DiscussionComment.spec.ts.snap b/tests/unit/specs/components/Discussion/__snapshots__/DiscussionComment.spec.ts.snap new file mode 100644 index 000000000..ba6adb383 --- /dev/null +++ b/tests/unit/specs/components/Discussion/__snapshots__/DiscussionComment.spec.ts.snap @@ -0,0 +1,130 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`DiscussionComment > Show Basic 1`] = ` +"
    +
    +
    +
    +
    +
    +
    Thomas Citharel@tcit
    +
    + + + + + + + + +
    +
    + +
    +
    +
    +
    Hello there
    + +
    +
    +
    + + + + +" +`; + +exports[`DiscussionComment > Show Deleted comment 1`] = ` +"
    +
    +
    +
    [deleted] + +
    + +
    +
    +
    [This comment has been deleted by it's author]
    +
    +
    + + + + +" +`; diff --git a/tests/unit/specs/components/Discussion/__snapshots__/DiscussionListItem.spec.ts.snap b/tests/unit/specs/components/Discussion/__snapshots__/DiscussionListItem.spec.ts.snap new file mode 100644 index 000000000..4fc9d45ee --- /dev/null +++ b/tests/unit/specs/components/Discussion/__snapshots__/DiscussionListItem.spec.ts.snap @@ -0,0 +1,25 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`DiscussionListItem > Show Basic 1`] = ` +" +
    +
    +
    +

    A discussion

    2 days +
    +
    +
    +
    " +`; + +exports[`DiscussionListItem > Show Deleted comment 1`] = ` +" +
    +
    +
    +

    A discussion

    2 days +
    +
    +
    +
    " +`; diff --git a/tests/unit/specs/components/Event/DateCalendarIcon.spec.ts b/tests/unit/specs/components/Event/DateCalendarIcon.spec.ts new file mode 100644 index 000000000..c7d8fd296 --- /dev/null +++ b/tests/unit/specs/components/Event/DateCalendarIcon.spec.ts @@ -0,0 +1,59 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import DateCalendarIcon from "@/components/Event/DateCalendarIcon.vue"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const generateWrapper = (props: any) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(DateCalendarIcon, { + props: props, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("DateCalendarIcon", () => { + it("Show new", async () => { + const wrapper = generateWrapper({ + date: new Date().toString(), + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show small", async () => { + const wrapper = generateWrapper({ + date: new Date().toString(), + small: true, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/src/components/Event/EventCard.story.vue b/tests/unit/specs/components/Event/EventCard.spec.ts similarity index 53% rename from src/components/Event/EventCard.story.vue rename to tests/unit/specs/components/Event/EventCard.spec.ts index 82020d4c8..4d69d133d 100644 --- a/src/components/Event/EventCard.story.vue +++ b/tests/unit/specs/components/Event/EventCard.spec.ts @@ -1,26 +1,13 @@ - - - + +describe("EventCard", () => { + it("Show default", async () => { + const wrapper = generateWrapper({ + event: event, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show long", async () => { + const wrapper = generateWrapper({ + event: longEvent, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show tentative", async () => { + const wrapper = generateWrapper({ + event: tentativeEvent, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show cancelled", async () => { + const wrapper = generateWrapper({ + event: cancelledEvent, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show Row mode", async () => { + const wrapper = generateWrapper({ + event: longEvent, + mode: "row", + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/src/components/Event/EventListViewCard.story.vue b/tests/unit/specs/components/Event/EventListViewCard.spec.ts similarity index 61% rename from src/components/Event/EventListViewCard.story.vue rename to tests/unit/specs/components/Event/EventListViewCard.spec.ts index 2ecca3b8f..bb4234443 100644 --- a/src/components/Event/EventListViewCard.story.vue +++ b/tests/unit/specs/components/Event/EventListViewCard.spec.ts @@ -1,23 +1,13 @@ - - - + it("Show long", async () => { + const wrapper = generateWrapper({ + event: longEvent, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Event/OrganizerPicker.spec.ts b/tests/unit/specs/components/Event/OrganizerPicker.spec.ts new file mode 100644 index 000000000..39508e878 --- /dev/null +++ b/tests/unit/specs/components/Event/OrganizerPicker.spec.ts @@ -0,0 +1,78 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import OrganizerPicker from "@/components/Event/OrganizerPicker.vue"; +import { reactive, ref } from "vue"; +import { ActorType } from "@/types/enums"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const currentActor = reactive({ + id: "59", + preferredUsername: "me", + name: "Someone", + type: ActorType.PERSON, +}); + +const actor = reactive({ + id: "5", + preferredUsername: "hello", + name: "Sigmund", + type: ActorType.PERSON, +}); + +const group = reactive({ + id: "89", + preferredUsername: "congregation", + name: "College", + type: ActorType.GROUP, +}); + +const identities = [actor, group]; + +const generateWrapper = () => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(OrganizerPicker, { + props: { + modelValue: actor, + identities: identities, + actorFilter: "", + groupMemberships: [], + currentActor: currentActor, + }, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("OrganizerPicker", () => { + it("Show simple", async () => { + const wrapper = generateWrapper(); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Event/OrganizerPickerWrapper.spec.ts b/tests/unit/specs/components/Event/OrganizerPickerWrapper.spec.ts new file mode 100644 index 000000000..3ef6304ff --- /dev/null +++ b/tests/unit/specs/components/Event/OrganizerPickerWrapper.spec.ts @@ -0,0 +1,73 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient, requestHandlers } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import OrganizerPickerWrapper from "@/components/Event/OrganizerPickerWrapper.vue"; +import { PERSON_GROUP_MEMBERSHIPS } from "@/graphql/actor"; +import { IDENTITIES } from "@/graphql/actor"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const mock_person = { + data: { + person: { id: "5", memberships: { total: 0, elements: [] } }, + }, +}; +const mock_loggeduser = { + data: { + loggedUser: { + actors: [{ id: "9", preferredUsername: "sam", name: "Samuel" }], + }, + }, +}; + +const generateWrapper = () => { + const global_data = getMockClient([ + [PERSON_GROUP_MEMBERSHIPS, mock_person], + [IDENTITIES, mock_loggeduser], + ]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(OrganizerPickerWrapper, { + props: { + modelValue: { + id: "5", + preferredUsername: "hello", + name: "Sigmund", + }, + }, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("OrganizerPickerWrapper", () => { + it("Show simple", async () => { + const wrapper = generateWrapper(); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + expect(requestHandlers.handle_0).toHaveBeenCalledTimes(0); + expect(requestHandlers.handle_1).toHaveBeenCalledTimes(0); + }); +}); diff --git a/tests/unit/specs/components/Event/ParticipationButton.spec.ts b/tests/unit/specs/components/Event/ParticipationButton.spec.ts new file mode 100644 index 000000000..1c5c68601 --- /dev/null +++ b/tests/unit/specs/components/Event/ParticipationButton.spec.ts @@ -0,0 +1,160 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import ParticipationButton from "@/components/Event/ParticipationButton.vue"; +import { IPerson } from "@/types/actor"; +import { EventJoinOptions, ParticipantRole } from "@/types/enums"; +import { IEvent } from "@/types/event.model"; +import { IParticipant } from "@/types/participant.model"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const generateWrapper = (props) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(ParticipationButton, { + props: props, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +const emptyCurrentActor: IPerson = {}; + +const currentActor: IPerson = { + id: "1", + preferredUsername: "tcit", + name: "Thomas", + avatar: { + url: "https://mobilizon.fr/media/3a5f18c058a8193b1febfaf561f94ae8b91f85ac64c01ddf5ad7b251fb43baf5.jpg?name=profil.jpg", + }, +}; + +const participation: IParticipant = { + actor: currentActor, + role: ParticipantRole.PARTICIPANT, +}; + +const identities: IPerson[] = [ + currentActor, + { + id: "2", + preferredUsername: "another", + name: "Another", + avatar: { + url: "https://mobilizon.fr/media/95ab5ba92287ab4857bb517cadae2a7ab6a553748d1c48cefc27e2b7ab640fea.jpg?name=FB_IMG_16150214351371162.jpg", + }, + }, +]; + +const event: IEvent = { + uuid: "0123456789", + title: "hello", + url: "https://mobilizon.fr/events/an-uuid", + options: { + anonymousParticipation: false, + }, + joinOptions: EventJoinOptions.FREE, +}; + +describe("ParticipationButton", () => { + it("Show Unlogged", async () => { + const wrapper = generateWrapper({ + event: event, + currentActor: emptyCurrentActor, + participation: undefined, + identities: [], + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show Basic", async () => { + const wrapper = generateWrapper({ + event: event, + currentActor: currentActor, + participation: undefined, + identities: identities, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show Basic with confirmation", async () => { + const wrapper = generateWrapper({ + event: { ...event, joinOptions: EventJoinOptions.RESTRICTED }, + currentActor: currentActor, + participation: undefined, + identities: identities, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show Participating", async () => { + const wrapper = generateWrapper({ + event: event, + currentActor: currentActor, + participation: participation, + identities: identities, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show Pending approval", async () => { + const wrapper = generateWrapper({ + event: event, + currentActor: currentActor, + participation: { + ...participation, + role: ParticipantRole.NOT_APPROVED, + }, + identities: identities, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show Rejected", async () => { + const wrapper = generateWrapper({ + event: event, + currentActor: currentActor, + participation: { + ...participation, + role: ParticipantRole.REJECTED, + }, + identities: identities, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Event/ShareEventModal.spec.ts b/tests/unit/specs/components/Event/ShareEventModal.spec.ts new file mode 100644 index 000000000..5b9612b2f --- /dev/null +++ b/tests/unit/specs/components/Event/ShareEventModal.spec.ts @@ -0,0 +1,92 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient, requestHandlers } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import ShareEventModal from "@/components/Event/ShareEventModal.vue"; +import { EventVisibility, EventStatus } from "@/types/enums"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const generateWrapper = (event: any, eventCapacityOK: boolean = true) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(ShareEventModal, { + props: { + event: event, + eventCapacityOK: eventCapacityOK, + }, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("ShareEventModal", () => { + it("Show Public", async () => { + const wrapper = generateWrapper({ + title: "hello", + url: "https://mobilizon.fr/events/an-uuid", + visibility: EventVisibility.PUBLIC, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show Private", async () => { + const wrapper = generateWrapper({ + title: "hello", + url: "https://mobilizon.fr/events/an-uuid", + visibility: EventVisibility.PRIVATE, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show Cancelled", async () => { + const wrapper = generateWrapper({ + title: "hello", + url: "https://mobilizon.fr/events/an-uuid", + visibility: EventVisibility.PUBLIC, + status: EventStatus.CANCELLED, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show No seats left", async () => { + const wrapper = generateWrapper( + { + title: "hello", + url: "https://mobilizon.fr/events/an-uuid", + visibility: EventVisibility.PUBLIC, + }, + false + ); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Event/SkeletonEventResult.spec.ts b/tests/unit/specs/components/Event/SkeletonEventResult.spec.ts new file mode 100644 index 000000000..f2cd508f4 --- /dev/null +++ b/tests/unit/specs/components/Event/SkeletonEventResult.spec.ts @@ -0,0 +1,65 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import SkeletonEventResult from "@/components/Event/SkeletonEventResult.vue"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const generateWrapper = (props: any = {}) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(SkeletonEventResult, { + props: props, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("SkeletonEventResult", () => { + it("Show row", async () => { + const wrapper = generateWrapper(); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show column", async () => { + const wrapper = generateWrapper({ + viewMode: "column", + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show not minimal", async () => { + const wrapper = generateWrapper({ + minimal: false, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Event/TagInput.spec.ts b/tests/unit/specs/components/Event/TagInput.spec.ts new file mode 100644 index 000000000..042756721 --- /dev/null +++ b/tests/unit/specs/components/Event/TagInput.spec.ts @@ -0,0 +1,55 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient, requestHandlers } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import TagInput from "@/components/Event/TagInput.vue"; +import { FILTER_TAGS } from "@/graphql/tags"; +import { ITag } from "@/types/tag.model"; +import { reactive } from "vue"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const tags = reactive([{ title: "Hello", slug: "hello" }]); + +const generateWrapper = () => { + const global_data = getMockClient([FILTER_TAGS]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(TagInput, { + props: { + modelValue: tags, + }, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("TagInput", () => { + it("Show new", async () => { + const wrapper = generateWrapper(); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + expect(requestHandlers.handle_0).toHaveBeenCalledTimes(0); + }); +}); diff --git a/tests/unit/specs/components/Event/__snapshots__/DateCalendarIcon.spec.ts.snap b/tests/unit/specs/components/Event/__snapshots__/DateCalendarIcon.spec.ts.snap new file mode 100644 index 000000000..4d9bb8a50 --- /dev/null +++ b/tests/unit/specs/components/Event/__snapshots__/DateCalendarIcon.spec.ts.snap @@ -0,0 +1,17 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`DateCalendarIcon > Show new 1`] = ` +"
    +
    +
    + +
    " +`; + +exports[`DateCalendarIcon > Show small 1`] = ` +"
    +
    +
    + +
    " +`; diff --git a/tests/unit/specs/components/Event/__snapshots__/EventCard.spec.ts.snap b/tests/unit/specs/components/Event/__snapshots__/EventCard.spec.ts.snap new file mode 100644 index 000000000..461d5e9de --- /dev/null +++ b/tests/unit/specs/components/Event/__snapshots__/EventCard.spec.ts.snap @@ -0,0 +1,252 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`EventCard > Show Row mode 1`] = ` +" + +
    +
    + + +
    +

    A very long title that will have trouble to display because it will take multiple lines but where will it stop ?! Maybe after 3 lines is enough. Let's say so. But if it doesn't work, we really need to truncate it at some point. Definitively.

    +
    +
    +
    Hello +
    +
    Somewhere
    + +
    +
    +
    +
    +" +`; + +exports[`EventCard > Show cancelled 1`] = ` +" + +
    +
    + + +
    +

    A very interesting event

    +
    +
    +
    Hello +
    +
    Somewhere
    + +
    +
    +
    +
    +" +`; + +exports[`EventCard > Show default 1`] = ` +" + +
    +
    + + +
    +

    A very interesting event

    +
    +
    +
    Hello +
    +
    Somewhere
    + +
    +
    +
    +
    +" +`; + +exports[`EventCard > Show long 1`] = ` +" + +
    +
    + + +
    +

    A very long title that will have trouble to display because it will take multiple lines but where will it stop ?! Maybe after 3 lines is enough. Let's say so. But if it doesn't work, we really need to truncate it at some point. Definitively.

    +
    +
    +
    Hello +
    +
    Somewhere
    + +
    +
    +
    +
    +" +`; + +exports[`EventCard > Show tentative 1`] = ` +" + +
    +
    + + +
    +

    A very interesting event

    +
    +
    +
    Hello +
    +
    Somewhere
    + +
    +
    +
    +
    +" +`; diff --git a/tests/unit/specs/components/Event/__snapshots__/EventListViewCard.spec.ts.snap b/tests/unit/specs/components/Event/__snapshots__/EventListViewCard.spec.ts.snap new file mode 100644 index 000000000..11581321f --- /dev/null +++ b/tests/unit/specs/components/Event/__snapshots__/EventListViewCard.spec.ts.snap @@ -0,0 +1,47 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`EventListViewCard > Show default 1`] = ` +"" +`; + +exports[`EventListViewCard > Show long 1`] = ` +"" +`; diff --git a/tests/unit/specs/components/Event/__snapshots__/OrganizerPicker.spec.ts.snap b/tests/unit/specs/components/Event/__snapshots__/OrganizerPicker.spec.ts.snap new file mode 100644 index 000000000..9278eaf31 --- /dev/null +++ b/tests/unit/specs/components/Event/__snapshots__/OrganizerPicker.spec.ts.snap @@ -0,0 +1,28 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`OrganizerPicker > Show simple 1`] = ` +"
    +
    + + + +
    + +
  • +
  • +
  • +
    +
    " +`; diff --git a/tests/unit/specs/components/Event/__snapshots__/OrganizerPickerWrapper.spec.ts.snap b/tests/unit/specs/components/Event/__snapshots__/OrganizerPickerWrapper.spec.ts.snap new file mode 100644 index 000000000..fb0b23083 --- /dev/null +++ b/tests/unit/specs/components/Event/__snapshots__/OrganizerPickerWrapper.spec.ts.snap @@ -0,0 +1,47 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`OrganizerPickerWrapper > Show simple 1`] = ` +"
    + +
    +
    +
    +
    +

    Sigmund

    +

    @hello

    +
    +
    +
    + + + + + +
    " +`; diff --git a/tests/unit/specs/components/Event/__snapshots__/ParticipationButton.spec.ts.snap b/tests/unit/specs/components/Event/__snapshots__/ParticipationButton.spec.ts.snap new file mode 100644 index 000000000..1b33cf24f --- /dev/null +++ b/tests/unit/specs/components/Event/__snapshots__/ParticipationButton.spec.ts.snap @@ -0,0 +1,104 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`ParticipationButton > Show Basic 1`] = ` +"
    +
    +
    + + + + + + + + +
    +
    " +`; + +exports[`ParticipationButton > Show Basic with confirmation 1`] = ` +"
    +
    +
    + + + + + + + + +
    +
    " +`; + +exports[`ParticipationButton > Show Participating 1`] = ` +"
    +
    +
    + + + + + + + + +
    +
    " +`; + +exports[`ParticipationButton > Show Pending approval 1`] = ` +"
    +
    +
    +
    + + + + + + + + +
    +

    Participation requested!

    +

    Waiting for organization team approval.

    +
    +
    " +`; + +exports[`ParticipationButton > Show Rejected 1`] = ` +"
    +
    Unfortunately, your participation request was rejected by the organizers.
    +
    " +`; + +exports[`ParticipationButton > Show Unlogged 1`] = ` +"" +`; diff --git a/tests/unit/specs/components/Event/__snapshots__/ShareEventModal.spec.ts.snap b/tests/unit/specs/components/Event/__snapshots__/ShareEventModal.spec.ts.snap new file mode 100644 index 000000000..edaeb2796 --- /dev/null +++ b/tests/unit/specs/components/Event/__snapshots__/ShareEventModal.spec.ts.snap @@ -0,0 +1,178 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`ShareEventModal > Show Cancelled 1`] = ` +"
    +
    +
    +

    Share this event

    +
    +
    +
    + + +
    + +
    + +
    This event has been cancelled.
    +
    +
    +
    + +
    +
    +
    +
    + + + +
    +

    +

    + + + + + +
    +

    +
    +
    + +
    + +
    +
    +
    +
    " +`; + +exports[`ShareEventModal > Show No seats left 1`] = ` +"
    +
    +
    +

    Share this event

    +
    +
    +
    + + + +
    + +
    + +
    All the places have already been taken
    +
    +
    +
    +
    +
    +
    +
    + + + +
    +

    +

    + + + + + +
    +

    +
    +
    + +
    + +
    +
    +
    +
    " +`; + +exports[`ShareEventModal > Show Private 1`] = ` +"
    +
    +
    +

    Share this event

    +
    +
    +
    + +
    + +
    + +
    This event is accessible only through it's link. Be careful where you post this link.
    +
    +
    +
    + + +
    +
    +
    +
    + + + +
    +

    +

    + + + + + +
    +

    +
    +
    + +
    + +
    +
    +
    +
    " +`; + +exports[`ShareEventModal > Show Public 1`] = ` +"
    +
    +
    +

    Share this event

    +
    +
    +
    +
    +
    +
    +
    + + + +
    +

    +

    + + + + + +
    +

    +
    +
    + +
    + +
    +
    +
    +
    " +`; diff --git a/tests/unit/specs/components/Event/__snapshots__/SkeletonEventResult.spec.ts.snap b/tests/unit/specs/components/Event/__snapshots__/SkeletonEventResult.spec.ts.snap new file mode 100644 index 000000000..5f83d7997 --- /dev/null +++ b/tests/unit/specs/components/Event/__snapshots__/SkeletonEventResult.spec.ts.snap @@ -0,0 +1,62 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`SkeletonEventResult > Show column 1`] = ` +"
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + +
    +
    +
    " +`; + +exports[`SkeletonEventResult > Show not minimal 1`] = ` +"
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    " +`; + +exports[`SkeletonEventResult > Show row 1`] = ` +"
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + +
    +
    +
    " +`; diff --git a/tests/unit/specs/components/Event/__snapshots__/TagInput.spec.ts.snap b/tests/unit/specs/components/Event/__snapshots__/TagInput.spec.ts.snap new file mode 100644 index 000000000..47074bada --- /dev/null +++ b/tests/unit/specs/components/Event/__snapshots__/TagInput.spec.ts.snap @@ -0,0 +1,42 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`TagInput > Show new 1`] = ` +"
    +
    +
    +
    +
    Hello +
    +
    +
    + + +
    +
    + + + + + + + + +
    +
    1 / 10 +
    +
    +
    + +
    " +`; diff --git a/tests/unit/specs/components/Group/GroupCard.spec.ts b/tests/unit/specs/components/Group/GroupCard.spec.ts new file mode 100644 index 000000000..32d590d4b --- /dev/null +++ b/tests/unit/specs/components/Group/GroupCard.spec.ts @@ -0,0 +1,111 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import GroupCard from "@/components/Group/GroupCard.vue"; +import { IGroup } from "@/types/actor"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const basicGroup: IGroup = { + name: "Framasoft", + preferredUsername: "framasoft", + avatar: null, + domain: "mobilizon.fr", + url: "", + summary: "", + suspended: false, + members: { total: 0, elements: [] }, + followers: { total: 0, elements: [] }, +}; + +const groupWithMedia: IGroup = { + ...basicGroup, + banner: { + url: "https://mobilizon.fr/media/a8227a16cc80b3d20ff5ee549a29c1b20a0ca1547f8861129aae9f00c3c69d12.jpg?name=framasoft%27s%20banner.jpg", + }, + avatar: { + url: "https://mobilizon.fr/media/890f5396ef80081a6b1b18a5db969746cf8bb340e8a4e657d665e41f6646c539.jpg?name=framasoft%27s%20avatar.jpg", + }, +}; + +const groupWithFollowersOrMembers: IGroup = { + ...groupWithMedia, + members: { total: 2, elements: [] }, + followers: { total: 5, elements: [] }, + summary: + "You can also use variant modifiers to target media queries like responsive breakpoints, dark mode, prefers-reduced-motion, and more. For example, use md:h-full to apply the h-full utility at only medium screen sizes and above.", + physicalAddress: { + description: "Nantes", + }, +}; + +const generateWrapper = (props: any = {}) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(GroupCard, { + props: props, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("GroupCard", () => { + it("Show Empty", async () => { + const wrapper = generateWrapper({ + group: basicGroup, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show With media", async () => { + const wrapper = generateWrapper({ + group: groupWithMedia, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show with followers or members", async () => { + const wrapper = generateWrapper({ + group: groupWithFollowersOrMembers, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show Row mode", async () => { + const wrapper = generateWrapper({ + group: groupWithFollowersOrMembers, + mode: "row", + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Group/GroupMemberCard.spec.ts b/tests/unit/specs/components/Group/GroupMemberCard.spec.ts new file mode 100644 index 000000000..bb7825586 --- /dev/null +++ b/tests/unit/specs/components/Group/GroupMemberCard.spec.ts @@ -0,0 +1,120 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import GroupMemberCard from "@/components/Group/GroupMemberCard.vue"; +import { IActor } from "@/types/actor"; +import { IMember } from "@/types/actor/member.model"; +import { MemberRole } from "@/types/enums"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const generateWrapper = (props: any) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(GroupMemberCard, { + props: props, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +const baseActorAvatar = { + id: "", + name: "", + alt: "", + metadata: {}, + url: "https://social.tcit.fr/system/accounts/avatars/000/000/001/original/a28c50ce5f2b13fd.jpg", +}; + +const basePerson: IActor = { + name: "Thomas Citharel", + preferredUsername: "tcit", + avatar: baseActorAvatar, + domain: null, + url: "", + summary: "", + suspended: false, +}; + +const basicGroup: IActor = { + name: "Framasoft", + preferredUsername: "framasoft", + avatar: { + url: "https://mobilizon.fr/media/ff5b2d425fb73e17fcbb56a1a032359ee0b21453c11af59e103e783817a32fdf.png?name=framasoft%27s%20avatar.png", + }, + domain: "mobilizon.fr", + url: "", + summary: `

    La Fediverse, c'est la Fédération qui englobe l'Univers des réseaux sociaux libres et décentralisés, dont Mobilizon (évènements), Mastodon (microblog), Peertube (vidéos), Pixelfed (photos), Funkwhale (musique), Matrix (messagerie instantanée)... et tant d'autres font partie.

    Et "La Fediverse Nantaise" est un collectif cherchant à faire connaître localement tout le potentiel de ces réseaux ! :-)

    `, + suspended: false, + members: { total: 0, elements: [] }, + followers: { total: 0, elements: [] }, +}; + +const basicMember: IMember = { + parent: basicGroup as IActor, + actor: basePerson, + role: MemberRole.MEMBER, +}; + +const moderatorMember: IMember = { + parent: basicGroup, + actor: basePerson, + role: MemberRole.MODERATOR, +}; + +const adminMember: IMember = { + parent: basicGroup, + actor: basePerson, + role: MemberRole.ADMINISTRATOR, +}; + +describe("GroupMemberCard", () => { + it("Show simple member", async () => { + const wrapper = generateWrapper({ + member: basicMember, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show moderator", async () => { + const wrapper = generateWrapper({ + member: moderatorMember, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show administrator", async () => { + const wrapper = generateWrapper({ + member: adminMember, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Group/__snapshots__/GroupCard.spec.ts.snap b/tests/unit/specs/components/Group/__snapshots__/GroupCard.spec.ts.snap new file mode 100644 index 000000000..5dcb8bb0e --- /dev/null +++ b/tests/unit/specs/components/Group/__snapshots__/GroupCard.spec.ts.snap @@ -0,0 +1,79 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`GroupCard > Show Empty 1`] = ` +" +
    +
    +
    +
    +

    Framasoft

    @framasoft@mobilizon.fr +
    +
    +
    +
    + + +
    +
    +
    " +`; + +exports[`GroupCard > Show Row mode 1`] = ` +" +
    +
    +
    +
    +
    +
    +

    Framasoft

    @framasoft@mobilizon.fr +
    +
    +
    You can also use variant modifiers to target media queries like responsive breakpoints, dark mode, prefers-reduced-motion, and more. For example, use md:h-full to apply the h-full utility at only medium screen sizes and above.
    +
    +
    Nantes
    +

    7 members or followers

    +
    +
    +
    " +`; + +exports[`GroupCard > Show With media 1`] = ` +" +
    +
    +
    +
    +
    +
    +

    Framasoft

    @framasoft@mobilizon.fr +
    +
    +
    +
    + + +
    +
    +
    " +`; + +exports[`GroupCard > Show with followers or members 1`] = ` +" +
    +
    +
    +
    +
    +
    +

    Framasoft

    @framasoft@mobilizon.fr +
    +
    +
    You can also use variant modifiers to target media queries like responsive breakpoints, dark mode, prefers-reduced-motion, and more. For example, use md:h-full to apply the h-full utility at only medium screen sizes and above.
    +
    +
    Nantes
    +

    7 members or followers

    +
    +
    +
    " +`; diff --git a/tests/unit/specs/components/Group/__snapshots__/GroupMemberCard.spec.ts.snap b/tests/unit/specs/components/Group/__snapshots__/GroupMemberCard.spec.ts.snap new file mode 100644 index 000000000..b3cc28113 --- /dev/null +++ b/tests/unit/specs/components/Group/__snapshots__/GroupMemberCard.spec.ts.snap @@ -0,0 +1,123 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`GroupMemberCard > Show administrator 1`] = ` +"
    +
    +
    Thomas Citharel (@tcit) +
    +
    +
    + +
    +

    La Fediverse, c'est la Fédération qui englobe l'Univers des réseaux sociaux libres et décentralisés, dont Mobilizon (évènements), Mastodon (microblog), Peertube (vidéos), Pixelfed (photos), Funkwhale (musique), Matrix (messagerie instantanée)... et tant d'autres font partie.

    +

    Et "La Fediverse Nantaise" est un collectif cherchant à faire connaître localement tout le potentiel de ces réseaux ! :-)

    +
    +
    +
    +
    +
    + + + + + + + + +
    +
    +
    +
    " +`; + +exports[`GroupMemberCard > Show moderator 1`] = ` +"
    +
    +
    Thomas Citharel (@tcit) +
    +
    +
    + +
    +

    La Fediverse, c'est la Fédération qui englobe l'Univers des réseaux sociaux libres et décentralisés, dont Mobilizon (évènements), Mastodon (microblog), Peertube (vidéos), Pixelfed (photos), Funkwhale (musique), Matrix (messagerie instantanée)... et tant d'autres font partie.

    +

    Et "La Fediverse Nantaise" est un collectif cherchant à faire connaître localement tout le potentiel de ces réseaux ! :-)

    +
    +
    +
    +
    +
    + + + + + + + + +
    +
    +
    +
    " +`; + +exports[`GroupMemberCard > Show simple member 1`] = ` +"
    +
    +
    Thomas Citharel (@tcit) +
    +
    +
    + +
    +

    La Fediverse, c'est la Fédération qui englobe l'Univers des réseaux sociaux libres et décentralisés, dont Mobilizon (évènements), Mastodon (microblog), Peertube (vidéos), Pixelfed (photos), Funkwhale (musique), Matrix (messagerie instantanée)... et tant d'autres font partie.

    +

    Et "La Fediverse Nantaise" est un collectif cherchant à faire connaître localement tout le potentiel de ces réseaux ! :-)

    +
    +
    +
    +
    +
    + + + + + + + + +
    +
    +
    +
    " +`; diff --git a/tests/unit/specs/components/Home/CategoriesPreview.spec.ts b/tests/unit/specs/components/Home/CategoriesPreview.spec.ts new file mode 100644 index 000000000..9f49a4338 --- /dev/null +++ b/tests/unit/specs/components/Home/CategoriesPreview.spec.ts @@ -0,0 +1,50 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient, requestHandlers } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import CategoriesPreview from "@/components/Home/CategoriesPreview.vue"; +import { CATEGORY_STATISTICS } from "@/graphql/statistics"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const generateWrapper = () => { + const global_data = getMockClient([CATEGORY_STATISTICS]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(CategoriesPreview, { + props: {}, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("CategoriesPreview", () => { + it("Show simple", async () => { + const wrapper = generateWrapper(); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + expect(requestHandlers.handle_0).toHaveBeenCalledTimes(1); + expect(requestHandlers.handle_0).toHaveBeenCalledWith({}); + }); +}); diff --git a/tests/unit/specs/components/Home/MobilizonPresentation.spec.ts b/tests/unit/specs/components/Home/MobilizonPresentation.spec.ts new file mode 100644 index 000000000..3cedf169d --- /dev/null +++ b/tests/unit/specs/components/Home/MobilizonPresentation.spec.ts @@ -0,0 +1,47 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import MobilizonPresentation from "@/components/Home/MobilizonPresentation.vue"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const generateWrapper = () => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(MobilizonPresentation, { + props: {}, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("MobilizonPresentation", () => { + it("Show simple", async () => { + const wrapper = generateWrapper(); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Home/SearchFields.spec.ts b/tests/unit/specs/components/Home/SearchFields.spec.ts new file mode 100644 index 000000000..3cd186a38 --- /dev/null +++ b/tests/unit/specs/components/Home/SearchFields.spec.ts @@ -0,0 +1,50 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import SearchFields from "@/components/Home/SearchFields.vue"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const generateWrapper = () => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(SearchFields, { + props: { + search: "", + location: {}, + }, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("SearchFields", () => { + it("Show simple", async () => { + const wrapper = generateWrapper(); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Home/UnloggedIntroduction.spec.ts b/tests/unit/specs/components/Home/UnloggedIntroduction.spec.ts new file mode 100644 index 000000000..52f827e09 --- /dev/null +++ b/tests/unit/specs/components/Home/UnloggedIntroduction.spec.ts @@ -0,0 +1,68 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import UnloggedIntroduction from "@/components/Home/UnloggedIntroduction.vue"; +import { reactive } from "vue"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const generateWrapper = (props: any) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(UnloggedIntroduction, { + props: props, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +const mockconfig = reactive({ + name: "My instance name", + description: "An instance that doesn't exist", + slogan: "Test! Test! Test!", + registrationsOpen: true, +}); + +const mockconfigClosed = reactive({ ...config, registrationsOpen: false }); + +describe("UnloggedIntroduction", () => { + it("Show open", async () => { + const wrapper = generateWrapper({ + config: mockconfig, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show close", async () => { + const wrapper = generateWrapper({ + config: mockconfigClosed, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Home/__snapshots__/CategoriesPreview.spec.ts.snap b/tests/unit/specs/components/Home/__snapshots__/CategoriesPreview.spec.ts.snap new file mode 100644 index 000000000..1dd51cc89 --- /dev/null +++ b/tests/unit/specs/components/Home/__snapshots__/CategoriesPreview.spec.ts.snap @@ -0,0 +1,3 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`CategoriesPreview > Show simple 1`] = `""`; diff --git a/tests/unit/specs/components/Home/__snapshots__/MobilizonPresentation.spec.ts.snap b/tests/unit/specs/components/Home/__snapshots__/MobilizonPresentation.spec.ts.snap new file mode 100644 index 000000000..1a7a48655 --- /dev/null +++ b/tests/unit/specs/components/Home/__snapshots__/MobilizonPresentation.spec.ts.snap @@ -0,0 +1,23 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`MobilizonPresentation > Show simple 1`] = ` +"
    +
    +
    +

    A practical tool

    +

    Mobilizon is a tool that helps you find, create and organise events.

    +
    +
    +

    An ethical alternative

    +

    Ethical alternative to Facebook events, groups and pages, Mobilizon is a tool designed to serve you. Period.

    +
    +
    +

    A federated software

    +

    Mobilizon is not a giant platform, but a multitude of interconnected Mobilizon websites.

    +
    +
    + +
    " +`; diff --git a/tests/unit/specs/components/Home/__snapshots__/SearchFields.spec.ts.snap b/tests/unit/specs/components/Home/__snapshots__/SearchFields.spec.ts.snap new file mode 100644 index 000000000..122463629 --- /dev/null +++ b/tests/unit/specs/components/Home/__snapshots__/SearchFields.spec.ts.snap @@ -0,0 +1,21 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`SearchFields > Show simple 1`] = ` +"" +`; diff --git a/tests/unit/specs/components/Home/__snapshots__/UnloggedIntroduction.spec.ts.snap b/tests/unit/specs/components/Home/__snapshots__/UnloggedIntroduction.spec.ts.snap new file mode 100644 index 000000000..847097be7 --- /dev/null +++ b/tests/unit/specs/components/Home/__snapshots__/UnloggedIntroduction.spec.ts.snap @@ -0,0 +1,15 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`UnloggedIntroduction > Show close 1`] = ` +"
    +

    Gather ⋅ Organize ⋅ Mobilize

    +

    +
    " +`; + +exports[`UnloggedIntroduction > Show open 1`] = ` +"
    +

    Test! Test! Test!

    +

    An instance that doesn't exist

    +
    " +`; diff --git a/tests/unit/specs/components/Post/SharePostModal.spec.ts b/tests/unit/specs/components/Post/SharePostModal.spec.ts new file mode 100644 index 000000000..094aaff50 --- /dev/null +++ b/tests/unit/specs/components/Post/SharePostModal.spec.ts @@ -0,0 +1,64 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import SharePostModal from "@/components/Post/SharePostModal.vue"; +import { PostVisibility } from "@/types/enums"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const generateWrapper = (props: any = {}) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(SharePostModal, { + props: props, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +const post = { + title: "hello", + url: "https://mobilizon.fr/p/an-uuid", +}; + +describe("SharePostModal", () => { + it("Show public", async () => { + const wrapper = generateWrapper({ + post: { ...post, visibility: PostVisibility.PUBLIC }, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show private", async () => { + const wrapper = generateWrapper({ + post: post, + }); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/Post/__snapshots__/SharePostModal.spec.ts.snap b/tests/unit/specs/components/Post/__snapshots__/SharePostModal.spec.ts.snap new file mode 100644 index 000000000..7f097f3bb --- /dev/null +++ b/tests/unit/specs/components/Post/__snapshots__/SharePostModal.spec.ts.snap @@ -0,0 +1,69 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`SharePostModal > Show private 1`] = ` +"
    +
    +

    Share this post

    +
    +
    +
    +
    +
    +
    +
    + + + +
    +

    +

    + + + + + +
    +

    +
    +
    + +
    + +
    +
    +
    " +`; + +exports[`SharePostModal > Show public 1`] = ` +"
    +
    +

    Share this post

    +
    +
    +
    +
    +
    +
    +
    + + + +
    +

    +

    + + + + + +
    +

    +
    +
    + +
    + +
    +
    +
    " +`; diff --git a/tests/unit/specs/components/User/AuthProviders.spec.ts b/tests/unit/specs/components/User/AuthProviders.spec.ts new file mode 100644 index 000000000..8df4c4753 --- /dev/null +++ b/tests/unit/specs/components/User/AuthProviders.spec.ts @@ -0,0 +1,51 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, mount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import AuthProviders from "@/components/User/AuthProviders.vue"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const providers = [{ id: "keycloak", label: "Entreprise" }, { id: "google" }]; + +const generateWrapper = () => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return mount(AuthProviders, { + props: { + oauthProviders: providers, + }, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("AuthProviders", () => { + it("Show simple", async () => { + const wrapper = generateWrapper(); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/User/__snapshots__/AuthProviders.spec.ts.snap b/tests/unit/specs/components/User/__snapshots__/AuthProviders.spec.ts.snap new file mode 100644 index 000000000..85514b502 --- /dev/null +++ b/tests/unit/specs/components/User/__snapshots__/AuthProviders.spec.ts.snap @@ -0,0 +1,11 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`AuthProviders > Show simple 1`] = ` +"" +`; diff --git a/tests/unit/specs/components/core/MaterialIcon.spec.ts b/tests/unit/specs/components/core/MaterialIcon.spec.ts new file mode 100644 index 000000000..a1aa1daad --- /dev/null +++ b/tests/unit/specs/components/core/MaterialIcon.spec.ts @@ -0,0 +1,63 @@ +import { beforeEach, describe, it, expect } from "vitest"; +import { enUS } from "date-fns/locale"; +import { routes } from "@/router"; +import { createRouter, createWebHistory, Router } from "vue-router"; +import { config, shallowMount } from "@vue/test-utils"; +import { Oruga } from "@oruga-ui/oruga-next"; +import flushPromises from "flush-promises"; +import { getMockClient, requestHandlers } from "../../mocks/client"; +import { htmlRemoveId } from "../../common"; +import MaterialIcon from "@/components/core/MaterialIcon.vue"; + +config.global.plugins.push(Oruga); + +let router: Router; + +beforeEach(async () => { + router = createRouter({ + history: createWebHistory(), + routes: routes, + }); + + // await router.isReady(); +}); + +const generateWrapper = (iconname: string) => { + const global_data = getMockClient([]); + global_data.provide.dateFnsLocale = enUS; + global_data.plugins = [router]; + return shallowMount(MaterialIcon, { + props: { + icon: ["", iconname], + }, + global: { + ...global_data, + stubs: { + RouterLink: false, + }, + }, + }); +}; + +describe("MaterialIcon", () => { + it("Show GoogleHangouts", async () => { + const wrapper = generateWrapper("GoogleHangouts"); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show CalendarStar", async () => { + const wrapper = generateWrapper("CalendarStar"); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); + + it("Show account-multiple-plus", async () => { + const wrapper = generateWrapper("account-multiple-plus"); + await wrapper.vm.$nextTick(); + await flushPromises(); + expect(htmlRemoveId(wrapper.html())).toMatchSnapshot(); + }); +}); diff --git a/tests/unit/specs/components/core/__snapshots__/MaterialIcon.spec.ts.snap b/tests/unit/specs/components/core/__snapshots__/MaterialIcon.spec.ts.snap new file mode 100644 index 000000000..dc3602fa5 --- /dev/null +++ b/tests/unit/specs/components/core/__snapshots__/MaterialIcon.spec.ts.snap @@ -0,0 +1,7 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`MaterialIcon > Show CalendarStar 1`] = `""`; + +exports[`MaterialIcon > Show GoogleHangouts 1`] = `""`; + +exports[`MaterialIcon > Show account-multiple-plus 1`] = `""`; diff --git a/tests/unit/specs/components/stories/ActorCardStory.spec.ts b/tests/unit/specs/components/stories/ActorCardStory.spec.ts deleted file mode 100644 index 2542b39b3..000000000 --- a/tests/unit/specs/components/stories/ActorCardStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import ActorCardStory from "@/components/Account/ActorCard.story.vue"; - -describe("Actor Card Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(ActorCardStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/ActorInlineStory.spec.ts b/tests/unit/specs/components/stories/ActorInlineStory.spec.ts deleted file mode 100644 index 8c820eebc..000000000 --- a/tests/unit/specs/components/stories/ActorInlineStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import ActorInlineStory from "@/components/Account/ActorInline.story.vue"; - -describe("Actor Inline Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(ActorInlineStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/AddressInfoStory.spec.ts b/tests/unit/specs/components/stories/AddressInfoStory.spec.ts deleted file mode 100644 index 03d6c84a7..000000000 --- a/tests/unit/specs/components/stories/AddressInfoStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import AddressInfoStory from "@/components/Address/AddressInfo.story.vue"; - -describe("Address Info Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(AddressInfoStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/AuthProvidersStory.spec.ts b/tests/unit/specs/components/stories/AuthProvidersStory.spec.ts deleted file mode 100644 index a5192c79b..000000000 --- a/tests/unit/specs/components/stories/AuthProvidersStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import AuthProvidersStory from "@/components/User/AuthProviders.story.vue"; - -describe("Auth Providers Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(AuthProvidersStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/CategoriesPreviewStory.spec.ts b/tests/unit/specs/components/stories/CategoriesPreviewStory.spec.ts deleted file mode 100644 index 911f39133..000000000 --- a/tests/unit/specs/components/stories/CategoriesPreviewStory.spec.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import CategoriesPreviewStory from "@/components/Home/CategoriesPreview.story.vue"; -import { getMockClient } from "../../mocks/client"; -import { CATEGORY_STATISTICS } from "@/graphql/statistics"; - -describe("Categories Preview Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(CategoriesPreviewStory, { - global: getMockClient([CATEGORY_STATISTICS]), - }); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/CategoryCardStory.spec.ts b/tests/unit/specs/components/stories/CategoryCardStory.spec.ts deleted file mode 100644 index 13ed91194..000000000 --- a/tests/unit/specs/components/stories/CategoryCardStory.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { afterEach, describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import CategoryCardStory from "@/components/Categories/CategoryCard.story.vue"; - -describe("Category Card Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(CategoryCardStory); - }; - afterEach(() => {}); - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/DateCalendarIconStory.spec.ts b/tests/unit/specs/components/stories/DateCalendarIconStory.spec.ts deleted file mode 100644 index ebccf0c4e..000000000 --- a/tests/unit/specs/components/stories/DateCalendarIconStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import DateCalendarIconStory from "@/components/Event/DateCalendarIcon.story.vue"; - -describe("Date Calendar Icon Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(DateCalendarIconStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/DiscussionListItemStory.spec.ts b/tests/unit/specs/components/stories/DiscussionListItemStory.spec.ts deleted file mode 100644 index 400e4ddf4..000000000 --- a/tests/unit/specs/components/stories/DiscussionListItemStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import DiscussionListItemStory from "@/components/Discussion/DiscussionListItem.story.vue"; - -describe("Discussion List Item Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(DiscussionListItemStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/EventCardStory.spec.ts b/tests/unit/specs/components/stories/EventCardStory.spec.ts deleted file mode 100644 index 11d70d806..000000000 --- a/tests/unit/specs/components/stories/EventCardStory.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { beforeEach, describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import EventCardStory from "@/components/Event/EventCard.story.vue"; -import { - createMockIntersectionObserver, - getMockClient, -} from "../../mocks/client"; -import { CONFIG } from "@/graphql/config"; // - -describe("Event Card Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(EventCardStory, { - global: getMockClient([CONFIG]), - }); - }; - beforeEach(() => { - createMockIntersectionObserver(); - }); - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/EventListViewCardStory.spec.ts b/tests/unit/specs/components/stories/EventListViewCardStory.spec.ts deleted file mode 100644 index 4a2f39361..000000000 --- a/tests/unit/specs/components/stories/EventListViewCardStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import EventListViewCardStory from "@/components/Event/EventListViewCard.story.vue"; - -describe("Event List View Card Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(EventListViewCardStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/GroupCardStory.spec.ts b/tests/unit/specs/components/stories/GroupCardStory.spec.ts deleted file mode 100644 index 6a1c26b3d..000000000 --- a/tests/unit/specs/components/stories/GroupCardStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import GroupCardStory from "@/components/Group/GroupCard.story.vue"; - -describe("Group Card Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(GroupCardStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/GroupMemberCardStory.spec.ts b/tests/unit/specs/components/stories/GroupMemberCardStory.spec.ts deleted file mode 100644 index 1eb7514d6..000000000 --- a/tests/unit/specs/components/stories/GroupMemberCardStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import GroupMemberCardStory from "@/components/Group/GroupMemberCard.story.vue"; - -describe("Group Member Card Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(GroupMemberCardStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/InlineAddressStory.spec.ts b/tests/unit/specs/components/stories/InlineAddressStory.spec.ts deleted file mode 100644 index f8d2233a0..000000000 --- a/tests/unit/specs/components/stories/InlineAddressStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import InlineAddressStory from "@/components/Address/InlineAddress.story.vue"; - -describe("Inline Address Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(InlineAddressStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/InstanceContactLinkStory.spec.ts b/tests/unit/specs/components/stories/InstanceContactLinkStory.spec.ts deleted file mode 100644 index 369079ef2..000000000 --- a/tests/unit/specs/components/stories/InstanceContactLinkStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import InstanceContactLinkStory from "@/components/About/InstanceContactLink.story.vue"; -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; - -describe("Instance Contact Link Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(InstanceContactLinkStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/MaterialIconStory.spec.ts b/tests/unit/specs/components/stories/MaterialIconStory.spec.ts deleted file mode 100644 index 2033e44b7..000000000 --- a/tests/unit/specs/components/stories/MaterialIconStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import MaterialIconStory from "@/components/core/MaterialIcon.story.vue"; - -describe("Material Icon Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(MaterialIconStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/MobilizonPresentationStory.spec.ts b/tests/unit/specs/components/stories/MobilizonPresentationStory.spec.ts deleted file mode 100644 index 06dcd5cf7..000000000 --- a/tests/unit/specs/components/stories/MobilizonPresentationStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import MobilizonPresentationStory from "@/components/Home/MobilizonPresentation.story.vue"; - -describe("Mobilizon Presentation Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(MobilizonPresentationStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/PopoverActorCardStory.spec.ts b/tests/unit/specs/components/stories/PopoverActorCardStory.spec.ts deleted file mode 100644 index fc2388971..000000000 --- a/tests/unit/specs/components/stories/PopoverActorCardStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import PopoverActorCardStory from "@/components/Account/PopoverActorCard.story.vue"; - -describe("Popover Actor Card Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(PopoverActorCardStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/PostListItemStory.spec.ts b/tests/unit/specs/components/stories/PostListItemStory.spec.ts deleted file mode 100644 index 6eb9147e8..000000000 --- a/tests/unit/specs/components/stories/PostListItemStory.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { beforeEach, describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import PostListItemStory from "@/components/Post/PostListItem.story.vue"; -import { - createMockIntersectionObserver, - getMockClient, -} from "../../mocks/client"; -import { CONFIG } from "@/graphql/config"; - -describe("Post List Item Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(PostListItemStory, { - global: getMockClient([CONFIG]), - }); - }; - beforeEach(() => { - createMockIntersectionObserver(); - }); - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/ProfileOnboardingStory.spec.ts b/tests/unit/specs/components/stories/ProfileOnboardingStory.spec.ts deleted file mode 100644 index d44127c71..000000000 --- a/tests/unit/specs/components/stories/ProfileOnboardingStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import ProfileOnboardingStory from "@/components/Account/ProfileOnboarding.story.vue"; - -describe("Profile On boarding Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(ProfileOnboardingStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/ShareEventModalStory.spec.ts b/tests/unit/specs/components/stories/ShareEventModalStory.spec.ts deleted file mode 100644 index 98bd4b148..000000000 --- a/tests/unit/specs/components/stories/ShareEventModalStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import ShareEventModalStory from "@/components/Event/ShareEventModal.story.vue"; - -describe("Share Event Modal Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(ShareEventModalStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/SharePostModalStory.spec.ts b/tests/unit/specs/components/stories/SharePostModalStory.spec.ts deleted file mode 100644 index b41fffbb2..000000000 --- a/tests/unit/specs/components/stories/SharePostModalStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import SharePostModalStory from "@/components/Post/SharePostModal.story.vue"; - -describe("Share Post Modal Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(SharePostModalStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/SkeletonEventResultStory.spec.ts b/tests/unit/specs/components/stories/SkeletonEventResultStory.spec.ts deleted file mode 100644 index 1db68086f..000000000 --- a/tests/unit/specs/components/stories/SkeletonEventResultStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import SkeletonEventResultStory from "@/components/Event/SkeletonEventResult.story.vue"; - -describe("Skeleton Event Result Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(SkeletonEventResultStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/TagInputStory.spec.ts b/tests/unit/specs/components/stories/TagInputStory.spec.ts deleted file mode 100644 index ffc9eeb67..000000000 --- a/tests/unit/specs/components/stories/TagInputStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import TagInputStory from "@/components/Event/TagInput.story.vue"; - -describe("Tag Input Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(TagInputStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/UnloggedIntroductionStory.spec.ts b/tests/unit/specs/components/stories/UnloggedIntroductionStory.spec.ts deleted file mode 100644 index 5ff18b62f..000000000 --- a/tests/unit/specs/components/stories/UnloggedIntroductionStory.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { mount, VueWrapper } from "@vue/test-utils"; -import UnloggedIntroductionStory from "@/components/Home/UnloggedIntroduction.story.vue"; - -describe("Unlogged Introduction Story", () => { - let wrapper: VueWrapper; - - const generateWrapper = () => { - wrapper = mount(UnloggedIntroductionStory); - }; - it("Default", async () => { - generateWrapper(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/tests/unit/specs/components/stories/__snapshots__/ActorCardStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/ActorCardStory.spec.ts.snap deleted file mode 100644 index 75780292e..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/ActorCardStory.spec.ts.snap +++ /dev/null @@ -1,110 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Actor Card Story > Default 1`] = ` -" - -
    -
    -
    -
    Thomas Citharel
    -

    @tcit

    - - -
    -
    - -
    -
    - -
    - -
    -
    -
    -
    -
    -
    Framasoft
    -

    @framasoft@framapiaf.org

    - - -
    -
    - -
    -
    - -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/ActorInlineStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/ActorInlineStory.spec.ts.snap deleted file mode 100644 index 4a259664d..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/ActorInlineStory.spec.ts.snap +++ /dev/null @@ -1,26 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Actor Inline Story > Default 1`] = ` -" - -
    -
    -
    -

    Thomas Citharel

    -

    @tcit

    -
    -
    -
    - -
    -
    -
    -
    -
    -

    Framasoft

    -

    @framasoft@framapiaf.org

    -
    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/AddressInfoStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/AddressInfoStory.spec.ts.snap deleted file mode 100644 index 268fd0394..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/AddressInfoStory.spec.ts.snap +++ /dev/null @@ -1,20 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Address Info Story > Default 1`] = ` -" - -
    - -

    Locaux Motiv
    10 Rue Jangot, 69007, Lyon
    - -

    -
    -
    - -
    - -

    Locaux Motiv
    10 Rue Jangot, 69007, Lyon
    🌐 heure d’été irlandaise (UTC+1)

    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/AuthProvidersStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/AuthProvidersStory.spec.ts.snap deleted file mode 100644 index 4c0d14cfb..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/AuthProvidersStory.spec.ts.snap +++ /dev/null @@ -1,14 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Auth Providers Story > Default 1`] = ` -" - -
    Sign in with -
    - Entreprise - Google -
    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/CategoriesPreviewStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/CategoriesPreviewStory.spec.ts.snap deleted file mode 100644 index aeb6e697d..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/CategoriesPreviewStory.spec.ts.snap +++ /dev/null @@ -1,11 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Categories Preview Story > Default 1`] = ` -" - - - -" -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/CategoryCardStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/CategoryCardStory.spec.ts.snap deleted file mode 100644 index d5b4e968d..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/CategoryCardStory.spec.ts.snap +++ /dev/null @@ -1,33 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Category Card Story > Default 1`] = ` -" - -
    - - - - - -
    -

    Hello

    -
    - -
    -
    -
    - -
    - - - - - -
    -

    Hello

    -
    5 events -
    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/DateCalendarIconStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/DateCalendarIconStory.spec.ts.snap deleted file mode 100644 index 3856f5983..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/DateCalendarIconStory.spec.ts.snap +++ /dev/null @@ -1,20 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Date Calendar Icon Story > Default 1`] = ` -" - -
    -
    -
    - -
    -
    - -
    -
    -
    - -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/DiscussionCommentStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/DiscussionCommentStory.spec.ts.snap deleted file mode 100644 index 5c522f1dd..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/DiscussionCommentStory.spec.ts.snap +++ /dev/null @@ -1,87 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Discussion Comment Story > Default 1`] = ` -" - -
    -
    -
    -
    -
    -
    -
    Thomas Citharel@tcit
    Edit Delete -
    - -
    -
    -
    -
    Hello there
    - -
    -
    -
    - -
    -
    -

    Report this comment

    -
    -
    -
    - -

    The report will be sent to the moderators of your instance. You can explain why you report this content below.

    -
    -
    - - - - - -
    -
    -
    - Cancel - Send the report -
    -
    -
    -
    - -
    -
    -
    -
    [deleted] - -
    - -
    -
    -
    [This comment has been deleted by it's author]
    -
    -
    - -
    -
    -

    Report this comment

    -
    -
    -
    - -

    The report will be sent to the moderators of your instance. You can explain why you report this content below.

    -
    -
    - - - - - -
    -
    -
    - Cancel - Send the report -
    -
    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/DiscussionListItemStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/DiscussionListItemStory.spec.ts.snap deleted file mode 100644 index e057d3cba..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/DiscussionListItemStory.spec.ts.snap +++ /dev/null @@ -1,28 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Discussion List Item Story > Default 1`] = ` -" - - -
    -
    -
    -

    A discussion

    0 seconds -
    -
    -
    -
    -
    - - -
    -
    -
    -

    A discussion

    0 seconds -
    -
    [This comment has been deleted]
    -
    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/EventCardStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/EventCardStory.spec.ts.snap deleted file mode 100644 index 06cf0e0b8..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/EventCardStory.spec.ts.snap +++ /dev/null @@ -1,262 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Event Card Story > Default 1`] = ` -" - - -
    - -
    -
    -
    - - - -
    -
    -
    - - - Something -
    -
    -
    -
    -
    - - -
    -

    A very interesting event

    -
    -
    -
    Hello -
    -
    Somewhere
    - -
    -
    -
    -
    -
    -
    - - -
    - -
    -
    -
    - - - -
    -
    -
    - - - Something -
    -
    -
    -
    -
    - - -
    -

    A very long title that will have trouble to display because it will take multiple lines but where will it stop ?! Maybe after 3 lines is enough. Let's say so. But if it doesn't work, we really need to truncate it at some point. Definitively.

    -
    -
    -
    Hello -
    -
    Somewhere
    - -
    -
    -
    -
    -
    -
    - - -
    - -
    -
    -
    - - - -
    -
    -
    Tentative - - Something -
    -
    -
    -
    -
    - - -
    -

    A very interesting event

    -
    -
    -
    Hello -
    -
    Somewhere
    - -
    -
    -
    -
    -
    -
    - - -
    - -
    -
    -
    - - - -
    -
    -
    - Cancelled - Something -
    -
    -
    -
    -
    - - -
    -

    A very interesting event

    -
    -
    -
    Hello -
    -
    Somewhere
    - -
    -
    -
    -
    -
    -
    - - -
    - -
    -
    -
    - - - -
    -
    - -
    -
    -
    -
    - - -
    -

    A very long title that will have trouble to display because it will take multiple lines but where will it stop ?! Maybe after 3 lines is enough. Let's say so. But if it doesn't work, we really need to truncate it at some point. Definitively.

    -
    -
    -
    Hello -
    -
    Somewhere
    - -
    -
    -
    -
    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/EventListViewCardStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/EventListViewCardStory.spec.ts.snap deleted file mode 100644 index e095c3ee5..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/EventListViewCardStory.spec.ts.snap +++ /dev/null @@ -1,59 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Event List View Card Story > Default 1`] = ` -" - -
    -
    -
    -
    -
    -
    - -
    -
    - -

    A very interesting event

    -
    -
    -
    - Published by Hello -
    -
    - - 0 participants -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    - -

    A very long title that will have trouble to display because it will take multiple lines but where will it stop ?! Maybe after 3 lines is enough. Let's say so.

    -
    -
    -
    - Published by Hello -
    -
    - - 0 participants -
    -
    -
    - -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/GroupCardStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/GroupCardStory.spec.ts.snap deleted file mode 100644 index 88b3a5ae1..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/GroupCardStory.spec.ts.snap +++ /dev/null @@ -1,86 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Group Card Story > Default 1`] = ` -" - -
    - -
    -
    -
    -
    -

    Framasoft

    @framasoft@mobilizon.fr -
    -
    -
    -
    - - -
    -
    -
    -
    -
    - -
    - -
    -
    -
    -
    -
    -
    -

    Framasoft

    @framasoft@mobilizon.fr -
    -
    -
    -
    - - -
    -
    -
    -
    -
    - -
    - -
    -
    -
    -
    -
    -
    -

    Framasoft

    @framasoft@mobilizon.fr -
    -
    -
    You can also use variant modifiers to target media queries like responsive breakpoints, dark mode, prefers-reduced-motion, and more. For example, use md:h-full to apply the h-full utility at only medium screen sizes and above.
    -
    -
    Nantes
    -

    7 members or followers

    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    -
    -

    Framasoft

    @framasoft@mobilizon.fr -
    -
    -
    You can also use variant modifiers to target media queries like responsive breakpoints, dark mode, prefers-reduced-motion, and more. For example, use md:h-full to apply the h-full utility at only medium screen sizes and above.
    -
    -
    Nantes
    -

    7 members or followers

    -
    -
    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/GroupMemberCardStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/GroupMemberCardStory.spec.ts.snap deleted file mode 100644 index 67bd3ee3e..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/GroupMemberCardStory.spec.ts.snap +++ /dev/null @@ -1,107 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Group Member Card Story > Default 1`] = ` -" - -
    -
    -
    -
    Thomas Citharel (@tcit) -
    -
    -
    -
    -
    -
    -
    -
    - -

    Framasoft

    -
    @framasoft@mobilizon.fr - -
    -
    -
    -
    -
    -

    La Fediverse, c'est la Fédération qui englobe l'Univers des réseaux sociaux libres et décentralisés, dont Mobilizon (évènements), Mastodon (microblog), Peertube (vidéos), Pixelfed (photos), Funkwhale (musique), Matrix (messagerie instantanée)... et tant d'autres font partie.

    -

    Et "La Fediverse Nantaise" est un collectif cherchant à faire connaître localement tout le potentiel de ces réseaux ! :-)

    -
    -
    -
    - - Leave - -
    -
    -
    -
    -
    - -
    -
    -
    -
    Thomas Citharel (@tcit) -
    -
    -
    -
    -
    -
    -
    -
    - -

    Framasoft

    -
    @framasoft@mobilizon.frModerator
    -
    -
    -
    -
    -

    La Fediverse, c'est la Fédération qui englobe l'Univers des réseaux sociaux libres et décentralisés, dont Mobilizon (évènements), Mastodon (microblog), Peertube (vidéos), Pixelfed (photos), Funkwhale (musique), Matrix (messagerie instantanée)... et tant d'autres font partie.

    -

    Et "La Fediverse Nantaise" est un collectif cherchant à faire connaître localement tout le potentiel de ces réseaux ! :-)

    -
    -
    -
    - - Leave - -
    -
    -
    -
    -
    - -
    -
    -
    -
    Thomas Citharel (@tcit) -
    -
    -
    -
    -
    -
    -
    -
    - -

    Framasoft

    -
    @framasoft@mobilizon.frAdministrator
    -
    -
    -
    -
    -

    La Fediverse, c'est la Fédération qui englobe l'Univers des réseaux sociaux libres et décentralisés, dont Mobilizon (évènements), Mastodon (microblog), Peertube (vidéos), Pixelfed (photos), Funkwhale (musique), Matrix (messagerie instantanée)... et tant d'autres font partie.

    -

    Et "La Fediverse Nantaise" est un collectif cherchant à faire connaître localement tout le potentiel de ces réseaux ! :-)

    -
    -
    -
    - - Leave - -
    -
    -
    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/InlineAddressStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/InlineAddressStory.spec.ts.snap deleted file mode 100644 index 0edc634b4..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/InlineAddressStory.spec.ts.snap +++ /dev/null @@ -1,12 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Inline Address Story > Default 1`] = ` -" - -
    Lyon
    -
    - -
    Locaux Motiv
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/InstanceContactLinkStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/InstanceContactLinkStory.spec.ts.snap deleted file mode 100644 index 846b5afb1..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/InstanceContactLinkStory.spec.ts.snap +++ /dev/null @@ -1,18 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Instance Contact Link Story > Default 1`] = ` -" - -

    contact uninformed

    -
    - -

    someone

    -
    - -

    someone@somewhere.tld

    -
    - -

    somewhere.com

    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/MaterialIconStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/MaterialIconStory.spec.ts.snap deleted file mode 100644 index ac624fea6..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/MaterialIconStory.spec.ts.snap +++ /dev/null @@ -1,15 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Material Icon Story > Default 1`] = ` -" - - - - - - - - - -" -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/MobilizonPresentationStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/MobilizonPresentationStory.spec.ts.snap deleted file mode 100644 index 446953f30..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/MobilizonPresentationStory.spec.ts.snap +++ /dev/null @@ -1,27 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Mobilizon Presentation Story > Default 1`] = ` -" - -
    -
    -
    -

    A practical tool

    -

    Mobilizon is a tool that helps you find, create and organise events.

    -
    -
    -

    An ethical alternative

    -

    Ethical alternative to Facebook events, groups and pages, Mobilizon is a tool designed to serve you. Period.

    -
    -
    -

    A federated software

    -

    Mobilizon is not a giant platform, but a multitude of interconnected Mobilizon websites.

    -
    -
    -
    - Learn more about Mobilizon -
    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/PopoverActorCardStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/PopoverActorCardStory.spec.ts.snap deleted file mode 100644 index 5094b67ff..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/PopoverActorCardStory.spec.ts.snap +++ /dev/null @@ -1,24 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Popover Actor Card Story > Default 1`] = ` -" - -
    - -
    Popover me !
    -
    -
    -
    - -
    - -
    Popover me !
    -
    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/PostListItemStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/PostListItemStory.spec.ts.snap deleted file mode 100644 index d92c6bd9e..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/PostListItemStory.spec.ts.snap +++ /dev/null @@ -1,60 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Post List Item Story > Default 1`] = ` -" - - -
    -
    - - - -
    -
    -
    -

    Musique sur Nantes : un groupe à développer ensemble !

    -

    less than a minute ago

    -
    MusiqueConcert
    - - -
    -
    -
    - - -
    -
    - - - -
    -
    -
    -

    Musique sur Nantes : un groupe à développer ensemble ! Musique sur Nantes : un groupe à développer ensemble !

    -

    less than a minute ago

    -
    MusiqueConcertVeryLongTagWhatHappensThen
    - - -
    -
    -
    - - -
    -
    - - - -
    -
    -
    -

    Musique sur Nantes : un groupe à développer ensemble ! Musique sur Nantes : un groupe à développer ensemble !

    -

    less than a minute ago

    -
    MusiqueConcertVeryLongTagWhatHappensThen
    -

    Published by I'm the author

    - -
    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/ProfileOnboardingStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/ProfileOnboardingStory.spec.ts.snap deleted file mode 100644 index 883a2581c..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/ProfileOnboardingStory.spec.ts.snap +++ /dev/null @@ -1,19 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Profile On boarding Story > Default 1`] = ` -" - -
    -
    -

    Profiles and federation

    -
    -

    Mobilizon uses a system of profiles to compartiment your activities. You will be able to create as many profiles as you want.

    -
    -

    Mobilizon is a federated software, meaning you can interact - depending on your admin's federation settings - with content from other instances, such as joining groups or events that were created elsewhere.This instance, Instance name (localhost), hosts your profile, so remember its name.

    -
    -

    If you are being asked for your federated indentity, it's composed of your username and your instance. For instance, the federated identity for your first profile is:

    -
    tcit@localhost
    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/ShareEventModalStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/ShareEventModalStory.spec.ts.snap deleted file mode 100644 index 163075790..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/ShareEventModalStory.spec.ts.snap +++ /dev/null @@ -1,99 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Share Event Modal Story > Default 1`] = ` -" - -
    -
    -
    -

    Share this event

    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -

    Share this event

    -
    -
    -
    - This event is accessible only through it's link. Be careful where you post this link. - - - - -

    - - -

    -
    - -
    -
    -
    -
    -
    - -
    -
    -
    -

    Share this event

    -
    -
    -
    - - This event has been cancelled. - - - -

    - - -

    -
    - -
    -
    -
    -
    -
    - -
    -
    -
    -

    Share this event

    -
    -
    -
    - - - All the places have already been taken - - -

    - - -

    -
    - -
    -
    -
    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/SharePostModalStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/SharePostModalStory.spec.ts.snap deleted file mode 100644 index 4e8fcaa9e..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/SharePostModalStory.spec.ts.snap +++ /dev/null @@ -1,44 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Share Post Modal Story > Default 1`] = ` -" - -
    -
    -

    Share this post

    -
    -
    - -
    -
    -
    - -
    -
    -

    Share this post

    -
    -
    - -
    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/SkeletonEventResultStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/SkeletonEventResultStory.spec.ts.snap deleted file mode 100644 index 23f26e63f..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/SkeletonEventResultStory.spec.ts.snap +++ /dev/null @@ -1,64 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Skeleton Event Result Story > Default 1`] = ` -" - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/TagInputStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/TagInputStory.spec.ts.snap deleted file mode 100644 index 3263721de..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/TagInputStory.spec.ts.snap +++ /dev/null @@ -1,14 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Tag Input Story > Default 1`] = ` -" - - - - - - -" -`; diff --git a/tests/unit/specs/components/stories/__snapshots__/UnloggedIntroductionStory.spec.ts.snap b/tests/unit/specs/components/stories/__snapshots__/UnloggedIntroductionStory.spec.ts.snap deleted file mode 100644 index 99c0e832d..000000000 --- a/tests/unit/specs/components/stories/__snapshots__/UnloggedIntroductionStory.spec.ts.snap +++ /dev/null @@ -1,18 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`Unlogged Introduction Story > Default 1`] = ` -" - -
    -

    Test! Test! Test!

    -

    An instance that doesn't exist

    -
    -
    - -
    -

    Test! Test! Test!

    -

    An instance that doesn't exist

    -
    -
    -
    " -`; diff --git a/tests/unit/specs/components/Group/CreateView.spec.ts b/tests/unit/specs/views/Group/CreateView.spec.ts similarity index 100% rename from tests/unit/specs/components/Group/CreateView.spec.ts rename to tests/unit/specs/views/Group/CreateView.spec.ts diff --git a/tests/unit/specs/components/Group/GroupFollowers.spec.ts b/tests/unit/specs/views/Group/GroupFollowers.spec.ts similarity index 100% rename from tests/unit/specs/components/Group/GroupFollowers.spec.ts rename to tests/unit/specs/views/Group/GroupFollowers.spec.ts diff --git a/tests/unit/specs/components/Group/GroupMembers.spec.ts b/tests/unit/specs/views/Group/GroupMembers.spec.ts similarity index 100% rename from tests/unit/specs/components/Group/GroupMembers.spec.ts rename to tests/unit/specs/views/Group/GroupMembers.spec.ts diff --git a/tests/unit/specs/components/Group/GroupSettings.spec.ts b/tests/unit/specs/views/Group/GroupSettings.spec.ts similarity index 100% rename from tests/unit/specs/components/Group/GroupSettings.spec.ts rename to tests/unit/specs/views/Group/GroupSettings.spec.ts diff --git a/tests/unit/specs/components/Group/GroupView.spec.ts b/tests/unit/specs/views/Group/GroupView.spec.ts similarity index 100% rename from tests/unit/specs/components/Group/GroupView.spec.ts rename to tests/unit/specs/views/Group/GroupView.spec.ts diff --git a/tests/unit/specs/components/Group/MyGroups.spec.ts b/tests/unit/specs/views/Group/MyGroups.spec.ts similarity index 100% rename from tests/unit/specs/components/Group/MyGroups.spec.ts rename to tests/unit/specs/views/Group/MyGroups.spec.ts diff --git a/tests/unit/specs/components/Group/SettingsView.spec.ts b/tests/unit/specs/views/Group/SettingsView.spec.ts similarity index 100% rename from tests/unit/specs/components/Group/SettingsView.spec.ts rename to tests/unit/specs/views/Group/SettingsView.spec.ts diff --git a/tests/unit/specs/components/Group/TimelineView.spec.ts b/tests/unit/specs/views/Group/TimelineView.spec.ts similarity index 100% rename from tests/unit/specs/components/Group/TimelineView.spec.ts rename to tests/unit/specs/views/Group/TimelineView.spec.ts diff --git a/tests/unit/specs/components/Group/__snapshots__/CreateView.spec.ts.snap b/tests/unit/specs/views/Group/__snapshots__/CreateView.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/Group/__snapshots__/CreateView.spec.ts.snap rename to tests/unit/specs/views/Group/__snapshots__/CreateView.spec.ts.snap diff --git a/tests/unit/specs/components/Group/__snapshots__/GroupFollowers.spec.ts.snap b/tests/unit/specs/views/Group/__snapshots__/GroupFollowers.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/Group/__snapshots__/GroupFollowers.spec.ts.snap rename to tests/unit/specs/views/Group/__snapshots__/GroupFollowers.spec.ts.snap diff --git a/tests/unit/specs/components/Group/__snapshots__/GroupMembers.spec.ts.snap b/tests/unit/specs/views/Group/__snapshots__/GroupMembers.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/Group/__snapshots__/GroupMembers.spec.ts.snap rename to tests/unit/specs/views/Group/__snapshots__/GroupMembers.spec.ts.snap diff --git a/tests/unit/specs/components/Group/__snapshots__/GroupSettings.spec.ts.snap b/tests/unit/specs/views/Group/__snapshots__/GroupSettings.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/Group/__snapshots__/GroupSettings.spec.ts.snap rename to tests/unit/specs/views/Group/__snapshots__/GroupSettings.spec.ts.snap diff --git a/tests/unit/specs/components/Group/__snapshots__/GroupView.spec.ts.snap b/tests/unit/specs/views/Group/__snapshots__/GroupView.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/Group/__snapshots__/GroupView.spec.ts.snap rename to tests/unit/specs/views/Group/__snapshots__/GroupView.spec.ts.snap diff --git a/tests/unit/specs/components/Group/__snapshots__/MyGroups.spec.ts.snap b/tests/unit/specs/views/Group/__snapshots__/MyGroups.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/Group/__snapshots__/MyGroups.spec.ts.snap rename to tests/unit/specs/views/Group/__snapshots__/MyGroups.spec.ts.snap diff --git a/tests/unit/specs/components/Group/__snapshots__/SettingsView.spec.ts.snap b/tests/unit/specs/views/Group/__snapshots__/SettingsView.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/Group/__snapshots__/SettingsView.spec.ts.snap rename to tests/unit/specs/views/Group/__snapshots__/SettingsView.spec.ts.snap diff --git a/tests/unit/specs/components/Group/__snapshots__/TimelineView.spec.ts.snap b/tests/unit/specs/views/Group/__snapshots__/TimelineView.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/Group/__snapshots__/TimelineView.spec.ts.snap rename to tests/unit/specs/views/Group/__snapshots__/TimelineView.spec.ts.snap diff --git a/tests/unit/specs/components/User/PasswordReset.spec.ts b/tests/unit/specs/views/User/PasswordReset.spec.ts similarity index 100% rename from tests/unit/specs/components/User/PasswordReset.spec.ts rename to tests/unit/specs/views/User/PasswordReset.spec.ts diff --git a/tests/unit/specs/components/User/RegisterView.spec.ts b/tests/unit/specs/views/User/RegisterView.spec.ts similarity index 100% rename from tests/unit/specs/components/User/RegisterView.spec.ts rename to tests/unit/specs/views/User/RegisterView.spec.ts diff --git a/tests/unit/specs/components/User/ValidateUser.spec.ts b/tests/unit/specs/views/User/ValidateUser.spec.ts similarity index 100% rename from tests/unit/specs/components/User/ValidateUser.spec.ts rename to tests/unit/specs/views/User/ValidateUser.spec.ts diff --git a/tests/unit/specs/components/User/__snapshots__/RegisterView.spec.ts.snap b/tests/unit/specs/views/User/__snapshots__/RegisterView.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/User/__snapshots__/RegisterView.spec.ts.snap rename to tests/unit/specs/views/User/__snapshots__/RegisterView.spec.ts.snap diff --git a/tests/unit/specs/components/User/__snapshots__/ValidateUser.spec.ts.snap b/tests/unit/specs/views/User/__snapshots__/ValidateUser.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/User/__snapshots__/ValidateUser.spec.ts.snap rename to tests/unit/specs/views/User/__snapshots__/ValidateUser.spec.ts.snap diff --git a/tests/unit/specs/components/User/__snapshots__/emailValidate.spec.ts.snap b/tests/unit/specs/views/User/__snapshots__/emailValidate.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/User/__snapshots__/emailValidate.spec.ts.snap rename to tests/unit/specs/views/User/__snapshots__/emailValidate.spec.ts.snap diff --git a/tests/unit/specs/components/User/__snapshots__/providerValidation.spec.ts.snap b/tests/unit/specs/views/User/__snapshots__/providerValidation.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/User/__snapshots__/providerValidation.spec.ts.snap rename to tests/unit/specs/views/User/__snapshots__/providerValidation.spec.ts.snap diff --git a/tests/unit/specs/components/User/__snapshots__/resendConfirmation.spec.ts.snap b/tests/unit/specs/views/User/__snapshots__/resendConfirmation.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/User/__snapshots__/resendConfirmation.spec.ts.snap rename to tests/unit/specs/views/User/__snapshots__/resendConfirmation.spec.ts.snap diff --git a/tests/unit/specs/components/User/__snapshots__/sendPasswordReset.spec.ts.snap b/tests/unit/specs/views/User/__snapshots__/sendPasswordReset.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/User/__snapshots__/sendPasswordReset.spec.ts.snap rename to tests/unit/specs/views/User/__snapshots__/sendPasswordReset.spec.ts.snap diff --git a/tests/unit/specs/components/User/__snapshots__/settingsOnboard.spec.ts.snap b/tests/unit/specs/views/User/__snapshots__/settingsOnboard.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/User/__snapshots__/settingsOnboard.spec.ts.snap rename to tests/unit/specs/views/User/__snapshots__/settingsOnboard.spec.ts.snap diff --git a/tests/unit/specs/components/User/emailValidate.spec.ts b/tests/unit/specs/views/User/emailValidate.spec.ts similarity index 100% rename from tests/unit/specs/components/User/emailValidate.spec.ts rename to tests/unit/specs/views/User/emailValidate.spec.ts diff --git a/tests/unit/specs/components/User/login.spec.ts b/tests/unit/specs/views/User/login.spec.ts similarity index 100% rename from tests/unit/specs/components/User/login.spec.ts rename to tests/unit/specs/views/User/login.spec.ts diff --git a/tests/unit/specs/components/User/providerValidation.spec.ts b/tests/unit/specs/views/User/providerValidation.spec.ts similarity index 100% rename from tests/unit/specs/components/User/providerValidation.spec.ts rename to tests/unit/specs/views/User/providerValidation.spec.ts diff --git a/tests/unit/specs/components/User/resendConfirmation.spec.ts b/tests/unit/specs/views/User/resendConfirmation.spec.ts similarity index 100% rename from tests/unit/specs/components/User/resendConfirmation.spec.ts rename to tests/unit/specs/views/User/resendConfirmation.spec.ts diff --git a/tests/unit/specs/components/User/sendPasswordReset.spec.ts b/tests/unit/specs/views/User/sendPasswordReset.spec.ts similarity index 100% rename from tests/unit/specs/components/User/sendPasswordReset.spec.ts rename to tests/unit/specs/views/User/sendPasswordReset.spec.ts diff --git a/tests/unit/specs/components/User/settingsOnboard.spec.ts b/tests/unit/specs/views/User/settingsOnboard.spec.ts similarity index 100% rename from tests/unit/specs/components/User/settingsOnboard.spec.ts rename to tests/unit/specs/views/User/settingsOnboard.spec.ts diff --git a/tests/unit/specs/components/admin/__snapshots__/adminGroupProfile.spec.ts.snap b/tests/unit/specs/views/admin/__snapshots__/adminGroupProfile.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/admin/__snapshots__/adminGroupProfile.spec.ts.snap rename to tests/unit/specs/views/admin/__snapshots__/adminGroupProfile.spec.ts.snap diff --git a/tests/unit/specs/components/admin/__snapshots__/adminProfile.spec.ts.snap b/tests/unit/specs/views/admin/__snapshots__/adminProfile.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/admin/__snapshots__/adminProfile.spec.ts.snap rename to tests/unit/specs/views/admin/__snapshots__/adminProfile.spec.ts.snap diff --git a/tests/unit/specs/components/admin/__snapshots__/adminUsersProfileView.spec.ts.snap b/tests/unit/specs/views/admin/__snapshots__/adminUsersProfileView.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/admin/__snapshots__/adminUsersProfileView.spec.ts.snap rename to tests/unit/specs/views/admin/__snapshots__/adminUsersProfileView.spec.ts.snap diff --git a/tests/unit/specs/components/admin/__snapshots__/dashboard.spec.ts.snap b/tests/unit/specs/views/admin/__snapshots__/dashboard.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/admin/__snapshots__/dashboard.spec.ts.snap rename to tests/unit/specs/views/admin/__snapshots__/dashboard.spec.ts.snap diff --git a/tests/unit/specs/components/admin/__snapshots__/groupProfiles.spec.ts.snap b/tests/unit/specs/views/admin/__snapshots__/groupProfiles.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/admin/__snapshots__/groupProfiles.spec.ts.snap rename to tests/unit/specs/views/admin/__snapshots__/groupProfiles.spec.ts.snap diff --git a/tests/unit/specs/components/admin/__snapshots__/instanceView.spec.ts.snap b/tests/unit/specs/views/admin/__snapshots__/instanceView.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/admin/__snapshots__/instanceView.spec.ts.snap rename to tests/unit/specs/views/admin/__snapshots__/instanceView.spec.ts.snap diff --git a/tests/unit/specs/components/admin/__snapshots__/instancesView.spec.ts.snap b/tests/unit/specs/views/admin/__snapshots__/instancesView.spec.ts.snap similarity index 88% rename from tests/unit/specs/components/admin/__snapshots__/instancesView.spec.ts.snap rename to tests/unit/specs/views/admin/__snapshots__/instancesView.spec.ts.snap index bea979cef..ef0219346 100644 --- a/tests/unit/specs/components/admin/__snapshots__/instancesView.spec.ts.snap +++ b/tests/unit/specs/views/admin/__snapshots__/instancesView.spec.ts.snap @@ -64,7 +64,7 @@ exports[`InstancesView > Show simple 1`] = `
    -
    +

    Mobilizon

    diff --git a/tests/unit/specs/components/admin/__snapshots__/profilesView.spec.ts.snap b/tests/unit/specs/views/admin/__snapshots__/profilesView.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/admin/__snapshots__/profilesView.spec.ts.snap rename to tests/unit/specs/views/admin/__snapshots__/profilesView.spec.ts.snap diff --git a/tests/unit/specs/components/admin/__snapshots__/settings.spec.ts.snap b/tests/unit/specs/views/admin/__snapshots__/settings.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/admin/__snapshots__/settings.spec.ts.snap rename to tests/unit/specs/views/admin/__snapshots__/settings.spec.ts.snap diff --git a/tests/unit/specs/components/admin/__snapshots__/usersView.spec.ts.snap b/tests/unit/specs/views/admin/__snapshots__/usersView.spec.ts.snap similarity index 100% rename from tests/unit/specs/components/admin/__snapshots__/usersView.spec.ts.snap rename to tests/unit/specs/views/admin/__snapshots__/usersView.spec.ts.snap diff --git a/tests/unit/specs/components/admin/adminGroupProfile.spec.ts b/tests/unit/specs/views/admin/adminGroupProfile.spec.ts similarity index 100% rename from tests/unit/specs/components/admin/adminGroupProfile.spec.ts rename to tests/unit/specs/views/admin/adminGroupProfile.spec.ts diff --git a/tests/unit/specs/components/admin/adminProfile.spec.ts b/tests/unit/specs/views/admin/adminProfile.spec.ts similarity index 100% rename from tests/unit/specs/components/admin/adminProfile.spec.ts rename to tests/unit/specs/views/admin/adminProfile.spec.ts diff --git a/tests/unit/specs/components/admin/adminUsersProfileView.spec.ts b/tests/unit/specs/views/admin/adminUsersProfileView.spec.ts similarity index 100% rename from tests/unit/specs/components/admin/adminUsersProfileView.spec.ts rename to tests/unit/specs/views/admin/adminUsersProfileView.spec.ts diff --git a/tests/unit/specs/components/admin/dashboard.spec.ts b/tests/unit/specs/views/admin/dashboard.spec.ts similarity index 100% rename from tests/unit/specs/components/admin/dashboard.spec.ts rename to tests/unit/specs/views/admin/dashboard.spec.ts diff --git a/tests/unit/specs/components/admin/groupProfiles.spec.ts b/tests/unit/specs/views/admin/groupProfiles.spec.ts similarity index 100% rename from tests/unit/specs/components/admin/groupProfiles.spec.ts rename to tests/unit/specs/views/admin/groupProfiles.spec.ts diff --git a/tests/unit/specs/components/admin/instanceView.spec.ts b/tests/unit/specs/views/admin/instanceView.spec.ts similarity index 100% rename from tests/unit/specs/components/admin/instanceView.spec.ts rename to tests/unit/specs/views/admin/instanceView.spec.ts diff --git a/tests/unit/specs/components/admin/instancesView.spec.ts b/tests/unit/specs/views/admin/instancesView.spec.ts similarity index 100% rename from tests/unit/specs/components/admin/instancesView.spec.ts rename to tests/unit/specs/views/admin/instancesView.spec.ts diff --git a/tests/unit/specs/components/admin/profilesView.spec.ts b/tests/unit/specs/views/admin/profilesView.spec.ts similarity index 100% rename from tests/unit/specs/components/admin/profilesView.spec.ts rename to tests/unit/specs/views/admin/profilesView.spec.ts diff --git a/tests/unit/specs/components/admin/settings.spec.ts b/tests/unit/specs/views/admin/settings.spec.ts similarity index 100% rename from tests/unit/specs/components/admin/settings.spec.ts rename to tests/unit/specs/views/admin/settings.spec.ts diff --git a/tests/unit/specs/components/admin/usersView.spec.ts b/tests/unit/specs/views/admin/usersView.spec.ts similarity index 100% rename from tests/unit/specs/components/admin/usersView.spec.ts rename to tests/unit/specs/views/admin/usersView.spec.ts