{"version":3,"file":"main-QGFAC1if.js","sources":["../src/utils/config.ts","../../openchat-shared/lib/domain/access.js","../../openchat-shared/lib/domain/auth.js","../../openchat-shared/lib/utils/bigint.js","../../openchat-shared/lib/utils/chat.js","../../openchat-shared/lib/utils/emailSignInSessionStorage.js","../../openchat-shared/lib/utils/identity.js","../../openchat-shared/lib/utils/identityStorage.js","../../openchat-shared/lib/constants.js","../../openchat-shared/lib/utils/network.js","../../openchat-shared/lib/utils/logging.js","../../openchat-shared/lib/utils/map.js","../../openchat-shared/lib/utils/rng.js","../../openchat-shared/lib/utils/set.js","../../openchat-shared/lib/utils/string.js","../../openchat-shared/lib/utils/validation.js","../../openchat-shared/lib/domain/chat/chat.js","../../openchat-shared/lib/domain/crypto.js","../../openchat-shared/lib/domain/error.js","../../openchat-shared/lib/domain/optionUpdate.js","../../openchat-shared/lib/domain/permission.js","../../openchat-shared/lib/domain/response.js","../../openchat-shared/lib/domain/stream.js","../../openchat-shared/lib/domain/user/user.js","../../openchat-shared/lib/domain/user/user.utils.js","../../openchat-shared/lib/domain/version.js","../../openchat-shared/lib/domain/feature.js","../../openchat-shared/lib/domain/chit.js","../../openchat-shared/lib/domain/bots.js","../../openchat-client/lib/stores/localStorageSetting.js","../../openchat-client/lib/constants.js","../../openchat-client/lib/stores/setStore.js","../../openchat-client/lib/stores/user.js","../../openchat-client/lib/utils/set.js","../../openchat-client/lib/utils/list.js","../../openchat-client/lib/utils/object.js","../../openchat-client/lib/stores/immutable.js","../../openchat-client/lib/stores/mapStore.js","../../openchat-client/lib/stores/recentlySentMessages.js","../../openchat-client/lib/stores/unconfirmed.js","../../openchat-client/lib/stores/network.js","../../openchat-client/lib/stores/ephemeralMessages.js","../../openchat-client/lib/stores/markRead.js","../../openchat-client/lib/stores/safeWritable.js","../../openchat-client/lib/utils/config.js","../../openchat-client/lib/stores/localUpdatesStore.js","../../openchat-client/lib/stores/localGlobalUpdates.js","../../openchat-client/lib/stores/crypto.js","../../openchat-client/lib/stores/global.js","../../openchat-client/lib/stores/dataByCommunityFactory.js","../../openchat-client/lib/stores/derived.js","../../openchat-client/lib/stores/localCommunitySummaryUpdates.js","../../openchat-client/lib/utils/permissions.js","../../openchat-client/lib/utils/community.js","../../openchat-client/lib/stores/community.js","../../openchat-client/lib/utils/user.js","../../openchat-client/lib/utils/date.js","../../openchat-client/lib/utils/rtcConnectionsManager.js","../../openchat-client/lib/utils/i18n.js","../../openchat-client/lib/utils/cryptoFormatter.js","../../openchat-client/lib/stores/proposalTallies.js","../../openchat-client/lib/utils/chat.js","../../openchat-client/lib/stores/snsFunctions.js","../../openchat-client/lib/stores/filteredProposals.js","../../openchat-client/lib/stores/dataByChatFactory.js","../../openchat-client/lib/stores/localMessageUpdates.js","../../openchat-client/lib/stores/localChatSummaryUpdates.js","../../openchat-client/lib/stores/dataByMessageContextFactory.js","../../openchat-client/lib/stores/failedMessages.js","../../openchat-client/lib/stores/translation.js","../../openchat-client/lib/stores/messageFilters.js","../../openchat-client/lib/stores/draftMessages.js","../../openchat-client/lib/stores/blockedUsers.js","../../openchat-client/lib/stores/chat.js","../../openchat-client/lib/stores/typing.js","../../openchat-client/lib/stores/undeletingMessages.js","../../openchat-client/lib/stores/identity.js","../../openchat-client/lib/stores/pinNumber.js","../../openchat-client/lib/stores/rules.js","../../openchat-client/lib/stores/authProviders.js","../../openchat-client/lib/utils/enums.js","../../openchat-client/lib/stores/diamond.js","../../openchat-client/lib/stores/flagStore.js","../../openchat-client/lib/stores/throttling.js","../../openchat-client/lib/stores/notifications.js","../../openchat-client/lib/stores/profiling.js","../../openchat-client/lib/stores/storage.js","../../openchat-client/lib/stores/permission.js","../../openchat-client/lib/stores/bots.js","../../openchat-client/lib/stores/minutesOnline.js","../../openchat-client/lib/utils/ga.js","../../openchat-client/lib/utils/profiling.js","../../openchat-client/lib/stores/background.js","../../openchat-client/lib/utils/poller.js","../../openchat-client/lib/events.js","../../openchat-client/lib/utils/cachePrimer.js","../../openchat-client/lib/utils/backgroundTasks.js","../../openchat-client/lib/utils/recentlyActiveUsersTracker.js","../../openchat-client/lib/stores/lastOnlineDates.js","../../openchat-client/lib/stores/recommendedGroupExclusions.js","../../openchat-client/lib/stores/userCreated.js","../../openchat-client/lib/utils/blob.js","../../openchat-client/lib/utils/fileSize.js","../../openchat-client/lib/utils/layout.js","../../openchat-client/lib/utils/media.js","../../openchat-client/lib/utils/rtc.js","../../openchat-client/lib/utils/time.js","../../openchat-client/lib/utils/tracking.js","../../openchat-client/lib/utils/updateSw.js","../../openchat-client/lib/liveState.js","../../openchat-client/lib/utils/range.js","../../openchat-client/lib/utils/validation.js","../../openchat-client/lib/utils/credentials.js","../../openchat-client/lib/utils/url.js","../../openchat-client/lib/utils/linkPreviews.js","../../openchat-client/lib/stores/i18n.js","../../openchat-client/lib/utils/location.js","../../openchat-client/lib/utils/webAuthn.js","../../openchat-client/lib/openchat.js","../../openchat-shared/lib/utils/session.js","../../openchat-shared/lib/utils/notifications.js","../../openchat-client/lib/utils/builtinBotCommands.js","../src/i18n/i18n.ts","../src/utils/urls.ts","../src/utils/markdown.ts","../src/utils/scream.ts","../src/stores/rtl.ts","../src/stores/screenDimensions.ts","../src/stores/time.ts","../src/components/TooltipPopup.svelte","../src/utils/alignment.ts","../src/utils/position.ts","../src/stores/tooltip.ts","../src/utils/devices.ts","../src/components/TooltipWrapper.svelte","../src/components/Hoverable.svelte","../src/theme/utils.ts","../src/theme/defaultDark.ts","../src/theme/community/blue.ts","../src/theme/defaultLight.ts","../src/theme/community/submarine.ts","../src/theme/community/nightvision.ts","../src/theme/community/matteblackgold.ts","../src/theme/community/barbie.ts","../src/theme/community/tokyonight.ts","../src/theme/community/solarizeddark.ts","../src/theme/community/halloween.ts","../src/theme/community/signals.ts","../src/theme/community/windoge98.ts","../src/theme/merge.ts","../src/utils/store.ts","../src/theme/themes.ts","../src/actions/translatable.ts","../src/components/Translatable.svelte","../src/components/icons/Verified.svelte","../src/components/Avatar.svelte","../src/components/SectionHeader.svelte","../src/stores/rightPanel.ts","../src/routes.ts","../src/stores/xframe.ts","../src/stores/layout.ts","../src/stores/menu.ts","../src/components/MenuIconLegacy.svelte","../src/components/HoverIcon.svelte","../src/stores/iconSize.ts","../src/components/Menu.svelte","../src/components/MenuItemLegacy.svelte","../src/utils/notifications.ts","../src/stores/toast.ts","../src/utils/pubsub.ts","../src/components/home/communities/CommunityMenu.svelte","../src/components/home/VisibilityLabel.svelte","../src/components/icons/WithVerifiedBadge.svelte","../src/components/Search.svelte","../src/utils/user.ts","../src/components/home/ChatListSearch.svelte","../src/components/icons/HeartMinus.svelte","../src/components/icons/HeartPlus.svelte","../src/components/chatSwipe.ts","../src/utils/domPurify.ts","../src/utils/emojis.ts","../src/components/home/Markdown.svelte","../src/utils/transition.ts","../src/components/MenuIcon.svelte","../src/components/MenuItem.svelte","../src/components/home/video/VideoCallIcon.svelte","../src/components/icons/DiamondBase.svelte","../src/components/icons/diamond.ts","../src/components/icons/Diamond.svelte","../src/components/home/profile/Streak.svelte","../src/stores/settings.ts","../src/components/home/profile/Badges.svelte","../src/components/home/ChatSummary.svelte","../src/components/home/ArchiveOffIcon.svelte","../src/components/home/SearchResult.svelte","../src/components/SignalsButton.svelte","../src/components/StandardButton.svelte","../src/components/Button.svelte","../src/actions/closeMenu.ts","../src/components/Loading.svelte","../src/components/Link.svelte","../src/components/home/EmojiPicker.svelte","../src/components/Legend.svelte","../src/components/TextArea.svelte","../src/components/home/ContentCaption.svelte","../src/utils/media.ts","../src/components/home/VideoContent.svelte","../src/stores/video.ts","../src/components/home/VideoCallContent.svelte","../src/components/Overlay.svelte","../src/components/ModalContent.svelte","../src/components/home/ImageContent.svelte","../src/components/home/AudioContent.svelte","../src/components/Progress.svelte","../src/components/home/PollAnswer.svelte","../src/components/home/PollContent.svelte","../src/components/home/FileContent.svelte","../src/components/home/IntersectionObserver.svelte","../src/stores/scrollPos.ts","../src/components/home/GenericPreview.svelte","../src/components/home/LinkPreviews.svelte","../src/components/home/Tweet.svelte","../src/components/home/YouTubePreview.svelte","../src/components/home/SpotifyPreview.svelte","../src/components/home/TextContent.svelte","../src/components/ButtonGroup.svelte","../src/components/icons/SpinningToken.svelte","../src/stores/claims.ts","../src/stores/automation.ts","../src/utils/trace.ts","../src/components/SecureButton.svelte","../src/components/RotationChallenge.svelte","../src/components/home/PrizeContent.svelte","../src/components/QRCode.svelte","../src/components/home/PrizeWinnerContent.svelte","../src/components/home/DeletedContent.svelte","../src/components/home/ReminderNotes.svelte","../src/stores/namedNeurons.ts","../src/stores/proposalVotes.ts","../src/components/home/proposals/ProposalVoteButton.svelte","../src/components/home/proposals/ProposalVotingProgress.svelte","../src/components/home/proposals/ProposalProgressLayout.svelte","../src/utils/math.ts","../src/components/home/proposals/ProposalContent.svelte","../src/components/icons/FancyLoader.svelte","../src/components/home/MessageContentInitial.svelte","../src/components/Input.svelte","../src/components/AreYouSure.svelte","../src/components/home/TruncatedAccount.svelte","../src/components/home/AccountInfo.svelte","../src/components/home/BalanceWithRefresh.svelte","../src/components/home/AcceptP2PSwapModal.svelte","../src/utils/exchange.ts","../src/components/ProgressStep.svelte","../src/components/icons/Spinner.svelte","../src/components/ProgressSteps.svelte","../src/stores/pinNumber.ts","../src/components/home/P2PSwapContent.svelte","../src/components/home/P2PSwapProgress.svelte","../src/components/home/ChatMessageContent.svelte","../src/components/home/BlockedContent.svelte","../src/components/home/CryptoContent.svelte","../src/components/home/PlaceholderContent.svelte","../src/components/home/GiphyContent.svelte","../src/components/home/MessageReminderCreatedContent.svelte","../src/components/home/MessageReminderContent.svelte","../src/components/home/ReportedMessageContent.svelte","../src/components/home/UserReferralCardContent.svelte","../src/components/home/RepliesTo.svelte","../src/components/home/UnresolvedReply.svelte","../src/components/home/DisappearsAt.svelte","../src/components/home/MessageReaction.svelte","../src/components/home/ThreadSummary.svelte","../src/utils/share.ts","../src/components/icons/Bitcoin.svelte","../src/stores/quickReactions.ts","../src/components/home/ChatMessageMenu.svelte","../src/components/Select.svelte","../src/components/home/ReminderBuilder.svelte","../src/components/Checkbox.svelte","../src/components/home/ReportMessage.svelte","../src/actions/longpress.ts","../src/components/home/TokenInput.svelte","../src/components/home/CryptoSelector.svelte","../src/components/home/TipButton.svelte","../src/components/home/TipBuilder.svelte","../src/components/home/TipThumbnail.svelte","../src/components/home/profile/WithRole.svelte","../src/components/home/profile/RoleIcon.svelte","../src/components/bots/BotMessageContext.svelte","../src/components/bots/ApiKey.svelte","../src/components/bots/ShowApiKey.svelte","../src/components/Tabs.svelte","../src/utils/bots.ts","../src/components/bots/install/ChoosePermissions.svelte","../src/components/bots/BotAvatar.svelte","../src/components/bots/BotCommands.svelte","../src/components/bots/install/BotProperties.svelte","../src/components/bots/BotSummary.svelte","../src/components/bots/ShowApiKeyModal.svelte","../src/components/bots/BotProfile.svelte","../src/components/InfoIcon.svelte","../src/components/home/ChatMessage.svelte","../src/components/home/TimeAndTicks.svelte","../src/components/home/EphemeralNote.svelte","../src/components/Arrow.svelte","../src/components/CollapsibleCard.svelte","../src/components/LinkButton.svelte","../src/components/home/thread/ThreadPreview.svelte","../src/stores/chatListView.ts","../src/components/home/communities/GroupChatsMenu.svelte","../src/components/home/communities/GroupChatsHeader.svelte","../src/utils/access.ts","../src/components/home/access/CredentialSelector.svelte","../src/components/home/access/LeafGateBuilder.svelte","../src/utils/time.ts","../src/components/home/DurationPicker.svelte","../src/components/home/access/AccessGateExpiry.svelte","../src/components/home/access/AccessGateBuilder.svelte","../src/components/home/access/AccessGateIcon.svelte","../src/components/icons/BlueDiamond.svelte","../src/components/icons/GoldDiamond.svelte","../src/components/home/access/CredentialGatePopup.svelte","../src/components/home/access/AccessGateSummary.svelte","../src/components/home/access/AccessGateCheckFailed.svelte","../src/components/AlertBox.svelte","../src/components/home/access/PaymentGateEvaluator.svelte","../src/components/home/upgrade/Footer.svelte","../src/components/home/upgrade/Congratulations.svelte","../src/components/home/upgrade/Expiry.svelte","../src/components/home/upgrade/Payment.svelte","../src/components/home/access/DiamondGateEvaluator.svelte","../src/components/home/profile/AuthProviderLogo.svelte","../src/components/home/profile/SignInOption.svelte","../src/components/home/profile/ChooseSignInOption.svelte","../src/utils/signin.ts","../src/components/home/EmailSigninFeedback.svelte","../src/components/home/profile/LinkAccounts.svelte","../src/components/home/HumanityConfirmation.svelte","../src/components/home/access/UniqueHumanGateEvaluator.svelte","../src/components/Radio.svelte","../src/components/home/access/AccessGateEvaluator.svelte","../src/components/home/access/CredentialGateEvaluator.svelte","../src/components/home/communities/PreviewWrapper.svelte","../src/components/FilteredUsername.svelte","../src/components/home/UnreadCount.svelte","../src/components/home/ChatListSectionButton.svelte","../src/components/home/communities/details/ChannelCard.svelte","../src/components/home/communities/details/BrowseChannels.svelte","../src/components/home/video/ActiveCallSummary.svelte","../src/components/home/ChatList.svelte","../src/components/home/communities/FavouriteChatsHeader.svelte","../src/components/home/communities/DirectChatsHeader.svelte","../src/components/home/communities/SelectedCommunityHeader.svelte","../src/components/home/thread/ThreadPreviews.svelte","../src/stores/activity.ts","../src/components/home/activity/ActivityEvent.svelte","../src/components/home/activity/ActivityIcon.svelte","../src/components/VirtualList.svelte","../src/components/home/activity/ActivityFeed.svelte","../src/components/home/LeftPanel.svelte","../src/components/Toast.svelte","../src/components/SelectChatModal.svelte","../src/components/home/communities/explore/CommunityCard.svelte","../src/components/home/communities/explore/CommunityBanner.svelte","../src/components/home/RecommendedGroup.svelte","../src/components/home/RecommendedGroups.svelte","../src/utils/remoteData.ts","../src/stores/search.svelte.ts","../src/stores/communityFilters.ts","../src/components/home/communities/explore/Explore.svelte","../src/components/home/communities/explore/CommunityCardLink.svelte","../src/components/home/CurrentChatMenu.svelte","../src/components/icons/ConvertToCommunity.svelte","../src/components/home/DisappearLabel.svelte","../src/components/home/ChatSubtext.svelte","../src/components/home/video/ActiveBroadcastSummary.svelte","../src/components/home/CurrentChatHeader.svelte","../src/components/home/SuspendModal.svelte","../src/components/home/video/ActiveVideoCallResume.svelte","../src/components/home/NonMessageEvent.svelte","../src/components/home/MembersChangedEvent.svelte","../src/components/home/AggregateCommonEvents.svelte","../src/components/home/GroupChangedEvent.svelte","../src/components/home/BotChangedEvent.svelte","../src/components/home/ChatEvent.svelte","../src/components/home/GroupChatCreatedEvent.svelte","../src/components/home/DirectChatCreatedEvent.svelte","../src/components/home/GroupRulesChangedEvent.svelte","../src/components/home/GroupVisibilityChangedEvent.svelte","../src/components/home/GroupInviteCodeChangedEvent.svelte","../src/components/home/PermissionsChangedEvent.svelte","../src/components/home/DisappearingMessageTimeUpdated.svelte","../src/components/home/ChatFrozenEvent.svelte","../src/components/home/ChatUnfrozenEvent.svelte","../src/components/GooglyEyes.svelte","../src/components/home/InitialChatMessage.svelte","../src/components/home/TimelineDate.svelte","../src/components/home/ChatEventList.svelte","../src/components/home/PrivatePreview.svelte","../src/components/Witch.svelte","../src/components/home/CurrentChatMessages.svelte","../src/components/home/ReplyingTo.svelte","../src/components/home/AudioAttacher.svelte","../src/components/home/MentionPicker.svelte","../src/components/home/FileAttacher.svelte","../src/components/home/Paperclip.svelte","../src/components/home/Smiley.svelte","../src/components/icons/MemeFighter.svelte","../src/components/home/MessageActions.svelte","../src/components/home/access/AccessGateIconsForChat.svelte","../src/components/home/PreviewFooter.svelte","../src/stores/snow.ts","../src/components/bots/botState.ts","../src/components/bots/CommandSelector.svelte","../src/components/UserPill.svelte","../src/components/bots/ValidatingInput.svelte","../src/components/home/SingleUserSelector.svelte","../src/components/NumberInput.svelte","../src/components/IntegerInput.svelte","../src/components/DateInput.svelte","../src/components/bots/CommandInstanceBuilder.svelte","../src/components/bots/CommandArg.svelte","../src/components/AlertBoxModal.svelte","../src/components/home/MessageEntry.svelte","../src/components/home/EmojiAutocompleter.svelte","../src/components/home/ThrottleCountdown.svelte","../src/components/home/MarkdownToggle.svelte","../src/components/home/Footer.svelte","../src/components/home/DraftMediaMessage.svelte","../src/components/Toggle.svelte","../src/components/home/PollBuilder.svelte","../src/components/home/CryptoTransferBuilder.svelte","../../openchat-shared/lib/utils/time.js","../src/components/home/CurrentChatSearchHeader.svelte","../src/components/home/GiphySelector.svelte","../src/components/home/MemeBuilder.svelte","../src/stores/messageToForward.ts","../src/components/home/communities/Import.svelte","../src/utils/randomMsg.ts","../src/components/Range.svelte","../src/components/home/PrizeContentBuilder.svelte","../src/components/icons/RandomDistribution.svelte","../src/components/icons/EqualDistribution.svelte","../src/components/home/P2PSwapContentBuilder.svelte","../src/components/home/ExternalContent.svelte","../src/components/bots/WithBotManagement.svelte","../src/components/bots/DirectChatHeader.svelte","../src/components/home/CurrentChat.svelte","../src/components/bots/install/BotInstaller.svelte","../src/components/bots/install/EnableAutonomousAccess.svelte","../src/components/bots/UninstalledDirectBot.svelte","../src/components/home/MiddlePanel.svelte","../src/components/home/NoChatSelected.svelte","../src/components/landingpages/ExternalLink.svelte","../src/components/home/profile/LearnToEarn.svelte","../src/components/home/profile/ChitBalance.svelte","../src/components/home/profile/ViewUserProfile.svelte","../src/components/MatchingUser.svelte","../src/components/FindUser.svelte","../src/components/home/SelectUsers.svelte","../src/components/home/ChooseMembers.svelte","../src/components/home/StageHeader.svelte","../src/components/home/SelectPermissionRole.svelte","../src/components/home/communities/edit/PermissionsEditor.svelte","../src/components/home/communities/PermissionsViewer.svelte","../src/components/home/RulesEditor.svelte","../src/components/icons/ChooseImage.svelte","../src/components/EditableAvatar.svelte","../src/stores/community.ts","../src/components/home/access/AccessGateControl.svelte","../src/components/home/VisibilityControl.svelte","../src/components/home/communities/edit/ChooseChannels.svelte","../src/components/home/communities/edit/EditableChannel.svelte","../src/components/home/communities/edit/Edit.svelte","../src/components/home/communities/edit/Details.svelte","../src/components/home/upgrade/Feature.svelte","../src/components/home/upgrade/Features.svelte","../src/components/SuspendedModal.svelte","../src/components/home/NoAccess.svelte","../src/components/TabHeader.svelte","../src/components/home/GroupPermissionsPartitionViewer.svelte","../src/components/home/GroupPermissionsViewer.svelte","../src/components/home/createOrUpdateGroup/CreateOrUpdateGroup.svelte","../src/components/home/createOrUpdateGroup/GroupDetails.svelte","../src/components/home/GroupPermissionsEditor.svelte","../src/components/home/profile/TransactionEndpoint.svelte","../src/components/home/profile/AccountTransactions.svelte","../src/components/home/profile/SwapCrypto.svelte","../src/components/home/profile/SwapProgress.svelte","../src/components/home/profile/Scanner.svelte","../src/components/home/profile/AccountSelector.svelte","../src/components/home/profile/SendCrypto.svelte","../src/components/home/profile/SaveAccount.svelte","../src/components/MultiToggle.svelte","../src/components/home/profile/ReceiveCrypto.svelte","../src/components/home/BitcoinAccountInfo.svelte","../src/components/home/profile/Accounts.svelte","../src/components/home/profile/RestrictedFeature.svelte","../src/components/pincode/Pincode.svelte","../src/components/pincode/PincodeInput.svelte","../src/components/home/profile/ReAuthenticate.svelte","../src/components/home/ForgotPinLabel.svelte","../src/components/home/profile/SetPinNumberModal.svelte","../src/components/home/profile/ManageAccounts.svelte","../src/components/home/profile/AccountsModal.svelte","../src/components/home/Invaders.svelte","../src/components/home/nav/LighteningBolt.svelte","../src/components/home/ChitHallOfFame.svelte","../src/components/home/nav/LeftNavItem.svelte","../src/components/home/nav/MainMenu.svelte","../src/components/home/nav/LeftNav.svelte","../src/utils/sns.ts","../src/components/home/proposal/TransferSNSFunds.svelte","../src/components/home/proposal/SelectedMatch.svelte","../src/components/home/proposal/VerificationProposal.svelte","../src/components/home/proposal/CommunityFinder.svelte","../src/components/home/proposal/GroupFinder.svelte","../src/components/bots/BotExplorer.svelte","../src/components/bots/ChooseBot.svelte","../src/components/home/proposal/MakeProposalModal.svelte","../src/components/bots/BotPublisher.svelte","../src/components/home/proposal/RemoveBot.svelte","../src/components/home/communities/Convert.svelte","../src/components/UsernameInput.svelte","../src/components/landingpages/HashLinkTarget.svelte","../src/components/landingpages/TermsContent.svelte","../src/components/register/Register.svelte","../src/components/home/LoggingInModal.svelte","../src/components/StorageUsage.svelte","../src/stores/fontSize.ts","../src/components/home/Stats.svelte","../src/components/DisplayNameInput.svelte","../src/components/home/profile/ThemeButton.svelte","../src/components/home/profile/ThemeSelector.svelte","../src/components/home/profile/VideoCallSettings.svelte","../src/components/home/profile/VideoCallRingtone.svelte","../src/components/calendar/utils.ts","../src/components/home/profile/ChitEventsForDay.svelte","../src/components/calendar/calendarState.svelte.ts","../src/components/calendar/weekdays.ts","../src/components/calendar/Calendar.svelte","../src/components/home/profile/ChitEvents.svelte","../src/components/home/profile/ReferredUsersList.svelte","../src/components/home/profile/LinkAccountsModal.svelte","../src/components/home/profile/UnlinkAccounts.svelte","../src/components/home/profile/ConfirmDeleteAccount.svelte","../src/components/home/profile/BotConfigData.svelte","../src/components/home/profile/UserProfile.svelte","../src/components/home/profile/LinkedAuthAccounts.svelte","../src/components/home/profile/FontSize.svelte","../src/components/home/profile/ReferUsers.svelte","../src/components/home/profile/CommunityProfile.svelte","../src/components/home/groupdetails/GroupDetailsHeader.svelte","../src/components/home/InviteUsersWithLink.svelte","../src/components/home/groupdetails/GroupDetailsBody.svelte","../src/components/home/DisappearingMessagesSummary.svelte","../src/components/home/groupdetails/AdvancedSection.svelte","../src/components/home/groupdetails/InviteUsersHeader.svelte","../src/components/home/groupdetails/InviteUsersBody.svelte","../src/components/home/groupdetails/InviteUsers.svelte","../src/components/home/communities/explore/Filters.svelte","../src/components/home/groupdetails/User.svelte","../src/components/home/groupdetails/Member.svelte","../src/components/home/groupdetails/MembersHeader.svelte","../src/components/home/communities/details/UserGroup.svelte","../src/components/home/communities/details/UserGroups.svelte","../src/components/bots/BotMember.svelte","../src/components/home/groupdetails/Members.svelte","../src/components/home/groupdetails/BlockedUser.svelte","../src/components/home/groupdetails/InvitedUser.svelte","../src/components/home/pinned/PinnedMessage.svelte","../src/components/home/pinned/PinnedMessages.svelte","../src/components/home/thread/ThreadHeader.svelte","../src/components/home/thread/Thread.svelte","../src/stores/proposalSections.ts","../src/components/home/ProposalGroupFilters.svelte","../src/components/home/communities/details/CommunityDetails.svelte","../src/components/home/communities/details/AdvancedSection.svelte","../src/components/home/communities/details/CommunityDetailsHeader.svelte","../src/components/home/communities/details/CommunitySummary.svelte","../src/components/Resizable.svelte","../src/components/home/video/ActiveCallParticipantsHeader.svelte","../src/components/home/video/ActiveCallParticipant.svelte","../src/components/home/video/ActiveCallParticipants.svelte","../src/components/home/communities/ScopeToggle.svelte","../src/components/home/ChannelOrCommunityMembers.svelte","../src/components/home/ChannelOrCommunitySummary.svelte","../src/components/home/ChannelOrCommunityInvite.svelte","../src/components/home/RightPanel.svelte","../src/components/home/groupdetails/GroupDetails.svelte","../src/components/home/RightPanelWrapper.svelte","../src/components/EditLabel.svelte","../src/components/NotFound.svelte","../src/components/home/AcceptRulesModal.svelte","../src/components/home/DailyChitModal.svelte","../src/components/home/ChitEarned.svelte","../src/components/bots/BotPermissionViewer.svelte","../src/components/bots/CommandViewer.svelte","../src/components/bots/CommandParameterViewer.svelte","../src/components/bots/InstallationLocationSelector.svelte","../src/components/bots/AutoBotBuilder.svelte","../src/utils/reactivity.svelte.ts","../src/components/bots/BotBuilderModal.svelte","../src/components/home/profile/VerifyHumanity.svelte","../src/components/home/Home.svelte","../src/components/home/AnonFooter.svelte","../src/components/OfflineFooter.svelte","../src/components/home/upgrade/Upgrade.svelte","../src/components/home/ChallengeModal.svelte","../src/components/BackgroundLogo.svelte","../src/components/home/PinNumberModal.svelte","../src/components/landingpages/Feature.svelte","../src/components/landingpages/FeaturesPage.svelte","../src/components/landingpages/Section.svelte","../src/components/landingpages/Link.svelte","../src/components/ArrowLink.svelte","../src/components/landingpages/Launch.svelte","../src/components/landingpages/Intro.svelte","../src/components/landingpages/OnChain.svelte","../src/components/landingpages/OnChainAlt.svelte","../src/components/landingpages/TeamCard.svelte","../src/components/landingpages/SellingPoints.svelte","../src/components/landingpages/BragBox.svelte","../src/components/landingpages/Brag.svelte","../src/components/SignInWithMagicLink.svelte","../src/components/landingpages/HomePage.svelte","../src/components/landingpages/RoadmapOverview.svelte","../src/components/landingpages/Team.svelte","../src/components/landingpages/MenuItems.svelte","../src/components/landingpages/MobileMenuItems.svelte","../src/components/landingpages/blog/BlogScreenshot.svelte","../src/components/landingpages/blog/posts.ts","../src/components/landingpages/blog/AccessGateExpiry.svelte","../src/components/landingpages/blog/SignIn.svelte","../src/components/landingpages/blog/VideoCallsReleased.svelte","../src/components/landingpages/blog/Translation.svelte","../src/components/landingpages/blog/CommunitiesReleased.svelte","../src/components/landingpages/blog/Communities.svelte","../src/components/landingpages/blog/Governance.svelte","../src/components/landingpages/Header.svelte","../src/components/landingpages/BlogPage.svelte","../src/components/landingpages/blog/BlogSummary.svelte","../src/components/landingpages/LandingPage.svelte","../src/components/landingpages/HostedLandingPage.svelte","../src/components/home/HomeRoute.svelte","../src/components/NotFoundWrapper.svelte","../src/components/Router.svelte","../src/components/ModalPage.svelte","../src/components/SwitchDomain.svelte","../src/components/UpgradeBanner.svelte","../src/components/web-components/profileLink.ts","../src/components/Head.svelte","../src/components/home/video/ActiveCallActions.svelte","../src/components/home/video/ActiveCallHeader.svelte","../src/components/home/video/ActiveCall.svelte","../src/components/home/video/VideoCallAccessRequests.svelte","../src/components/home/video/IncomingCall.svelte","../src/components/home/InstallPrompt.svelte","../src/components/home/NotificationsBar.svelte","../src/main.ts","../src/components/App.svelte","../src/components/upgrading/Upgrading.svelte","../src/components/Profiler.svelte","../src/components/Snow.svelte"],"sourcesContent":["export const configKeys = {\n locale: \"openchat_locale\",\n profile: \"openchat_profile\",\n primeCacheLimit: \"openchat_prime_cache_limit\",\n primeCacheBatchSize: \"openchat_prime_cache_batch_size\",\n lastCryptoSent: \"openchat_lastcryptosent\",\n fontSize: \"openchat_font_size\",\n enterSend: \"openchat_entersend\",\n chitPopup: \"openchat_chit_popup\",\n hideChitIcon: \"openchat_hide_chit_icon\",\n disableChit: \"openchat_disable_chit\",\n showHomeScreenPrompt: \"openchat_show_home_screen_prompt\",\n userInfoSection: \"openchat_userinfo_section\",\n appearanceSection: \"openchat_appearance_section\",\n chatsSection: \"openchat_chats_section\",\n restrictedSection: \"openchat_restricted_section\",\n videoSection: \"openchat_video_section\",\n accountSection: \"openchat_account_section\",\n referralSection: \"openchat_referral_section\",\n storageSection: \"openchat_storage_section\",\n verificationSectionOpen: \"openchat_verification_section\",\n accountsSectionOpen: \"openchat_accounts_section\",\n userStatsSection: \"openchat_user_stats_section\",\n userAdvancedSection: \"openchat_user_advanced_section\",\n userDeleteAccountSection: \"openchat_user_delete_account_section\",\n groupInfoSection: \"openchat_group_info_section\",\n groupVisibilitySection: \"openchat_group_visibility_section\",\n groupRulesSection: \"openchat_group_rules_section\",\n groupPermissionSection: \"openchat_group_permission_section\",\n groupStatsSection: \"openchat_group_stats_section\",\n groupInviteUsersSections: \"openchat_group_invite_users_section\",\n groupAdvancedSection: \"openchat_group_advanced_section\",\n theme: \"openchat_theme\",\n scrollStrategy: \"openchat_scrollstrategy\",\n selectedAuthProvider: \"openchat_selected_auth_provider\",\n selectedAuthEmail: \"openchat_selected_auth_email\",\n userCreated: \"openchat_user_created\",\n lowBandwidth: \"openchat_lowbandwidth\",\n renderPreviews: \"openchat_renderpreviews\",\n utcMode: \"openchat_utc_mode\",\n videoCameraOn: \"openchat_video_cameraon\",\n videoMicOn: \"openchat_video_micon\",\n videoSpeakerView: \"openchat_video_speaker_view\",\n dclickReply: \"openchat_dclickreply\",\n shownAirdropPrompt: \"openchat_shown_airdrop_prompt\",\n exploreGroupsDismissed: \"openchat_discover_hot_groups_dismissed\",\n communityVisibilitySection: \"openchat_community_visibility_section\",\n communityRulesSection: \"openchat_community_rules_section\",\n communityPermissionSection: \"openchat_community_permission_section\",\n communityStatsSection: \"openchat_community_stats_section\",\n communityAdvancedSection: \"openchat_community_advanced_section\",\n communityInviteUsersSections: \"openchat_community_invite_users_section\",\n referredUsersOpen: \"openchat_referred_users_section\",\n browseChannels: \"openchat_browse_channels\",\n useBlockLevelMarkdown: \"openchat_block_markdown\",\n hideTokenBalances: \"openchat_hide_token_balances\",\n};\n","export function isLeafGate(gate) {\n return gate.kind !== \"composite_gate\";\n}\nexport function shouldPreprocessGate(gate) {\n return [\n \"unique_person_gate\",\n \"credential_gate\",\n \"payment_gate\",\n \"lifetime_diamond_gate\",\n \"diamond_gate\",\n ].includes(gate.kind);\n}\nexport function isLocked(gate) {\n if (gate === undefined)\n return false;\n if (isCompositeGate(gate)) {\n switch (gate.operator) {\n case \"and\":\n return gate.gates.some(isLockedGate);\n case \"or\":\n return gate.gates.every(isLockedGate);\n }\n }\n else {\n return isLockedGate(gate);\n }\n}\nfunction isLockedGate(gate) {\n return gate.kind === \"locked_gate\";\n}\nexport function isCompositeGate(gate) {\n return gate.kind === \"composite_gate\";\n}\nexport function isNeuronGate(gate) {\n return gate.kind === \"neuron_gate\";\n}\nexport function isPaymentGate(gate) {\n return gate.kind === \"payment_gate\";\n}\nexport function isBalanceGate(gate) {\n return gate.kind === \"token_balance_gate\";\n}\nexport function isCredentialGate(gate) {\n return gate.kind === \"credential_gate\";\n}\nexport function isUniquePersonGate(gate) {\n return gate.kind === \"unique_person_gate\";\n}\nexport function isLifetimeDiamondGate(gate) {\n return gate.kind === \"lifetime_diamond_gate\";\n}\nexport function isDiamondGate(gate) {\n return gate.kind === \"diamond_gate\";\n}\nexport function defaultChatRules(level) {\n let text = \"\";\n if (level !== \"channel\") {\n text = `- Do not impersonate others in a deceptive or misleading manner\n- Do not intentionally share false or misleading information\n- Keep messages relevant to the ${level === \"community\" ? \"channel\" : \"group\"}\n\nIf you break the rules you might be blocked and/or have your message(s) deleted.`;\n }\n return {\n text,\n enabled: false,\n version: 0,\n };\n}\n","export var AuthProvider;\n(function (AuthProvider) {\n AuthProvider[\"II\"] = \"Internet Identity\";\n AuthProvider[\"EMAIL\"] = \"Email\";\n AuthProvider[\"ETH\"] = \"Ethereum\";\n AuthProvider[\"SOL\"] = \"Solana\";\n AuthProvider[\"NFID\"] = \"Google via NFID\";\n AuthProvider[\"PASSKEY\"] = \"Passkey\";\n})(AuthProvider || (AuthProvider = {}));\nexport class InMemoryAuthClientStorage {\n constructor() {\n this._map = new Map();\n }\n get(key) {\n return Promise.resolve(this._map.get(key) ?? null);\n }\n set(key, value) {\n this._map.set(key, value);\n return Promise.resolve();\n }\n remove(key) {\n this._map.delete(key);\n return Promise.resolve();\n }\n}\n","export function bigIntMax(...args) {\n return args.reduce((m, e) => (e > m ? e : m));\n}\nexport function bigIntMin(...args) {\n return args.reduce((m, e) => (e < m ? e : m));\n}\nexport function toBigInt32(value) {\n return BigInt(value) % BigInt(4294967296);\n}\nexport function toBigInt64(value) {\n return BigInt(value) % BigInt(\"18446744073709551616\");\n}\nexport function numberToBigInt(value) {\n return BigInt(Math.trunc(value));\n}\nconst integerRegex = /^-?[0-9]+$/;\nexport function parseBigInt(value) {\n if (value == null)\n return undefined;\n if (value.length === 0)\n return BigInt(0);\n return integerRegex.test(value) ? BigInt(value) : undefined;\n}\n","import { extractUserIdsFromMentions, UnsupportedValueError } from \"../domain\";\nexport function userIdsFromTransactions(transactions) {\n return transactions.reduce((userIds, t) => {\n // these are not necessarily userIds, but they *might* be\n if (t.from !== undefined) {\n userIds.add(t.from);\n }\n if (t.to !== undefined) {\n userIds.add(t.to);\n }\n return userIds;\n }, new Set());\n}\nexport function userIdsFromEvents(events) {\n const fakeFormatter = (k) => k;\n return events.reduce((userIds, e) => {\n if (\"userIds\" in e.event) {\n e.event.userIds.forEach((u) => userIds.add(u));\n }\n switch (e.event.kind) {\n case \"message\":\n userIds.add(e.event.sender);\n if (e.event.repliesTo !== undefined &&\n e.event.repliesTo.kind === \"rehydrated_reply_context\") {\n userIds.add(e.event.repliesTo.senderId);\n extractUserIdsFromMentions(getContentAsFormattedText(fakeFormatter, e.event.repliesTo.content, {})).forEach((id) => userIds.add(id));\n }\n if (e.event.content.kind === \"crypto_content\") {\n userIds.add(e.event.content.transfer.recipient);\n }\n else if (e.event.content.kind === \"reported_message_content\") {\n e.event.content.reports.forEach((r) => userIds.add(r.reportedBy));\n }\n else if (e.event.content.kind === \"prize_winner_content\") {\n userIds.add(e.event.content.transaction.recipient);\n }\n e.event.reactions.forEach((r) => r.userIds.forEach((u) => userIds.add(u)));\n extractUserIdsFromMentions(getContentAsFormattedText(fakeFormatter, e.event.content, {})).forEach((id) => userIds.add(id));\n break;\n case \"member_joined\":\n case \"member_left\":\n userIds.add(e.event.userId);\n break;\n case \"name_changed\":\n case \"desc_changed\":\n case \"rules_changed\":\n case \"avatar_changed\":\n case \"role_changed\":\n case \"permissions_changed\":\n case \"group_visibility_changed\":\n case \"group_invite_code_changed\":\n userIds.add(e.event.changedBy);\n break;\n case \"group_chat_created\":\n userIds.add(e.event.created_by);\n break;\n case \"members_added\":\n userIds.add(e.event.addedBy);\n break;\n case \"members_removed\":\n userIds.add(e.event.removedBy);\n break;\n case \"users_blocked\":\n userIds.add(e.event.blockedBy);\n break;\n case \"users_unblocked\":\n userIds.add(e.event.unblockedBy);\n break;\n case \"message_pinned\":\n userIds.add(e.event.pinnedBy);\n break;\n case \"message_unpinned\":\n userIds.add(e.event.unpinnedBy);\n break;\n case \"events_ttl_updated\":\n case \"external_url_updated\":\n case \"gate_updated\":\n userIds.add(e.event.updatedBy);\n break;\n case \"users_invited\":\n userIds.add(e.event.invitedBy);\n e.event.userIds.forEach((id) => userIds.add(id));\n break;\n case \"chat_frozen\":\n userIds.add(e.event.frozenBy);\n break;\n case \"chat_unfrozen\":\n userIds.add(e.event.unfrozenBy);\n break;\n case \"bot_added\":\n userIds.add(e.event.userId);\n userIds.add(e.event.addedBy);\n break;\n case \"bot_removed\":\n userIds.add(e.event.removedBy);\n break;\n case \"bot_updated\":\n userIds.add(e.event.userId);\n userIds.add(e.event.updatedBy);\n break;\n case \"aggregate_common_events\":\n case \"direct_chat_created\":\n case \"empty\":\n case \"members_added_to_default_channel\":\n break;\n default:\n console.warn(\"Unexpected ChatEvent type received\", e.event);\n }\n return userIds;\n }, new Set());\n}\nexport function getContentAsFormattedText(formatter, content, cryptoLookup) {\n let text;\n if (content.kind === \"text_content\") {\n text = content.text;\n }\n else if (content.kind === \"image_content\") {\n text = captionedContent(\"image\", content.caption);\n }\n else if (content.kind === \"video_content\") {\n text = captionedContent(\"video\", content.caption);\n }\n else if (content.kind === \"audio_content\") {\n text = captionedContent(\"audio\", content.caption);\n }\n else if (content.kind === \"file_content\") {\n text = captionedContent(content.name, content.caption);\n }\n else if (content.kind === \"crypto_content\") {\n text = captionedContent(formatter(\"tokenTransfer.transfer\", {\n values: { token: cryptoLookup[content.transfer.ledger]?.symbol ?? \"Unknown\" },\n }), content.caption);\n }\n else if (content.kind === \"deleted_content\" || content.kind === \"blocked_content\") {\n text = \"deleted message\";\n }\n else if (content.kind === \"placeholder_content\") {\n text = \"placeholder content\";\n }\n else if (content.kind === \"bot_placeholder_content\") {\n text = \"Bot working ...\";\n }\n else if (content.kind === \"poll_content\") {\n text = content.config.text ?? \"poll\";\n }\n else if (content.kind === \"proposal_content\") {\n text = content.proposal.title;\n }\n else if (content.kind === \"giphy_content\") {\n text = captionedContent(formatter(\"giphyMessage\"), content.caption);\n }\n else if (content.kind === \"p2p_swap_content\" || content.kind === \"p2p_swap_content_initial\") {\n text = captionedContent(\"p2p swap\", content.caption);\n }\n else if (content.kind === \"prize_content\" || content.kind === \"prize_content_initial\") {\n text = captionedContent(formatter(\"prizeMessage\"), content.caption);\n }\n else if (content.kind === \"prize_winner_content\") {\n text = \"Prize winner message\";\n }\n else if (content.kind === \"message_reminder_content\") {\n text = content.notes ?? \"Message reminder\";\n }\n else if (content.kind === \"message_reminder_created_content\") {\n text = content.notes ?? \"Message reminder\";\n }\n else if (content.kind === \"user_referral_card\") {\n text = formatter(\"referralHeader\");\n }\n else if (content.kind === \"reported_message_content\") {\n text = \"Reported message\";\n }\n else if (content.kind === \"meme_fighter_content\") {\n text = \"Meme Fighter message\";\n }\n else if (content.kind === \"video_call_content\") {\n text = \"Video call\";\n }\n else {\n throw new UnsupportedValueError(\"Unrecognised content type\", content);\n }\n return text.trim();\n}\nexport function getContentAsText(content) {\n if (\"text\" in content) {\n return content.text;\n }\n else if (\"caption\" in content) {\n return content.caption;\n }\n else if (content.kind === \"poll_content\") {\n return content.config.text;\n }\n}\nfunction captionedContent(type, caption) {\n if (caption) {\n return type + \" - \" + caption;\n }\n else {\n return type;\n }\n}\nexport function indexRangeForChat(chat) {\n return [getMinVisibleEventIndex(chat), chat.latestEventIndex];\n}\nexport function getMinVisibleEventIndex(chat) {\n if (chat.kind === \"direct_chat\")\n return 0;\n return chat.minVisibleEventIndex;\n}\nexport function getDisplayDate(chat) {\n let latestUpdate = BigInt(0);\n switch (chat.kind) {\n case \"direct_chat\":\n latestUpdate = chat.dateCreated;\n break;\n case \"group_chat\":\n case \"channel\":\n if (chat.membership?.joined !== undefined) {\n latestUpdate = chat.membership.joined;\n }\n break;\n }\n if (chat.latestMessage !== undefined && chat.latestMessage.timestamp > latestUpdate) {\n latestUpdate = chat.latestMessage.timestamp;\n }\n if (chat.eventsTtlLastUpdated > latestUpdate) {\n latestUpdate = chat.eventsTtlLastUpdated;\n }\n return latestUpdate;\n}\nexport function compareChats(a, b) {\n return Number(getDisplayDate(b) - getDisplayDate(a));\n}\nexport function emptyChatMetrics() {\n return {\n audioMessages: 0,\n edits: 0,\n icpMessages: 0,\n sns1Messages: 0,\n ckbtcMessages: 0,\n giphyMessages: 0,\n deletedMessages: 0,\n reportedMessages: 0,\n fileMessages: 0,\n pollVotes: 0,\n textMessages: 0,\n imageMessages: 0,\n replies: 0,\n videoMessages: 0,\n polls: 0,\n reactions: 0,\n };\n}\nexport function emptyRules() {\n return {\n text: \"\",\n enabled: false,\n version: 0,\n };\n}\nexport function compareRoles(a, b) {\n if (a === b)\n return 0;\n if (a === \"owner\")\n return 1;\n if (b === \"owner\")\n return -1;\n if (a === \"admin\")\n return 1;\n if (b === \"admin\")\n return -1;\n if (a === \"moderator\")\n return 1;\n if (b === \"moderator\")\n return -1;\n if (a === \"member\")\n return 1;\n return -1;\n}\nexport function routeForMessage(scope, ctx, messageIndex) {\n return ctx.threadRootMessageIndex === undefined\n ? `${routeForMessageContext(scope, ctx)}/${messageIndex}`\n : `${routeForMessageContext(scope, ctx)}/${messageIndex}?open=true`;\n}\nexport function routeForMessageContext(scope, { chatId, threadRootMessageIndex }, open = false) {\n return threadRootMessageIndex === undefined\n ? routeForChatIdentifier(scope, chatId)\n : `${routeForChatIdentifier(scope, chatId)}/${threadRootMessageIndex}${open ? \"?open=true\" : \"\"}`;\n}\nexport function routeForChatIdentifier(scope, id) {\n const prefix = scope === \"favourite\" ? \"/favourite\" : \"\";\n switch (id.kind) {\n case \"direct_chat\":\n return `${prefix}/user/${id.userId}`;\n case \"group_chat\":\n return `${prefix}/group/${id.groupId}`;\n case \"channel\":\n return `${prefix}/community/${id.communityId}/channel/${id.channelId}`;\n }\n}\nexport function chatIdentifierToString(chatId) {\n switch (chatId.kind) {\n case \"direct_chat\":\n return chatId.userId;\n case \"group_chat\":\n return chatId.groupId;\n case \"channel\":\n return `${chatId.communityId}_${chatId.channelId}`;\n default:\n throw new UnsupportedValueError(\"Unknown chatId kind\", chatId);\n }\n}\nexport function contentTypeToPermission(contentType) {\n switch (contentType) {\n case \"image_content\":\n return \"image\";\n case \"video_content\":\n return \"video\";\n case \"audio_content\":\n return \"audio\";\n case \"file_content\":\n return \"file\";\n default:\n throw new UnsupportedValueError(\"Unknown attachment content type\", contentType);\n }\n}\nexport function mapAcceptP2PSwapResponseToStatus(response, userId) {\n switch (response.kind) {\n case \"success\":\n return {\n kind: \"p2p_swap_accepted\",\n acceptedBy: userId,\n token1TxnIn: response.token1TxnIn,\n };\n case \"already_reserved\":\n return {\n kind: \"p2p_swap_reserved\",\n reservedBy: response.reservedBy,\n };\n case \"already_accepted\":\n return {\n kind: \"p2p_swap_accepted\",\n acceptedBy: response.acceptedBy,\n token1TxnIn: response.token1TxnIn,\n };\n case \"already_completed\":\n return {\n kind: \"p2p_swap_completed\",\n acceptedBy: response.acceptedBy,\n token1TxnIn: response.token1TxnIn,\n token0TxnOut: response.token0TxnOut,\n token1TxnOut: response.token1TxnOut,\n };\n case \"swap_cancelled\":\n return {\n kind: \"p2p_swap_cancelled\",\n token0TxnOut: response.token0TxnOut,\n };\n case \"swap_expired\":\n return {\n kind: \"p2p_swap_expired\",\n token0TxnOut: response.token0TxnOut,\n };\n default:\n return {\n kind: \"p2p_swap_open\",\n };\n }\n}\nexport function mapCancelP2PSwapResponseToStatus(response) {\n switch (response.kind) {\n case \"success\":\n return {\n kind: \"p2p_swap_cancelled\",\n };\n case \"already_reserved\":\n return {\n kind: \"p2p_swap_reserved\",\n reservedBy: response.reservedBy,\n };\n case \"already_accepted\":\n return {\n kind: \"p2p_swap_accepted\",\n acceptedBy: response.acceptedBy,\n token1TxnIn: response.token1TxnIn,\n };\n case \"already_completed\":\n return {\n kind: \"p2p_swap_completed\",\n acceptedBy: response.acceptedBy,\n token1TxnIn: response.token1TxnIn,\n token0TxnOut: response.token0TxnOut,\n token1TxnOut: response.token1TxnOut,\n };\n case \"swap_cancelled\":\n return {\n kind: \"p2p_swap_cancelled\",\n token0TxnOut: response.token0TxnOut,\n };\n case \"swap_expired\":\n return {\n kind: \"p2p_swap_expired\",\n token0TxnOut: response.token0TxnOut,\n };\n default:\n return {\n kind: \"p2p_swap_open\",\n };\n }\n}\n","import { ECDSAKeyIdentity } from \"@dfinity/identity\";\nconst KEY_STORAGE_EMAIL_LINK = \"email_link\";\nconst KEY_STORAGE_EMAIL_LINK_CONTEXT = \"email_link_context\";\nexport async function storeEmailSignInSession(storage, session) {\n await storage.set(KEY_STORAGE_EMAIL_LINK, session.key.getKeyPair());\n await storage.set(KEY_STORAGE_EMAIL_LINK_CONTEXT, JSON.stringify({\n email: session.email,\n userKey: Array.from(session.userKey),\n expiration: session.expiration.toString(),\n }));\n}\nexport async function getEmailSignInSession(storage) {\n const keyPair = (await storage.get(KEY_STORAGE_EMAIL_LINK));\n if (keyPair == null)\n return undefined;\n const contextString = (await storage.get(KEY_STORAGE_EMAIL_LINK_CONTEXT));\n if (contextString == null)\n return undefined;\n const key = await ECDSAKeyIdentity.fromKeyPair(keyPair);\n const context = JSON.parse(contextString);\n return {\n key,\n email: context.email,\n userKey: Uint8Array.from(context.userKey),\n expiration: BigInt(context.expiration),\n };\n}\nexport async function removeEmailSignInSession(storage) {\n storage.remove(KEY_STORAGE_EMAIL_LINK);\n storage.remove(KEY_STORAGE_EMAIL_LINK_CONTEXT);\n}\n","import { DelegationChain, DelegationIdentity } from \"@dfinity/identity\";\nimport { SignIdentity } from \"@dfinity/agent\";\nexport function buildDelegationIdentity(userKey, sessionKey, delegation, signature) {\n const delegations = [\n {\n delegation,\n signature,\n },\n ];\n const delegationChain = DelegationChain.fromDelegations(delegations, userKey.buffer);\n return DelegationIdentity.fromDelegation(sessionKey, delegationChain);\n}\nexport function toDer(key) {\n return new Uint8Array(key.getPublicKey().toDer());\n}\n","import { SignIdentity } from \"@dfinity/agent\";\nimport { IdbStorage } from \"@dfinity/auth-client\";\nimport { DelegationChain, DelegationIdentity, ECDSAKeyIdentity, isDelegationValid } from \"@dfinity/identity\";\nconst KEY_STORAGE_AUTH_PRINCIPAL = \"auth_principal\";\nconst KEY_STORAGE_KEY = \"identity\";\nconst KEY_STORAGE_DELEGATION = \"delegation\";\nexport class IdentityStorage {\n constructor(dbName) {\n this.storage = new IdbStorage({ dbName });\n }\n static createForAuthIdentity() {\n return new IdentityStorage(\"auth-client-db\");\n }\n static createForOcIdentity() {\n return new IdentityStorage(\"oc-auth-db\");\n }\n async get(authPrincipal) {\n if (authPrincipal !== undefined) {\n const storedAuthPrincipal = await this.storage.get(KEY_STORAGE_AUTH_PRINCIPAL);\n if (storedAuthPrincipal == null)\n return undefined;\n if (storedAuthPrincipal !== authPrincipal) {\n this.remove();\n return undefined;\n }\n }\n const key = await this.storage.get(KEY_STORAGE_KEY);\n if (key == null)\n return undefined;\n const chainJson = await this.storage.get(KEY_STORAGE_DELEGATION);\n if (chainJson == null)\n return undefined;\n const chain = DelegationChain.fromJSON(chainJson);\n if (!isDelegationValid(chain)) {\n this.remove();\n return undefined;\n }\n const id = await ECDSAKeyIdentity.fromKeyPair(key);\n return DelegationIdentity.fromDelegation(id, chain);\n }\n async set(key, chain, authPrincipal) {\n if (authPrincipal !== undefined) {\n await this.storage.set(KEY_STORAGE_AUTH_PRINCIPAL, authPrincipal);\n }\n await this.storage.set(KEY_STORAGE_KEY, key.getKeyPair());\n await this.storage.set(KEY_STORAGE_DELEGATION, JSON.stringify(chain.toJSON()));\n }\n async remove() {\n await this.storage.remove(KEY_STORAGE_AUTH_PRINCIPAL);\n await this.storage.remove(KEY_STORAGE_KEY);\n await this.storage.remove(KEY_STORAGE_DELEGATION);\n }\n}\n","export const ONLINE_THRESHOLD = 120;\nexport const MAX_MESSAGES = 100;\nexport const MAX_EVENTS = 500;\nexport const MAX_ACTIVITY_EVENTS = 1000;\nexport const MAX_MISSING = 30;\nexport const OPENCHAT_VIDEO_CALL_USER_ID = \"wp3oc-ig6b4-6xvef-yoj27-qt3kw-u2xmp-qbvuv-2grco-s2ndy-wv3ud-7qe\";\nexport const OPENCHAT_VIDEO_CALL_USERNAME = \"VideoCallBot\";\nexport const OPENCHAT_VIDEO_CALL_AVATAR_URL = \"/assets/video_call.svg\";\nexport const OPENCHAT_BOT_USER_ID = \"zzyk3-openc-hatbo-tq7my-cai\";\nexport const OPENCHAT_BOT_USERNAME = \"OpenChatBot\";\nexport const OPENCHAT_BOT_AVATAR_URL = \"/assets/robot.svg\";\nexport const AIRDROP_BOT_USERNAME = \"AirdropBot\";\nexport const AIRDROP_BOT_AVATAR_URL = \"/assets/airdrop_bot.svg\";\nexport const WEBAUTHN_ORIGINATING_CANISTER = \"zzzxd-webau-thnke-yr7oc-cai\";\n// downlink is the effective bandwidth estimate in megabits per second, rounded to the nearest multiple of 25 kilobits per seconds.\nexport const MIN_DOWNLINK = 0.05;\nexport const ONE_MINUTE_MILLIS = 60 * 1000;\nexport const ONE_HOUR = 60 * ONE_MINUTE_MILLIS;\nexport const ONE_DAY = 24 * ONE_HOUR;\nexport const ONE_WEEK = ONE_DAY * 7;\nexport const ONE_MONTH = ONE_WEEK * 4;\nexport const ONE_YEAR = 365 * ONE_DAY;\nexport const LARGE_GROUP_THRESHOLD = 1000;\n","import { MIN_DOWNLINK } from \"../constants\";\nexport function offline() {\n return !navigator.onLine || criticalBandwith();\n}\nfunction criticalBandwith() {\n return (\"connection\" in navigator &&\n navigator.connection !== undefined &&\n navigator.connection.downlink < MIN_DOWNLINK);\n}\n","import Rollbar, {} from \"rollbar\";\nimport { offline } from \"./network\";\nimport { AnonymousOperationError } from \"../domain\";\nlet rollbar;\nexport function inititaliseLogger(apikey, version, env) {\n if (env === \"production\") {\n rollbar = Rollbar.init({\n accessToken: apikey,\n captureUncaught: true,\n autoInstrument: false,\n logLevel: \"error\",\n environment: env,\n enabled: env === \"production\",\n captureUnhandledRejections: true,\n payload: {\n environment: env,\n client: {\n javascript: {\n source_map_enabled: true,\n code_version: version,\n guess_uncaught_frames: true,\n },\n },\n },\n });\n }\n return {\n error(message, error, ...optionalParams) {\n if (error instanceof AnonymousOperationError)\n return;\n console.error(message, error, optionalParams);\n if (!offline()) {\n rollbar?.error(error, message, optionalParams);\n }\n },\n log(message, ...optionalParams) {\n console.log(message, optionalParams);\n },\n debug(message, ...optionalParams) {\n console.debug(message, optionalParams);\n },\n };\n}\nexport function debug(data, msg) {\n if (msg) {\n console.log(msg, data);\n }\n else {\n console.log(data);\n }\n return data;\n}\nexport function logDuration(msg, started) {\n console.debug(`PERF: ${msg}`, Date.now() - started);\n}\n","/**\n * we have quite a few maps that are keyed on chatId\n * These are usually Record\n * But that doesn't work with ChatIdentifier\n * */\nexport class SafeMap {\n constructor(toString, fromString, _map = new Map()) {\n this.toString = toString;\n this.fromString = fromString;\n this._map = _map;\n }\n map(fn) {\n const mapped = [...this._map.entries()].map(([k, v]) => {\n return [k, fn(this.fromString(k), v)];\n });\n return new SafeMap(this.toString, this.fromString, new Map(mapped));\n }\n merge(other) {\n other.forEach((val, key) => {\n this.set(key, val);\n });\n return this;\n }\n filter(fn) {\n return this.entries()\n .filter(([k, v]) => {\n return fn(v, k);\n })\n .reduce((agg, [k, v]) => {\n agg.set(k, v);\n return agg;\n }, new SafeMap(this.toString, this.fromString));\n }\n clone() {\n const clone = new SafeMap(this.toString, this.fromString, new Map(this._map));\n return clone;\n }\n empty() {\n return new SafeMap(this.toString, this.fromString);\n }\n clear() {\n this._map.clear();\n }\n values() {\n return [...this._map.values()];\n }\n keys() {\n return [...this._map.keys()].map((k) => this.fromString(k));\n }\n entries() {\n return [...this._map.entries()].map(([key, value]) => [\n this.fromString(key),\n value,\n ]);\n }\n delete(key) {\n if (this._map.size === 0)\n return false;\n return this._map.delete(this.toString(key));\n }\n forEach(callbackfn) {\n this._map.forEach((value, key) => {\n callbackfn(value, this.fromString(key));\n });\n }\n get(key) {\n if (this._map.size === 0)\n return undefined;\n return this._map.get(this.toString(key));\n }\n has(key) {\n if (this._map.size === 0)\n return false;\n return this._map.has(this.toString(key));\n }\n set(key, value) {\n this._map.set(this.toString(key), value);\n return this;\n }\n get size() {\n return this._map.size;\n }\n toMap() {\n return this._map;\n }\n}\n// This is a bit weird\nexport class GlobalMap extends SafeMap {\n constructor(_map = new Map()) {\n super((_) => \"global\", (_) => \"global\", _map);\n }\n}\nexport class ChatMap extends SafeMap {\n constructor(_map = new Map()) {\n super((k) => JSON.stringify(k), (k) => JSON.parse(k), _map);\n }\n static fromList(things) {\n return things.reduce((map, c) => {\n map.set(c.id, c);\n return map;\n }, new ChatMap());\n }\n static fromMap(map) {\n return new ChatMap(map);\n }\n static fromJSON(json) {\n return new ChatMap(new Map(JSON.parse(json)));\n }\n}\nexport class MessageContextMap extends SafeMap {\n constructor(_map = new Map()) {\n super((k) => JSON.stringify(k), (k) => JSON.parse(k), _map);\n }\n static fromMap(map) {\n return new MessageContextMap(map);\n }\n}\nexport class CommunityMap extends SafeMap {\n constructor() {\n super((k) => k.communityId, (k) => ({ kind: \"community\", communityId: k }));\n }\n static fromList(things) {\n return things.reduce((map, c) => {\n map.set(c.id, c);\n return map;\n }, new CommunityMap());\n }\n}\nexport class MessageMap extends SafeMap {\n constructor(entries) {\n super((k) => k.toString(), (k) => BigInt(k));\n if (entries !== undefined) {\n for (const [k, v] of entries) {\n this.set(k, v);\n }\n }\n }\n}\nexport function getOrAdd(map, key, value) {\n const existing = map.get(key);\n if (existing !== undefined) {\n return existing;\n }\n map.set(key, value);\n return value;\n}\n","export function random32() {\n const bytes = new Uint32Array(1);\n crypto.getRandomValues(bytes);\n return bytes[0];\n}\nexport function random64() {\n const bytes = new BigUint64Array(1);\n crypto.getRandomValues(bytes);\n return bytes[0];\n}\nexport function random128() {\n const bytes = new BigUint64Array(2);\n crypto.getRandomValues(bytes);\n return (bytes[0] << BigInt(64)) + bytes[1];\n}\n","export class ObjectSet {\n constructor(_set = new Set()) {\n this._set = _set;\n }\n toString(value) {\n return JSON.stringify(value);\n }\n clone() {\n const clone = new ObjectSet(new Set(this._set));\n return clone;\n }\n empty() {\n return new ObjectSet();\n }\n clear() {\n this._set.clear();\n }\n values() {\n return Array.from(this._set).map((value) => JSON.parse(value));\n }\n delete(value) {\n return this._set.delete(this.toString(value));\n }\n has(value) {\n return this._set.has(this.toString(value));\n }\n add(value) {\n this._set.add(this.toString(value));\n return this;\n }\n get size() {\n return this._set.size;\n }\n toSet() {\n return this._set;\n }\n static fromList(values) {\n const set = new ObjectSet();\n values.forEach((value) => set.add(value));\n return set;\n }\n}\n","import { Principal } from \"@dfinity/principal\";\nexport const HEX_REGEX = new RegExp(\"^[A-Fa-f0-9]+$\");\nexport function toTitleCase(str) {\n return str.replace(/\\w\\S*/g, (txt) => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase());\n}\nexport function isPrincipalValid(text) {\n try {\n Principal.fromText(text);\n return true;\n }\n catch (_e) {\n return false;\n }\n}\nexport function isSubAccountValid(text) {\n return text.length <= 64 && isHexString(text);\n}\nexport function isAccountIdentifierValid(text) {\n return text.length === 64 && isHexString(text);\n}\nexport function isHexString(text) {\n return HEX_REGEX.test(text);\n}\nexport function isUrl(text) {\n try {\n new URL(text);\n return true;\n }\n catch {\n return false;\n }\n}\n","export class ValidationErrors {\n constructor() {\n this.errors = new Map();\n }\n addErrors(key, errors) {\n if (!Array.isArray(errors))\n errors = [errors];\n if (errors.length === 0)\n return;\n const current = this.errors.get(key) ?? [];\n errors.forEach((e) => current.push(e));\n this.errors.set(key, current);\n }\n has(key) {\n return this.errors.has(key);\n }\n get(key) {\n return this.errors.get(key) ?? [];\n }\n get size() {\n return this.errors.size;\n }\n}\n","import { emptyChatMetrics } from \"../../utils\";\nexport function isAttachmentContent(content) {\n switch (content.kind) {\n case \"image_content\":\n case \"video_content\":\n case \"audio_content\":\n case \"file_content\":\n return true;\n default:\n return false;\n }\n}\nexport function isEditableContent(kind) {\n switch (kind) {\n case \"file_content\":\n case \"text_content\":\n case \"image_content\":\n case \"video_content\":\n case \"audio_content\":\n case \"giphy_content\":\n return true;\n default:\n return false;\n }\n}\nexport function isCaptionedContent(content) {\n switch (content.kind) {\n case \"image_content\":\n case \"video_content\":\n case \"audio_content\":\n case \"file_content\":\n case \"crypto_content\":\n case \"giphy_content\":\n case \"prize_content\":\n case \"p2p_swap_content\":\n return true;\n default:\n return false;\n }\n}\nexport function isTransfer(content) {\n return (content.kind === \"crypto_content\" ||\n content.kind === \"prize_content_initial\" ||\n content.kind === \"p2p_swap_content_initial\");\n}\nexport function canRetryMessage(content) {\n return (content.kind !== \"poll_content\" &&\n content.kind !== \"crypto_content\" &&\n content.kind !== \"prize_content_initial\" &&\n content.kind !== \"p2p_swap_content_initial\");\n}\nexport var ProposalDecisionStatus;\n(function (ProposalDecisionStatus) {\n ProposalDecisionStatus[ProposalDecisionStatus[\"Unspecified\"] = 0] = \"Unspecified\";\n ProposalDecisionStatus[ProposalDecisionStatus[\"Failed\"] = 1] = \"Failed\";\n ProposalDecisionStatus[ProposalDecisionStatus[\"Open\"] = 2] = \"Open\";\n ProposalDecisionStatus[ProposalDecisionStatus[\"Rejected\"] = 3] = \"Rejected\";\n ProposalDecisionStatus[ProposalDecisionStatus[\"Executed\"] = 4] = \"Executed\";\n ProposalDecisionStatus[ProposalDecisionStatus[\"Adopted\"] = 5] = \"Adopted\";\n})(ProposalDecisionStatus || (ProposalDecisionStatus = {}));\nexport var ProposalRewardStatus;\n(function (ProposalRewardStatus) {\n ProposalRewardStatus[ProposalRewardStatus[\"Unspecified\"] = 0] = \"Unspecified\";\n ProposalRewardStatus[ProposalRewardStatus[\"AcceptVotes\"] = 1] = \"AcceptVotes\";\n ProposalRewardStatus[ProposalRewardStatus[\"ReadyToSettle\"] = 2] = \"ReadyToSettle\";\n ProposalRewardStatus[ProposalRewardStatus[\"Settled\"] = 3] = \"Settled\";\n})(ProposalRewardStatus || (ProposalRewardStatus = {}));\nexport var NnsProposalTopic;\n(function (NnsProposalTopic) {\n NnsProposalTopic[NnsProposalTopic[\"Unspecified\"] = 0] = \"Unspecified\";\n NnsProposalTopic[NnsProposalTopic[\"NeuronManagement\"] = 1] = \"NeuronManagement\";\n NnsProposalTopic[NnsProposalTopic[\"ExchangeRate\"] = 2] = \"ExchangeRate\";\n NnsProposalTopic[NnsProposalTopic[\"NetworkEconomics\"] = 3] = \"NetworkEconomics\";\n NnsProposalTopic[NnsProposalTopic[\"Governance\"] = 4] = \"Governance\";\n NnsProposalTopic[NnsProposalTopic[\"NodeAdmin\"] = 5] = \"NodeAdmin\";\n NnsProposalTopic[NnsProposalTopic[\"ParticipantManagement\"] = 6] = \"ParticipantManagement\";\n NnsProposalTopic[NnsProposalTopic[\"SubnetManagement\"] = 7] = \"SubnetManagement\";\n NnsProposalTopic[NnsProposalTopic[\"NetworkCanisterManagement\"] = 8] = \"NetworkCanisterManagement\";\n NnsProposalTopic[NnsProposalTopic[\"KYC\"] = 9] = \"KYC\";\n NnsProposalTopic[NnsProposalTopic[\"NodeProviderRewards\"] = 10] = \"NodeProviderRewards\";\n NnsProposalTopic[NnsProposalTopic[\"SnsDecentralizationSale\"] = 11] = \"SnsDecentralizationSale\";\n NnsProposalTopic[NnsProposalTopic[\"SubnetReplicaVersionManagement\"] = 12] = \"SubnetReplicaVersionManagement\";\n NnsProposalTopic[NnsProposalTopic[\"ReplicaVersionManagement\"] = 13] = \"ReplicaVersionManagement\";\n NnsProposalTopic[NnsProposalTopic[\"SnsAndCommunityFund\"] = 14] = \"SnsAndCommunityFund\";\n})(NnsProposalTopic || (NnsProposalTopic = {}));\nexport function messageContextFromString(ctxStr) {\n return JSON.parse(ctxStr);\n}\nexport function messageContextToString(ctx) {\n return JSON.stringify(ctx);\n}\nexport function messageContextsEqual(a, b) {\n if (a === undefined && b === undefined) {\n return true;\n }\n if (a === undefined || b === undefined) {\n return false;\n }\n return (chatIdentifiersEqual(a.chatId, b.chatId) &&\n a.threadRootMessageIndex === b.threadRootMessageIndex);\n}\nexport function chatIdentifierUnset(id) {\n if (id === undefined)\n return true;\n switch (id.kind) {\n case \"channel\":\n return id.channelId === 0;\n case \"direct_chat\":\n return id.userId === \"\";\n case \"group_chat\":\n return id.groupId === \"\";\n }\n}\nexport function chatScopesEqual(a, b) {\n if (a.kind === \"community\" && b.kind === \"community\")\n return a.id.communityId === b.id.communityId;\n if (a.kind === \"favourite\" && b.kind === \"favourite\")\n return a.communityId === b.communityId;\n return a.kind === b.kind;\n}\nexport function chatIdentifiersEqual(a, b) {\n if (a === undefined && b === undefined) {\n return true;\n }\n if (a === undefined || b === undefined) {\n return false;\n }\n if (a.kind !== b.kind) {\n return false;\n }\n switch (a.kind) {\n case \"channel\":\n return (b.kind === \"channel\" &&\n a.communityId === b.communityId &&\n a.channelId === b.channelId);\n case \"direct_chat\":\n return b.kind === \"direct_chat\" && a.userId === b.userId;\n case \"group_chat\":\n return b.kind === \"group_chat\" && a.groupId === b.groupId;\n }\n}\nexport function nullMembership() {\n return {\n joined: BigInt(0),\n role: \"none\",\n mentions: [],\n latestThreads: [],\n myMetrics: emptyChatMetrics(),\n notificationsMuted: false,\n readByMeUpTo: undefined,\n archived: false,\n rulesAccepted: false,\n lapsed: false,\n };\n}\n","export const E8S_PER_TOKEN = 100_000_000;\nexport const CHAT_SYMBOL = \"CHAT\";\nexport const ICP_SYMBOL = \"ICP\";\nexport const BTC_SYMBOL = \"BTC\";\nexport const CKBTC_SYMBOL = \"ckBTC\";\nexport const SNS1_SYMBOL = \"SNS1\";\nexport const KINIC_SYMBOL = \"KINIC\";\nexport const HOTORNOT_SYMBOL = \"HOT\";\nexport const GHOST_SYMBOL = \"GHOST\";\nexport const LEDGER_CANISTER_ICP = \"ryjl3-tyaaa-aaaaa-aaaba-cai\";\nexport const LEDGER_CANISTER_CHAT = \"2ouva-viaaa-aaaaq-aaamq-cai\";\nexport const DEFAULT_TOKENS = [\"CHAT\", \"ICP\", \"ckUSDC\", \"ckBTC\", \"ckETH\"];\n","export class UnsupportedValueError extends Error {\n constructor(msg, value) {\n super(`${msg}: ${value}`);\n }\n}\nexport class HttpError extends Error {\n constructor(code, error) {\n super(error.message);\n this.code = code;\n this.stack = error.stack;\n this.name = \"HttpError\";\n }\n}\nexport class NoMeetingToJoin extends Error {\n}\nexport class AuthError extends HttpError {\n constructor(code, error) {\n super(code, error);\n this.code = code;\n this.name = \"AuthError\";\n }\n}\nexport class SessionExpiryError extends HttpError {\n constructor(code, error) {\n super(code, error);\n this.code = code;\n this.name = \"SessionExpiryError\";\n }\n}\nexport class DestinationInvalidError extends HttpError {\n constructor(error) {\n super(404, error);\n this.name = \"DestinationInvalidError\";\n }\n}\nexport class ResponseTooLargeError extends HttpError {\n constructor(error, size, maxSize) {\n super(500, error);\n this.size = size;\n this.maxSize = maxSize;\n this.name = \"ResponseTooLargeError\";\n }\n}\nexport class InvalidDelegationError extends HttpError {\n constructor(error) {\n super(403, error);\n this.name = \"InvalidDelegationError\";\n }\n}\nexport class TypeboxValidationError extends Error {\n constructor(error) {\n super();\n this.name = \"TypeboxValidationError\";\n this.message = error?.message ?? \"\";\n this.stack = error?.stack;\n }\n}\n// We'll use this is the front end tries to do something that the anonymous user should not be able to do\nexport class AnonymousOperationError extends Error {\n constructor() {\n super();\n this.name = \"AnonymousOperationError\";\n }\n}\n","export function applyOptionUpdate(original, update) {\n if (update === undefined)\n return original;\n if (update === \"set_to_none\")\n return undefined;\n return update.value;\n}\nexport function mapOptionUpdate(original, mapper) {\n if (original === undefined || original === \"set_to_none\")\n return original;\n return { value: mapper(original.value) };\n}\nexport function updateFromOptions(original, updated) {\n return original === updated\n ? undefined\n : updated === undefined\n ? \"set_to_none\"\n : { value: updated };\n}\n","export const allRoles = [\"none\", \"owner\", \"admin\", \"moderator\", \"member\"];\nexport const chatRoles = allRoles;\nexport const communityRoles = [\"owner\", \"admin\", \"member\"];\nexport const messagePermissionsList = [\n \"text\",\n \"image\",\n \"video\",\n \"audio\",\n \"file\",\n \"poll\",\n \"crypto\",\n \"giphy\",\n \"prize\",\n \"memeFighter\",\n \"p2pSwap\",\n];\nexport const chatPermissionsList = [\n \"changeRoles\",\n \"updateGroup\",\n \"inviteUsers\",\n \"addMembers\",\n \"removeMembers\",\n \"deleteMessages\",\n \"pinMessages\",\n \"reactToMessages\",\n \"mentionAllMembers\",\n \"startVideoCall\",\n];\nexport const communityPermissionsList = [\n \"changeRoles\",\n \"updateDetails\",\n \"inviteUsers\",\n \"removeMembers\",\n \"createPublicChannel\",\n \"createPrivateChannel\",\n \"manageUserGroups\",\n];\nexport const botChatPermissionList = [\n \"changeRoles\",\n \"updateGroup\",\n \"addMembers\",\n \"inviteUsers\",\n \"removeMembers\",\n \"deleteMessages\",\n \"pinMessages\",\n \"reactToMessages\",\n \"mentionAllMembers\",\n \"startVideoCall\",\n \"readMessages\",\n \"readMembership\",\n \"readChatDetails\",\n];\nexport const botCommunityPermissionList = [\n \"changeRoles\",\n \"updateDetails\",\n \"inviteUsers\",\n \"removeMembers\",\n \"createPublicChannel\",\n \"createPrivateChannel\",\n \"manageUserGroups\",\n];\nexport function defaultOptionalChatPermissions() {\n return {\n messagePermissions: undefined,\n threadPermissions: undefined,\n };\n}\nexport function defaultOptionalMessagePermissions() {\n return {\n default: undefined,\n text: undefined,\n image: undefined,\n video: undefined,\n audio: undefined,\n file: undefined,\n poll: undefined,\n crypto: undefined,\n giphy: undefined,\n prize: undefined,\n memeFighter: undefined,\n p2pSwap: undefined,\n };\n}\n","export const CommonResponses = {\n userNotInChannel: () => ({ kind: \"user_not_in_channel\" }),\n chatNotFound: () => ({ kind: \"chat_not_found\" }),\n userLimitReached: () => ({ kind: \"user_limit_reached\" }),\n notAuthorized: () => ({ kind: \"not_authorized\" }),\n success: () => ({ kind: \"success\" }),\n successNoUpdates: () => ({ kind: \"success_no_updates\" }),\n userNotInCommunity: () => ({ kind: \"user_not_in_community\" }),\n userSuspended: () => ({ kind: \"user_suspended\" }),\n userLapsed: () => ({ kind: \"user_lapsed\" }),\n communityFrozen: () => ({ kind: \"community_frozen\" }),\n communityPublic: () => ({ kind: \"community_public\" }),\n messageNotFound: () => ({ kind: \"message_not_found\" }),\n noChange: () => ({ kind: \"no_change\" }),\n communityNotPublic: () => ({ kind: \"community_not_public\" }),\n internalError: (error) => ({ kind: \"internal_error\", error }),\n invalid: () => ({ kind: \"invalid\" }),\n targetUserNotInCommunity: () => ({ kind: \"target_user_not_in_community\" }),\n notPlatformModerator: () => ({ kind: \"not_platform_moderator\" }),\n userBlocked: () => ({ kind: \"user_blocked\" }),\n failure: () => ({ kind: \"failure\" }),\n offline: () => ({ kind: \"offline\" }),\n blocked: () => ({ kind: \"blocked\" }),\n userNotFound: () => ({ kind: \"unknown_user\" }),\n};\n","/**\n * This class offers a Promise-like interface but replaces `then` with `subscribe`.\n * The function passed into subscribe will then be called each time new data is available.\n * The onResult fn will also be given a `final` param in case the calling code needs to know\n * if the final chunk of data has been received.\n */\nexport class Stream {\n constructor(initialiser) {\n this.subscribed = false;\n initialiser((val, final) => {\n if (this.onResult) {\n this.onResult(val, final);\n }\n if (final && this.onEnd) {\n this.onEnd();\n }\n }, (reason) => {\n if (this.onError) {\n this.onError(reason);\n }\n });\n }\n subscribe(subscription) {\n if (this.subscribed) {\n throw new Error(\"Already subscribed\");\n }\n this.subscribed = true;\n this.onResult = subscription.onResult;\n this.onError = subscription.onError;\n this.onEnd = subscription.onEnd;\n }\n}\n","export function deletedUser(userId) {\n return {\n kind: \"user\",\n userId,\n blobUrl: \"/assets/deletedUser.svg\",\n username: \"Deleted User\",\n displayName: undefined,\n updated: BigInt(Number.MAX_VALUE), // we want to *never* request updates for a deleted user\n suspended: false,\n diamondStatus: \"inactive\",\n chitBalance: 0,\n streak: 0,\n isUniquePerson: false,\n totalChitEarned: 0,\n };\n}\n// Note this *has* to return UserSummary | undefined because of the types, but we would not expect it to ever do so in practice\nexport function mergeUserSummaryWithUpdates(cached, updates, timestamp) {\n if (cached === undefined) {\n if (updates.stable === undefined || updates.volatile === undefined) {\n // in this case we cannot construct a valid UserSummary - this should not happen\n return undefined;\n }\n return {\n kind: updates.stable.isBot ? \"bot\" : \"user\",\n userId: updates.userId,\n ...updates.stable,\n ...updates.volatile,\n updated: timestamp,\n };\n }\n if (cached.userId !== updates.userId) {\n return undefined;\n }\n return {\n ...cached,\n ...updates.stable,\n ...updates.volatile,\n };\n}\n// problem - we can no longer create a UserSummary from a CurrentUserSummary\nexport function userSummaryFromCurrentUserSummary(chitState, currentSummary) {\n return {\n kind: currentSummary.isBot ? \"bot\" : \"user\",\n userId: currentSummary.userId,\n username: currentSummary.username,\n displayName: currentSummary.displayName,\n updated: currentSummary.updated,\n suspended: currentSummary.suspensionDetails !== undefined,\n diamondStatus: currentSummary.diamondStatus.kind,\n chitBalance: chitState.chitBalance,\n totalChitEarned: chitState.totalChitEarned,\n streak: chitState.streak,\n blobReference: currentSummary.blobReference,\n blobData: currentSummary.blobData,\n blobUrl: currentSummary.blobUrl,\n isUniquePerson: currentSummary.isUniquePerson,\n };\n}\nexport function updateCreatedUser(created, summary) {\n return {\n ...created,\n ...summary,\n kind: \"created_user\",\n };\n}\nexport var UserStatus;\n(function (UserStatus) {\n UserStatus[UserStatus[\"Offline\"] = 0] = \"Offline\";\n UserStatus[UserStatus[\"Online\"] = 1] = \"Online\";\n UserStatus[UserStatus[\"None\"] = 2] = \"None\";\n})(UserStatus || (UserStatus = {}));\nexport var AvatarSize;\n(function (AvatarSize) {\n AvatarSize[AvatarSize[\"Tiny\"] = 0] = \"Tiny\";\n AvatarSize[AvatarSize[\"Small\"] = 1] = \"Small\";\n AvatarSize[AvatarSize[\"Default\"] = 2] = \"Default\";\n AvatarSize[AvatarSize[\"Large\"] = 3] = \"Large\";\n})(AvatarSize || (AvatarSize = {}));\nexport const ANON_USER_ID = \"does_this_need_to_be_a_principal\";\nexport const ANON_USERNAME = \"guest_user\";\nexport const ANON_DISPLAY_NAME = \"Guest user\";\nexport const ANON_AVATAR_URL = \"/assets/anon.svg\";\nexport function anonymousUser() {\n return {\n kind: \"created_user\",\n username: ANON_USERNAME,\n dateCreated: BigInt(0),\n displayName: ANON_DISPLAY_NAME, // TODO probably need to translate this\n cryptoAccount: \"\", // TODO - will this be a problem?\n userId: ANON_USER_ID,\n isPlatformModerator: false,\n isPlatformOperator: false,\n suspensionDetails: undefined,\n isSuspectedBot: false,\n diamondStatus: { kind: \"inactive\" },\n moderationFlagsEnabled: 0,\n isBot: false,\n updated: 0n,\n isUniquePerson: false,\n };\n}\nexport const ModerationFlags = {\n Offensive: 1,\n Adult: 2,\n UnderReview: 4,\n};\n","import { ONLINE_THRESHOLD } from \"../../constants\";\nimport { UserStatus } from \"./user\";\nexport function userStatus(lastOnline, now) {\n if (lastOnline === undefined || lastOnline === 0)\n return UserStatus.None;\n const secondsSinceOnline = (now - lastOnline) / 1000;\n return secondsSinceOnline < ONLINE_THRESHOLD ? UserStatus.Online : UserStatus.Offline;\n}\nexport function missingUserIds(userLookup, userIds) {\n const missing = [];\n for (const userId of userIds) {\n if (!userLookup.has(userId)) {\n missing.push(userId);\n }\n }\n return missing;\n}\nconst mentionRegex = /@UserId\\(([\\d\\w-]+)\\)/g;\nexport function extractUserIdsFromMentions(text) {\n return [...text.matchAll(mentionRegex)].map((m) => m[1]);\n}\nexport function userOrUserGroupName(u) {\n switch (u.kind) {\n case \"user_group\":\n return u.name;\n case \"everyone\":\n return u.kind;\n default:\n return u.username;\n }\n}\nexport function userOrUserGroupId(u) {\n switch (u.kind) {\n case \"user\":\n case \"bot\":\n return u.userId;\n default:\n return undefined;\n }\n}\n","export class Version {\n constructor(major, minor, patch) {\n this.major = major;\n this.minor = minor;\n this.patch = patch;\n }\n toText() {\n return `${this.major}.${this.minor}.${this.patch}`;\n }\n static parse(str) {\n const parts = str.split(\".\");\n return new Version(Number.parseInt(parts[0]), Number.parseInt(parts[1]), Number.parseInt(parts[2]));\n }\n isGreaterThan(other) {\n if (this.major > other.major)\n return true;\n if (this.major < other.major)\n return false;\n if (this.minor > other.minor)\n return true;\n if (this.minor < other.minor)\n return false;\n return this.patch > other.patch;\n }\n}\n","const featureRestrictions = {\n gb: new Set([\"swap\"]),\n};\nexport function featureRestricted(jurisdiction, feature) {\n return (jurisdiction === undefined ||\n (featureRestrictions[jurisdiction.toLowerCase()]?.has(feature) ?? false));\n}\n","export const achievements = [\n \"joined_community\",\n \"joined_group\",\n \"sent_text\",\n \"reacted_to_message\",\n \"set_bio\",\n \"set_avatar\",\n \"sent_direct_message\",\n \"received_direct_message\",\n \"edited_message\",\n \"deleted_message\",\n \"forwarded_message\",\n \"tipped_message\",\n \"sent_image\",\n \"sent_file\",\n \"sent_poll\",\n \"sent_crypto\",\n \"sent_video\",\n \"sent_audio\",\n \"sent_giphy\",\n \"sent_prize\",\n \"sent_meme\",\n \"started_call\",\n \"joined_call\",\n \"quote_replied\",\n \"replied_in_thread\",\n \"changed_theme\",\n \"upgraded_to_diamond\",\n \"set_community_display_name\",\n \"set_display_name\",\n \"sent_swap_offer\",\n \"streak_3\",\n \"streak_7\",\n \"streak_14\",\n \"streak_30\",\n \"streak_100\",\n \"streak_365\",\n \"sent_reminder\",\n \"proved_unique_personhood\",\n \"favourited_chat\",\n \"received_reaction\",\n \"voted_on_poll\",\n \"pinned_chat\",\n \"set_pin\",\n \"had_message_tipped\",\n \"swapped_from_wallet\",\n \"accepted_swap_offer\",\n \"followed_thread\",\n \"received_crypto\",\n \"upgrade_to_gold_diamond\",\n \"referred_1st_user\",\n \"referred_3rd_user\",\n \"referred_10th_user\",\n \"referred_20th_user\",\n \"referred_50th_user\",\n \"deposited_btc\",\n];\n","import { Principal } from \"@dfinity/principal\";\nimport * as chrono from \"chrono-node\";\nimport { parseBigInt, random64 } from \"../utils\";\nimport { ValidationErrors } from \"../utils/validation\";\nexport const MIN_NAME_LENGTH = 3;\nexport const MIN_PARAM_NAME_LENGTH = 1;\nfunction defaultCommonParam(param) {\n return {\n name: param?.name ?? \"\",\n description: param?.description ?? \"\",\n placeholder: param?.placeholder ?? \"\",\n required: param?.required ?? true,\n };\n}\nexport function defaultBooleanParam(param) {\n return {\n kind: \"boolean\",\n ...defaultCommonParam(param),\n };\n}\nexport function defaultStringParam(param) {\n return {\n kind: \"string\",\n ...defaultCommonParam(param),\n minLength: 0,\n maxLength: 1000,\n choices: [],\n multi_line: false,\n };\n}\nexport function defaultIntegerParam(param) {\n return {\n kind: \"integer\",\n ...defaultCommonParam(param),\n minValue: BigInt(0),\n maxValue: BigInt(1000),\n choices: [],\n };\n}\nexport function defaultDecimalParam(param) {\n return {\n kind: \"decimal\",\n ...defaultCommonParam(param),\n minValue: 0,\n maxValue: 1000,\n choices: [],\n };\n}\nexport function defaultUserParam(param) {\n return {\n kind: \"user\",\n ...defaultCommonParam(param),\n };\n}\nexport function defaultDateTimeParam(param) {\n return {\n kind: \"dateTime\",\n ...defaultCommonParam(param),\n future_only: false,\n };\n}\nexport function emptyBotCommand() {\n return {\n name: \"\",\n description: \"\",\n params: [],\n defaultRole: \"member\",\n permissions: emptyExternalBotPermissions(),\n directMessages: false,\n };\n}\nexport function emptyExternalBotPermissions() {\n return {\n chatPermissions: [],\n communityPermissions: [],\n messagePermissions: [],\n };\n}\nexport function flattenCommandPermissions(definition) {\n return definition.commands.reduce((p, c) => {\n return mergePermissions(p, c.permissions);\n }, emptyExternalBotPermissions());\n}\nfunction mergeLists(l1, l2) {\n return [...new Set([...l1, ...l2])];\n}\nfunction mergePermissions(p1, p2) {\n return {\n chatPermissions: mergeLists(p1.chatPermissions, p2.chatPermissions),\n communityPermissions: mergeLists(p1.communityPermissions, p2.communityPermissions),\n messagePermissions: mergeLists(p1.messagePermissions, p2.messagePermissions),\n };\n}\nexport function setifyCommandPermissions(perm) {\n return {\n chatPermissions: new Set(perm.chatPermissions),\n communityPermissions: new Set(perm.communityPermissions),\n messagePermissions: new Set(perm.messagePermissions),\n };\n}\nfunction hasEveryPermissionOfType(required, granted, type) {\n const r = required[type];\n const g = granted[type];\n return r.every((p) => g.has(p));\n}\nexport function hasEveryRequiredPermission(required, granted) {\n const grantedSet = setifyCommandPermissions(granted);\n return (hasEveryPermissionOfType(required, grantedSet, \"chatPermissions\") &&\n hasEveryPermissionOfType(required, grantedSet, \"communityPermissions\") &&\n hasEveryPermissionOfType(required, grantedSet, \"messagePermissions\"));\n}\nexport function emptyBotInstance(ownerId) {\n return {\n kind: \"external_bot\",\n id: \"\",\n ownerId,\n name: \"\",\n endpoint: \"\",\n definition: {\n kind: \"bot_definition\",\n description: \"\",\n commands: [],\n },\n registrationStatus: { kind: \"private\" },\n };\n}\nfunction singleStringParam(params) {\n return params.length === 1 && params[0].kind === \"string\";\n}\nexport function createArgsFromSchema(params, maybeArgs) {\n if (singleStringParam(params)) {\n return [{ kind: \"string\", name: params[0].name, value: maybeArgs.join(\" \") }];\n }\n return params.map((p, i) => {\n switch (p.kind) {\n case \"user\":\n return { kind: \"user\", name: p.name };\n case \"boolean\": {\n const boolVal = (maybeArgs[i] ?? \"false\").toLocaleLowerCase() === \"true\";\n return { kind: \"boolean\", name: p.name, value: boolVal };\n }\n case \"integer\": {\n let value = parseBigInt(maybeArgs[i]) ?? null;\n if (p.choices.length > 0) {\n value = p.choices.find((c) => c.value === value)?.value ?? null;\n }\n return { kind: p.kind, name: p.name, value };\n }\n case \"decimal\": {\n const numParam = Number(maybeArgs[i]);\n let value = isNaN(numParam) ? null : numParam;\n if (p.choices.length > 0) {\n value = p.choices.find((c) => c.value === value)?.value ?? null;\n }\n return { kind: p.kind, name: p.name, value };\n }\n case \"string\": {\n let strParam = maybeArgs[i] ?? \"\";\n if (p.choices.length > 0) {\n strParam =\n p.choices.find((c) => c.name.toLocaleLowerCase() === strParam.toLocaleLowerCase() ||\n c.value.toLocaleLowerCase() === strParam.toLocaleLowerCase())?.value ?? \"\";\n }\n return { kind: \"string\", name: p.name, value: strParam };\n }\n case \"dateTime\": {\n const arg = maybeArgs[i];\n return {\n name: p.name,\n kind: \"dateTime\",\n value: parseBigInt(arg) ?? parseDateTime(arg),\n };\n }\n }\n });\n}\nfunction parseDateTime(value) {\n const now = new Date();\n const date = chrono.parseDate(value, { instant: now, timezone: now.getTimezoneOffset() }, { forwardDate: true });\n if (date == null) {\n return null;\n }\n return BigInt(date.getTime());\n}\nexport function argIsValid(schema, arg) {\n if (schema.kind === \"user\" && arg.kind === \"user\") {\n return !schema.required || arg.userId !== undefined;\n }\n else if (schema.kind === \"boolean\" && arg.kind === \"boolean\") {\n return !schema.required || arg.value !== undefined;\n }\n else if (schema.kind === \"string\" && arg.kind === \"string\") {\n return (!schema.required ||\n (arg.value !== undefined &&\n arg.value.length > schema.minLength &&\n arg.value.length < schema.maxLength));\n }\n else if (schema.kind === \"integer\" && arg.kind === \"integer\") {\n return ((!schema.required && arg.value === null) ||\n (arg.value !== null && arg.value >= schema.minValue && arg.value <= schema.maxValue));\n }\n else if (schema.kind === \"decimal\" && arg.kind === \"decimal\") {\n return ((!schema.required && arg.value === null) ||\n (arg.value !== null && arg.value >= schema.minValue && arg.value <= schema.maxValue));\n }\n else if (schema.kind === \"dateTime\" && arg.kind === \"dateTime\") {\n return !schema.required || (arg.value !== undefined && arg.value !== null);\n }\n return false;\n}\nexport function i18nKey(key, params) {\n return {\n kind: \"resource_key\",\n key,\n params,\n lowercase: false,\n };\n}\n// This is used for all names: bot, command, param\nexport function validBotComponentName(name, min) {\n const errors = [];\n if (name.length < min) {\n errors.push(i18nKey(\"bots.builder.errors.minLength\", { n: min }));\n }\n const regex = /^[a-zA-Z0-9_]+$/;\n if (!regex.test(name)) {\n errors.push(i18nKey(\"bots.builder.errors.alphaOnly\"));\n }\n return errors;\n}\nfunction validatePrincipal(p, mode) {\n if (mode === \"update\" && p === \"\")\n return true;\n try {\n Principal.fromText(p);\n return true;\n }\n catch (_) {\n return false;\n }\n}\nexport function validEndpoint(endpoint) {\n return validOrigin(endpoint);\n}\nexport function validateBot(principal, bot, mode) {\n const errors = new ValidationErrors();\n errors.addErrors(`bot_name`, validBotComponentName(bot.name, MIN_NAME_LENGTH));\n if (bot.ownerId === \"\") {\n errors.addErrors(\"bot_owner\", i18nKey(\"bots.builder.errors.owner\"));\n }\n if (!validEndpoint(bot.endpoint)) {\n errors.addErrors(\"bot_endpoint\", i18nKey(\"bots.builder.errors.endpoint\"));\n }\n if (!validatePrincipal(principal, mode)) {\n errors.addErrors(\"bot_principal\", i18nKey(\"bots.builder.errors.principal\"));\n }\n if (bot.definition.commands.length === 0 && bot.definition.autonomousConfig === undefined) {\n errors.addErrors(\"no_commands\", i18nKey(\"bots.builder.errors.noCommands\"));\n }\n if (containsDuplicateCommands(bot.definition.commands)) {\n errors.addErrors(\"duplicate_commands\", i18nKey(\"bots.builder.errors.duplicateCommands\"));\n }\n bot.definition.commands.forEach((command, i) => {\n if (!validateCommand(command, `command_${i}`, errors)) {\n errors.addErrors(`command_${i}`, i18nKey(\"Command has errors\"));\n }\n });\n return errors;\n}\nfunction validateCommand(command, errorPath, errors) {\n let valid = true;\n const nameErrors = validBotComponentName(command.name, MIN_NAME_LENGTH);\n if (nameErrors.length > 0) {\n errors.addErrors(`${errorPath}_name`, nameErrors);\n valid = false;\n }\n if (containsDuplicateParams(command.params)) {\n errors.addErrors(`${errorPath}_duplicate_params`, i18nKey(\"bots.builder.errors.duplicateParams\"));\n }\n command.params.forEach((p, i) => {\n const paramPath = `${errorPath}_param_${i}`;\n if (!validateParameter(p, paramPath, errors)) {\n errors.addErrors(paramPath, i18nKey(\"Parameter has errors\"));\n valid = false;\n }\n });\n return valid;\n}\nfunction containsDuplicateCommands(commands) {\n const set = new Set(commands.map((c) => c.name));\n return set.size < commands.length;\n}\nfunction containsDuplicateParams(params) {\n const set = new Set(params.map((p) => p.name));\n return set.size < params.length;\n}\nfunction validateParameter(param, errorPath, errors) {\n let valid = true;\n const nameErrors = validBotComponentName(param.name, MIN_PARAM_NAME_LENGTH);\n if (nameErrors.length > 0) {\n errors.addErrors(`${errorPath}_name`, nameErrors);\n valid = false;\n }\n if (param.kind === \"string\") {\n param.choices.forEach((c, i) => {\n if (c.name.length < MIN_PARAM_NAME_LENGTH) {\n errors.addErrors(`${errorPath}_choices_${i}_name`, i18nKey(\"bots.builder.errors.minLength\", { n: MIN_PARAM_NAME_LENGTH }));\n valid = false;\n }\n if (c.value.length < MIN_PARAM_NAME_LENGTH) {\n errors.addErrors(`${errorPath}_choices_${i}_value`, i18nKey(\"bots.builder.errors.minLength\", { n: MIN_PARAM_NAME_LENGTH }));\n valid = false;\n }\n });\n }\n if (param.kind === \"integer\") {\n param.choices.forEach((c, i) => {\n if (c.name.length < MIN_PARAM_NAME_LENGTH) {\n errors.addErrors(`${errorPath}_choices_${i}_name`, i18nKey(\"bots.builder.errors.minLength\", { n: MIN_PARAM_NAME_LENGTH }));\n valid = false;\n }\n });\n }\n if (param.kind === \"decimal\") {\n param.choices.forEach((c, i) => {\n if (c.name.length < MIN_NAME_LENGTH) {\n errors.addErrors(`${errorPath}_choices_${i}_name`, i18nKey(\"bots.builder.errors.minLength\", { n: MIN_PARAM_NAME_LENGTH }));\n valid = false;\n }\n });\n }\n return valid;\n}\nfunction validOrigin(origin) {\n if (!origin)\n return false;\n try {\n const o = new URL(origin);\n return o.origin === origin;\n }\n catch (_) {\n return false;\n }\n}\nexport function botActionScopeFromExecutionContext(ctx) {\n switch (ctx.kind) {\n case \"community\":\n return {\n kind: \"community_scope\",\n communityId: ctx,\n };\n default:\n return {\n kind: \"chat_scope\",\n chatId: ctx,\n messageId: random64(),\n threadRootMessageIndex: undefined,\n };\n }\n}\nexport function botActionScopeFromInstallLocation(location) {\n switch (location.kind) {\n case \"community\":\n return {\n kind: \"community_scope\",\n communityId: { kind: \"community\", communityId: location.communityId },\n };\n default:\n return {\n kind: \"chat_scope\",\n chatId: location,\n messageId: random64(),\n threadRootMessageIndex: undefined,\n };\n }\n}\nexport function commandSupportsDirectMessages(command) {\n const [first, ...rest] = command.params;\n return command.directMessages && first?.kind === \"string\" && rest.every((p) => !p.required);\n}\nexport function directMessageCommandInstance(bot, text) {\n const command = bot.definition.commands.find(commandSupportsDirectMessages);\n if (command) {\n return {\n kind: \"external_bot\",\n id: bot.id,\n endpoint: bot.endpoint,\n command: {\n name: command.name,\n arguments: createArgsFromSchema(command.params, [text]),\n placeholder: command.placeholder,\n },\n };\n }\n}\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport { writable } from \"svelte/store\";\nconst test = import.meta.env.OC_NODE_ENV === \"test\";\nexport function boolFromLS(key, def) {\n if (test)\n return def;\n const val = localStorage.getItem(key);\n switch (val) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n default:\n return def;\n }\n}\nexport function createLsBoolStore(key, def) {\n const store = writable(boolFromLS(key, def));\n return {\n subscribe: store.subscribe,\n set: (state) => store.update((_) => {\n if (!test) {\n localStorage.setItem(key, state.toString());\n }\n return state;\n }),\n toggle: () => store.update((val) => {\n if (!test) {\n localStorage.setItem(key, (!val).toString());\n }\n return !val;\n }),\n };\n}\n","export const AIRDROP_BOT_USER_ID = import.meta.env.OC_AIRDROP_BOT_CANISTER;\n","// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function createSetStore(store) {\n let storeValue = new Set();\n store.subscribe((value) => (storeValue = value));\n return {\n subscribe: store.subscribe,\n set: store.set,\n add: (id) => {\n if (!storeValue.has(id)) {\n store.update((ids) => {\n ids.add(id);\n return new Set(ids);\n });\n return true;\n }\n return false;\n },\n addMany: (newIds) => {\n const toAdd = newIds.filter((id) => !storeValue.has(id));\n if (toAdd.length > 0) {\n store.update((ids) => {\n for (const id of toAdd) {\n ids.add(id);\n }\n return new Set(ids);\n });\n }\n },\n delete: (id) => {\n if (storeValue.has(id)) {\n store.update((ids) => {\n ids.delete(id);\n return new Set(ids);\n });\n return true;\n }\n return false;\n },\n deleteMany: (ids) => {\n const toDelete = ids.filter((id) => storeValue.has(id));\n if (toDelete.length > 0) {\n store.update((ids) => {\n for (const id of toDelete) {\n ids.delete(id);\n }\n return new Set(ids);\n });\n }\n },\n clear: () => store.update((ids) => {\n ids.clear();\n return ids;\n }),\n value: () => storeValue,\n };\n}\n","import { ANON_USER_ID, ANON_USERNAME, ANON_DISPLAY_NAME, ANON_AVATAR_URL, anonymousUser, OPENCHAT_VIDEO_CALL_USER_ID, OPENCHAT_VIDEO_CALL_USERNAME, OPENCHAT_VIDEO_CALL_AVATAR_URL, AIRDROP_BOT_USERNAME, AIRDROP_BOT_AVATAR_URL, OPENCHAT_BOT_USER_ID, OPENCHAT_BOT_USERNAME, OPENCHAT_BOT_AVATAR_URL, } from \"openchat-shared\";\nimport { AIRDROP_BOT_USER_ID } from \"../constants\";\nimport { derived, writable } from \"svelte/store\";\nimport { createSetStore } from \"./setStore\";\nexport const currentUserKey = Symbol();\nexport const airdropBotUser = {\n kind: \"bot\",\n userId: AIRDROP_BOT_USER_ID,\n username: AIRDROP_BOT_USERNAME,\n displayName: undefined,\n updated: BigInt(0),\n suspended: false,\n blobUrl: AIRDROP_BOT_AVATAR_URL,\n diamondStatus: \"inactive\",\n chitBalance: 0,\n streak: 0,\n isUniquePerson: false,\n totalChitEarned: 0,\n};\nexport const videoCallBotUser = {\n kind: \"bot\",\n userId: OPENCHAT_VIDEO_CALL_USER_ID,\n username: OPENCHAT_VIDEO_CALL_USERNAME,\n displayName: undefined,\n updated: BigInt(0),\n suspended: false,\n blobUrl: OPENCHAT_VIDEO_CALL_AVATAR_URL,\n diamondStatus: \"inactive\",\n chitBalance: 0,\n streak: 0,\n isUniquePerson: false,\n totalChitEarned: 0,\n};\nexport const openChatBotUser = {\n kind: \"bot\",\n userId: OPENCHAT_BOT_USER_ID,\n username: OPENCHAT_BOT_USERNAME,\n displayName: undefined,\n updated: BigInt(0),\n suspended: false,\n blobUrl: OPENCHAT_BOT_AVATAR_URL,\n diamondStatus: \"inactive\",\n chitBalance: 0,\n streak: 0,\n isUniquePerson: false,\n totalChitEarned: 0,\n};\nexport const anonymousUserSummary = {\n kind: \"user\",\n userId: ANON_USER_ID,\n username: ANON_USERNAME,\n displayName: ANON_DISPLAY_NAME,\n updated: BigInt(0),\n suspended: false,\n blobUrl: ANON_AVATAR_URL,\n diamondStatus: \"inactive\",\n chitBalance: 0,\n streak: 0,\n isUniquePerson: false,\n totalChitEarned: 0,\n};\n// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\nexport const PROPOSALS_BOT_USERNAME = \"ProposalsBot\";\nexport const PROPOSALS_BOT_AVATAR_URL = \"/assets/proposal-robot.svg\";\nexport function proposalsBotUser(userId) {\n return {\n kind: \"bot\",\n userId,\n username: PROPOSALS_BOT_USERNAME,\n displayName: undefined,\n updated: BigInt(0),\n suspended: false,\n blobUrl: PROPOSALS_BOT_AVATAR_URL,\n diamondStatus: \"inactive\",\n chitBalance: 0,\n streak: 0,\n isUniquePerson: false,\n totalChitEarned: 0,\n };\n}\nexport const specialUsers = writable(new Map());\nconst normalUsers = writable(new Map());\nconst allUsers = derived([specialUsers, normalUsers], ([$specialUsers, $normalUsers]) => {\n return [...$specialUsers.entries()].reduce((all, [k, v]) => {\n all.set(k, v);\n return all;\n }, $normalUsers);\n});\nexport const suspendedUsers = createSetStore(writable(new Set()));\nexport function overwriteUser(lookup, user) {\n lookup.set(user.userId, { ...user });\n return lookup;\n}\nexport const userStore = {\n subscribe: allUsers.subscribe,\n set: (users) => {\n normalUsers.set(users);\n const [suspended] = partitionSuspendedUsers([...users.values()]);\n suspendedUsers.set(new Set(suspended));\n },\n add: (user) => {\n normalUsers.update((users) => {\n const clone = new Map(users);\n return overwriteUser(clone, user);\n });\n if (user.suspended) {\n suspendedUsers.add(user.userId);\n }\n else {\n suspendedUsers.delete(user.userId);\n }\n },\n addMany: (newUsers) => {\n if (newUsers.length > 0) {\n normalUsers.update((users) => {\n const clone = new Map(users);\n return newUsers.reduce((lookup, user) => overwriteUser(lookup, user), clone);\n });\n const [suspended, notSuspended] = partitionSuspendedUsers(newUsers);\n suspendedUsers.addMany(suspended);\n suspendedUsers.deleteMany(notSuspended);\n }\n },\n setUpdated: (userIds, timestamp) => {\n normalUsers.update((users) => {\n for (const userId of userIds) {\n const user = users.get(userId);\n if (user !== undefined) {\n user.updated = timestamp;\n }\n }\n return users;\n });\n },\n};\nexport const currentUser = writable(anonymousUser());\nexport const currentUserIdStore = derived(currentUser, ($currentUser) => $currentUser.userId);\nexport const anonUser = derived(currentUser, ($currentUser) => $currentUser.userId === ANON_USER_ID);\nexport const suspendedUser = derived(currentUser, ($currentUser) => $currentUser.suspensionDetails !== undefined);\nexport const platformModerator = derived(currentUser, ($currentUser) => $currentUser.isPlatformModerator);\nexport const platformOperator = derived(currentUser, ($currentUser) => {\n return $currentUser.isPlatformOperator;\n});\nfunction partitionSuspendedUsers(users) {\n const suspended = [];\n const notSuspended = [];\n for (const user of users) {\n if (user.suspended) {\n suspended.push(user.userId);\n }\n else {\n notSuspended.push(user.userId);\n }\n }\n return [suspended, notSuspended];\n}\n","export function setsAreEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n return Array.from(a).every((element) => {\n return b.has(element);\n });\n}\n","export function groupWhile(predicate, items) {\n if (items.length === 0)\n return [];\n const [, grouped] = items.reduce(([prev, groups], item) => {\n if (!prev) {\n return [item, [[item]]];\n }\n if (predicate(prev, item)) {\n const lastGroup = groups[groups.length - 1];\n lastGroup.push(item);\n return [item, groups];\n }\n else {\n groups.push([item]);\n return [item, groups];\n }\n }, [undefined, [[]]]);\n return grouped;\n}\nexport function groupBy(items, keySelector) {\n const grouped = new Map();\n for (const item of items) {\n const key = keySelector(item);\n const existing = grouped.get(key);\n if (existing !== undefined) {\n existing.push(item);\n }\n else {\n grouped.set(key, [item]);\n }\n }\n return grouped;\n}\nexport function flatMap(things, fn) {\n return things.reduce((agg, thing) => {\n agg.push(...fn(thing));\n return agg;\n }, []);\n}\nexport function distinctBy(things, keyFn) {\n if (things.length == 0)\n return things;\n const set = new Set();\n const output = [];\n for (const thing of things) {\n const key = keyFn(thing);\n if (!set.has(key)) {\n set.add(key);\n output.push(thing);\n }\n }\n return output;\n}\nexport function zip(a, b) {\n const l = Math.min(a.length, b.length);\n const res = [];\n for (let i = 0; i < l; i++) {\n res.push([a[i], b[i]]);\n }\n return res;\n}\nexport function chunk(array, size) {\n const chunkCount = Math.floor((array.length - 1) / size) + 1;\n const chunks = [];\n for (let chunkIndex = 0; chunkIndex < chunkCount; chunkIndex++) {\n const start = chunkIndex * size;\n const end = start + size;\n chunks.push(array.slice(start, end));\n }\n return chunks;\n}\nexport function toRecord(xs, keyFn) {\n return toRecord2(xs, keyFn, (x) => x);\n}\nexport function toRecord2(xs, keyFn, valFn) {\n return toRecordFiltered(xs, keyFn, valFn, (_) => true);\n}\nexport function toRecordFiltered(xs, keyFn, valueFn, filterFn) {\n return xs.reduce((rec, x) => {\n if (filterFn(x)) {\n rec[keyFn(x)] = valueFn(x);\n }\n return rec;\n }, {});\n}\nexport function keepMax(items, keep, max) {\n let i = items.length;\n while (i--) {\n if (items.length <= max) {\n break;\n }\n if (!keep(items[i])) {\n items.splice(i, 1);\n }\n }\n}\nexport function partition(items, fn) {\n return items.reduce(([yes, no], thing) => {\n if (fn(thing)) {\n yes.push(thing);\n }\n else {\n no.push(thing);\n }\n return [yes, no];\n }, [[], []]);\n}\n","import { zip } from \"./list\";\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport function deepFreeze(obj) {\n // there is no need to take the performance hit of doing this on prod\n if (import.meta.env.OC_NODE_ENV === \"production\")\n return obj;\n if (Object.isFrozen(obj))\n return obj;\n if (obj instanceof Uint8Array)\n return obj;\n const propNames = Object.getOwnPropertyNames(obj);\n for (const name of propNames) {\n const value = obj[name];\n if (value && typeof value === \"object\") {\n deepFreeze(value);\n }\n }\n return Object.freeze(obj);\n}\n// Takes two objects of the same type and returns a partial object where each property\n// takes the value of the second object if the values are different otherwise it is undefined\nexport function mergeKeepingOnlyChanged(orig, updated) {\n if (orig == undefined)\n return updated;\n if (updated == undefined)\n return orig;\n return zip(Object.entries(orig), Object.entries(updated)).reduce((maybe, [[ok, ov], [_, uv]]) => (ov !== uv ? { ...maybe, [ok]: uv } : maybe), {});\n}\nexport function isEmpty(obj) {\n for (const prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n return false;\n }\n }\n return true;\n}\n","import { writable } from \"svelte/store\";\nimport { deepFreeze } from \"../utils/object\";\nexport function immutableStore(val) {\n const store = writable(deepFreeze(val));\n return {\n subscribe: store.subscribe,\n set: (val) => store.set(deepFreeze(val)),\n update: (fn) => store.update((val) => deepFreeze(fn(val))),\n };\n}\n","// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function createMapStore(store) {\n let storeValue = new Map();\n store.subscribe((v) => (storeValue = v));\n return {\n subscribe: store.subscribe,\n get: storeValue.get,\n has: storeValue.has,\n size: () => storeValue.size,\n set: store.set,\n insert: (key, value) => {\n store.update((map) => {\n map.set(key, value);\n return map;\n });\n },\n update: (updater) => {\n store.update(updater);\n },\n delete: (key) => {\n if (storeValue.has(key)) {\n store.update((map) => {\n map.delete(key);\n return map;\n });\n return true;\n }\n return false;\n },\n clear: () => store.update((map) => {\n map.clear();\n return map;\n }),\n };\n}\n","import { createMapStore } from \"./mapStore\";\nimport { writable } from \"svelte/store\";\n// Key: MessageId, Value: Timestamp\nexport const recentlySentMessagesStore = createMapStore(writable(new Map()));\nfunction pruneOldMessages() {\n if (recentlySentMessagesStore.size() > 0) {\n const oneMinuteAgo = BigInt(Date.now() - 60000);\n recentlySentMessagesStore.update((map) => {\n const newMap = new Map();\n for (const [key, value] of map.entries()) {\n if (value > oneMinuteAgo) {\n newMap.set(key, value);\n }\n }\n return newMap;\n });\n }\n}\n// Prune old messages every 31 seconds\nwindow.setInterval(pruneOldMessages, 31000);\n","import { writable } from \"svelte/store\";\nimport { createSetStore } from \"./setStore\";\nimport { MessageContextMap, } from \"openchat-shared\";\nimport { recentlySentMessagesStore } from \"./recentlySentMessages\";\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction createUnconfirmedReadByThemStore() {\n return createSetStore(writable(new Set()));\n}\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction createUnconfirmedStore() {\n const store = writable(new MessageContextMap());\n let storeValue = new MessageContextMap();\n store.subscribe((v) => (storeValue = v));\n function pruneOldMessages() {\n if (storeValue.size > 0) {\n const oneMinuteAgo = BigInt(Date.now() - 60000);\n store.update((state) => {\n return state.entries().reduce((result, [key, s]) => {\n const newState = filterMessages(s, (m) => m.timestamp > oneMinuteAgo);\n if (newState.messageIds.size > 0) {\n result.set(key, newState);\n }\n return result;\n }, new MessageContextMap());\n });\n }\n }\n function filterMessages(state, predicate) {\n state.messages = state.messages.filter((message) => {\n if (predicate(message)) {\n return true;\n }\n else {\n revokeObjectUrls(message);\n state.messageIds.delete(message.event.messageId);\n return false;\n }\n });\n return state;\n }\n function emptyState() {\n return {\n messages: [],\n messageIds: new Map(),\n };\n }\n // Remove old messages every 30 seconds\n window.setInterval(pruneOldMessages, 30000);\n return {\n subscribe: store.subscribe,\n getMessages: (key) => {\n return storeValue.get(key)?.messages ?? [];\n },\n overwriteContent: (key, messageId, content, botContext, blockLevelMarkdown) => {\n store.update((state) => {\n const s = state.get(key);\n if (s !== undefined) {\n s.messages = s.messages.map((m) => m.event.messageId === messageId\n ? {\n ...m,\n event: {\n ...m.event,\n content,\n botContext,\n blockLevelMarkdown: blockLevelMarkdown ?? false,\n },\n }\n : m);\n state.set(key, s);\n }\n return state;\n });\n },\n add: (key, message) => {\n store.update((state) => {\n const s = state.get(key) ?? emptyState();\n if (!s.messageIds.has(message.event.messageId)) {\n s.messages.push(message);\n s.messageIds.set(message.event.messageId, false);\n state.set(key, s);\n }\n return state;\n });\n recentlySentMessagesStore.insert(message.event.messageId, message.timestamp);\n },\n contains: (key, messageId) => {\n return storeValue.get(key)?.messageIds.has(messageId) ?? false;\n },\n markAccepted: (key, messageId) => {\n if (storeValue.get(key)?.messageIds.has(messageId)) {\n store.update((state) => {\n const newState = state.get(key);\n if (newState !== undefined && newState.messageIds.has(messageId)) {\n newState.messageIds.set(messageId, true);\n }\n return state;\n });\n }\n },\n pendingAcceptance: (key, messageId) => {\n return storeValue.get(key)?.messageIds.get(messageId) === false;\n },\n delete: (key, messageId) => {\n if (storeValue.get(key)?.messageIds.has(messageId)) {\n store.update((state) => {\n const s = state.get(key);\n if (s !== undefined) {\n const newState = filterMessages(s, (m) => m.event.messageId !== messageId);\n if (newState.messageIds.size === 0) {\n state.delete(key);\n }\n else {\n state.set(key, newState);\n }\n }\n return state;\n });\n return true;\n }\n return false;\n },\n clear: (initialVal = {}) => store.set(initialVal),\n };\n}\nfunction revokeObjectUrls(message) {\n if (\"blobUrl\" in message.event.content && message.event.content.blobUrl !== undefined) {\n URL.revokeObjectURL(message.event.content.blobUrl);\n }\n}\nexport const unconfirmedReadByThem = createUnconfirmedReadByThemStore();\nexport const unconfirmed = createUnconfirmedStore();\n","import { derived, writable } from \"svelte/store\";\nimport { MIN_DOWNLINK } from \"openchat-shared\";\nconst networkInformation = writable(undefined, (set) => {\n if (\"connection\" in navigator) {\n const update = () => set(navigator.connection);\n navigator.connection?.addEventListener(\"change\", update);\n update();\n return () => {\n navigator.connection?.removeEventListener(\"change\", update);\n };\n }\n});\nconst networkOffline = writable(!navigator.onLine, (set) => {\n const online = () => set(false);\n const offline = () => set(true);\n window.addEventListener(\"online\", online);\n window.addEventListener(\"offline\", offline);\n return () => {\n window.removeEventListener(\"online\", online);\n window.removeEventListener(\"offline\", offline);\n };\n});\nexport const offlineStore = derived([networkInformation, networkOffline], ([$networkInformation, $networkOffline]) => {\n return ($networkOffline ||\n ($networkInformation !== undefined && $networkInformation.downlink < MIN_DOWNLINK));\n});\n","import { writable } from \"svelte/store\";\nimport { MessageContextMap, } from \"openchat-shared\";\nfunction createEphemeralStore() {\n const store = writable(new MessageContextMap());\n let storeValue = new MessageContextMap();\n store.subscribe((v) => (storeValue = v));\n return {\n subscribe: store.subscribe,\n add: (key, message) => {\n store.update((state) => {\n const s = state.get(key) ?? new Map();\n if (!s.has(message.event.messageId)) {\n s.set(message.event.messageId, message);\n state.set(key, s);\n }\n return state;\n });\n },\n contains: (key, messageId) => {\n return storeValue.get(key)?.has(messageId) ?? false;\n },\n };\n}\nexport const ephemeralMessages = createEphemeralStore();\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { writable } from \"svelte/store\";\nimport { ChatMap, MessageContextMap, bigIntMax, } from \"openchat-shared\";\nimport { unconfirmed } from \"./unconfirmed\";\nimport { offlineStore } from \"./network\";\nimport { ephemeralMessages } from \"./ephemeralMessages\";\nconst MARK_READ_INTERVAL = 10 * 1000;\nexport class MessagesRead {\n constructor() {\n this.readUpTo = undefined;\n this.threads = {};\n this.dateReadPinned = undefined;\n }\n get threadsList() {\n return Object.entries(this.threads).map(([threadRootMessageIndex, readUpTo]) => ({\n threadRootMessageIndex: Number(threadRootMessageIndex),\n readUpTo,\n }));\n }\n empty() {\n return (this.readUpTo === undefined &&\n Object.keys(this.threads).length === 0 &&\n this.dateReadPinned === undefined);\n }\n markReadUpTo(index) {\n this.readUpTo = Math.max(this.readUpTo ?? 0, index);\n }\n updateThread(rootIndex, readUpTo) {\n const current = this.threads[rootIndex];\n if (current === undefined || current < readUpTo) {\n this.threads[rootIndex] = readUpTo;\n }\n }\n setThreads(threads) {\n this.threads = threads.reduce((rec, t) => {\n rec[t.threadRootMessageIndex] = t.readUpTo;\n return rec;\n }, {});\n }\n markReadPinned(dateReadPinned) {\n this.dateReadPinned = dateReadPinned;\n }\n}\nexport class MessageReadTracker {\n constructor() {\n this.serverState = new ChatMap();\n /**\n * The waiting structure is either keyed on chatId for normal chat messages or\n * of chatId_threadRootMessageIndex for thread messages\n */\n this.waiting = new MessageContextMap(); // The map is messageId -> (unconfirmed) messageIndex\n this.state = new ChatMap();\n this.subscribers = [];\n this.executingBatch = false;\n this.publishRequired = false;\n }\n subscribe(sub) {\n this.subscribers.push(sub);\n sub({\n serverState: this.serverState,\n waiting: this.waiting,\n state: this.state,\n });\n return () => {\n this.subscribers = this.subscribers.filter((s) => s !== sub);\n };\n }\n triggerLoop(api) {\n this.timeout = window.setTimeout(() => this.sendToServer(api), MARK_READ_INTERVAL);\n }\n start(api) {\n console.log(\"starting the mark read poller\");\n if (import.meta.env.OC_NODE_ENV !== \"test\") {\n this.triggerLoop(api);\n }\n if (import.meta.env.OC_NODE_ENV !== \"test\") {\n window.onbeforeunload = () => this.sendToServer(api);\n }\n }\n stop() {\n console.log(\"stopping the mark read poller\");\n if (this.timeout !== undefined) {\n window.clearTimeout(this.timeout);\n }\n }\n sendToServer(api) {\n const req = this.state.entries().reduce((req, [chatId, data]) => {\n if (!data.empty()) {\n req.push({\n chatId,\n readUpTo: data.readUpTo,\n threads: data.threadsList,\n dateReadPinned: data.dateReadPinned,\n });\n }\n return req;\n }, []);\n if (req.length > 0) {\n console.log(\"Sending messages read to the server: \", JSON.stringify(req));\n api.sendMarkReadRequest(req)\n .catch((err) => {\n console.log(\"Error calling markMessagesRead\", err);\n })\n .finally(() => this.triggerLoop(api));\n }\n else {\n this.triggerLoop(api);\n }\n }\n /** this will notify all subscribers that something that affects the unread message count has changed */\n publish() {\n if (this.executingBatch) {\n this.publishRequired = true;\n return;\n }\n this.subscribers.forEach((sub) => {\n sub({\n serverState: this.serverState,\n waiting: this.waiting,\n state: this.state,\n });\n });\n this.publishRequired = false;\n }\n stateForId(chatId) {\n if (!this.state.has(chatId)) {\n this.state.set(chatId, new MessagesRead());\n }\n return this.state.get(chatId);\n }\n markMessageRead(context, messageIndex, messageId) {\n const chatState = this.stateForId(context.chatId);\n if (!this.state.has(context.chatId)) {\n this.state.set(context.chatId, new MessagesRead());\n }\n if (messageId !== undefined && unconfirmed.contains(context, messageId)) {\n // if a message is unconfirmed we will just tuck it away until we are told it has been confirmed\n if (!this.waiting.has(context)) {\n this.waiting.set(context, new Map());\n }\n this.waiting.get(context)?.set(messageId, messageIndex);\n }\n else if (context.threadRootMessageIndex !== undefined) {\n chatState.updateThread(context.threadRootMessageIndex, messageIndex);\n }\n else {\n // Mark the chat as read up to the new messageIndex\n chatState.markReadUpTo(messageIndex);\n }\n this.publish();\n }\n markReadUpTo(context, to) {\n const chatState = this.stateForId(context.chatId);\n if (context.threadRootMessageIndex !== undefined) {\n chatState.updateThread(context.threadRootMessageIndex, to);\n }\n else {\n chatState.markReadUpTo(to);\n }\n this.publish();\n }\n markPinnedMessagesRead(chatId, dateLastPinned) {\n this.stateForId(chatId).markReadPinned(dateLastPinned);\n this.publish();\n }\n confirmMessage(context, messageIndex, messageId) {\n // this is called when a message is confirmed so that we can move it from\n // the unconfirmed read to the confirmed read. This means that it will get\n // marked as read on the back end\n if (this.removeUnconfirmedMessage(context, messageId)) {\n this.markMessageRead(context, messageIndex, messageId);\n return true;\n }\n return false;\n }\n removeUnconfirmedMessage(context, messageId) {\n return this.waiting.get(context)?.delete(messageId) ?? false;\n }\n staleThreadCountForChat(chatId, threads) {\n return threads\n .map((thread) => {\n return this.threadReadUpTo(chatId, thread.threadRootMessageIndex) <\n thread.latestMessageIndex\n ? 1\n : 0;\n })\n .reduce((total, n) => total + n, 0);\n }\n threadReadUpTo(chatId, threadRootMessageIndex) {\n const local = this.state.get(chatId)?.threads[threadRootMessageIndex] ?? -1;\n const server = this.serverState.get(chatId)?.threads[threadRootMessageIndex] ?? -1;\n const unconfirmedReadCount = this.waiting.get({ chatId, threadRootMessageIndex })?.size ?? 0;\n return Math.max(local + unconfirmedReadCount, server);\n }\n staleThreadsCount(threads) {\n return threads.entries().reduce((total, [chatId, threads]) => {\n const forChat = this.staleThreadCountForChat(chatId, threads);\n return forChat > 0 ? total + forChat : total;\n }, 0);\n }\n unreadThreadMessageCount(chatId, threadRootMessageIndex, latestMessageIndex) {\n return Math.max(latestMessageIndex - this.threadReadUpTo(chatId, threadRootMessageIndex), 0);\n }\n unreadMessageCount(chatId, latestMessageIndex) {\n // previewed chats will not exist in this.serverState\n if (latestMessageIndex === undefined || !this.serverState.has(chatId)) {\n return 0;\n }\n const readUpToServer = this.serverState.get(chatId)?.readUpTo;\n const readUpToLocal = this.state.get(chatId)?.readUpTo;\n const readUpToConfirmed = Math.max(readUpToServer ?? -1, readUpToLocal ?? -1);\n const readUnconfirmedCount = this.waiting.get({ chatId })?.size ?? 0;\n const total = latestMessageIndex - readUpToConfirmed - readUnconfirmedCount;\n return Math.max(total, 0);\n }\n unreadPinned(chatId, dateLastPinned) {\n const readServer = this.serverState.get(chatId)?.dateReadPinned ?? BigInt(0);\n const readLocal = this.state.get(chatId)?.dateReadPinned ?? BigInt(0);\n const dateReadPinned = bigIntMax(readServer, readLocal);\n return (dateLastPinned ?? BigInt(0)) > dateReadPinned;\n }\n getFirstUnreadMessageIndex(chatId, latestMessageIndex) {\n if (latestMessageIndex === undefined) {\n return undefined;\n }\n const readUpToServer = this.serverState.get(chatId)?.readUpTo;\n const readUpToLocal = this.state.get(chatId)?.readUpTo;\n const readUpToConfirmed = Math.max(readUpToServer ?? -1, readUpToLocal ?? -1);\n if (readUpToConfirmed < latestMessageIndex) {\n const readUnconfirmed = this.waiting.get({ chatId }) ?? new Map();\n const unconfirmedMessageIndexes = [...readUnconfirmed.values()];\n for (let i = readUpToConfirmed + 1; i <= latestMessageIndex; i++) {\n if (!unconfirmedMessageIndexes.includes(i)) {\n return i;\n }\n }\n }\n return undefined;\n }\n getFirstUnreadMention(chat) {\n return chat.membership.mentions.find((m) => !this.isRead({ chatId: chat.id }, m.messageIndex, m.messageId));\n }\n markAllRead(chat) {\n const latestMessageIndex = chat.latestMessage?.event.messageIndex;\n if (latestMessageIndex !== undefined) {\n if (!this.isRead({ chatId: chat.id }, latestMessageIndex, undefined)) {\n this.markReadUpTo({ chatId: chat.id }, latestMessageIndex);\n }\n if (chat.kind !== \"direct_chat\") {\n for (const thread of chat.membership.latestThreads) {\n const context = {\n chatId: chat.id,\n threadRootMessageIndex: thread.threadRootMessageIndex,\n };\n if (!this.isRead(context, thread.latestMessageIndex, undefined)) {\n this.markReadUpTo(context, thread.latestMessageIndex);\n }\n }\n }\n }\n }\n // some operations can be called in a loop. We only want to publish at the end of the\n // loop so that downstream derived stores are not re-computed unnecessarily\n batchUpdate(fn) {\n this.executingBatch = true;\n try {\n fn();\n }\n finally {\n this.executingBatch = false;\n if (this.publishRequired) {\n this.publish();\n }\n }\n }\n syncWithServer(chatId, readUpTo, threads, dateReadPinned) {\n const serverState = new MessagesRead();\n serverState.readUpTo = readUpTo;\n serverState.setThreads(threads);\n serverState.markReadPinned(dateReadPinned);\n this.serverState.set(chatId, serverState);\n const state = this.state.get(chatId);\n if (state) {\n if (readUpTo !== undefined &&\n state.readUpTo !== undefined &&\n state.readUpTo <= readUpTo) {\n state.readUpTo = undefined;\n }\n // for each thread we get from the server\n // remove the corresponding thread data from the client state unless the client state is more recent\n threads.forEach((t) => {\n const readUpTo = state.threads[t.threadRootMessageIndex];\n if (readUpTo !== undefined && readUpTo <= t.readUpTo) {\n delete state.threads[t.threadRootMessageIndex];\n }\n });\n if (dateReadPinned !== undefined &&\n state.dateReadPinned !== undefined &&\n state.dateReadPinned <= dateReadPinned) {\n state.dateReadPinned = undefined;\n }\n }\n this.publish();\n }\n isRead(context, messageIndex, messageId) {\n if (messageId !== undefined && unconfirmed.contains(context, messageId)) {\n return this.waiting.get(context)?.has(messageId) ?? false;\n }\n else if (messageId !== undefined && ephemeralMessages.contains(context, messageId)) {\n return true;\n }\n else if (context.threadRootMessageIndex !== undefined) {\n const serverState = this.serverState.get(context.chatId);\n if ((serverState?.threads[context.threadRootMessageIndex] ?? -1) >= messageIndex)\n return true;\n const localState = this.state.get(context.chatId);\n if ((localState?.threads[context.threadRootMessageIndex] ?? -1) >= messageIndex)\n return true;\n }\n else {\n const serverState = this.serverState.get(context.chatId);\n if (serverState?.readUpTo !== undefined && serverState.readUpTo >= messageIndex)\n return true;\n const localState = this.state.get(context.chatId);\n if (localState?.readUpTo !== undefined && localState.readUpTo >= messageIndex)\n return true;\n }\n return false;\n }\n}\nexport const messagesRead = new MessageReadTracker();\nexport const messageActivityFeedReadUpToLocally = writable();\nlet networkUnsub;\nexport function startMessagesReadTracker(api) {\n if (networkUnsub !== undefined) {\n networkUnsub();\n }\n networkUnsub = offlineStore.subscribe((offline) => {\n if (offline) {\n messagesRead.stop();\n }\n else {\n messagesRead.start(api);\n }\n });\n}\n","/**\n * This is sveltes equality check\n *\n * function safe_not_equal(a, b) {\n * return a != a ? b == b : a !== b || (a && typeof a === \"object\") || typeof a === \"function\";\n * }\n *\n * It means that if we store objects in a writable store then store.update(val => val) will\n * *always* trigger the subscribers which is quite possibly not what we want\n *\n * This writable wrapper will allow us to provide our own equality function\n */\nimport { writable } from \"svelte/store\";\nfunction referenceEqual(a, b) {\n return a === b;\n}\nexport function safeWritable(val, eq = (referenceEqual)) {\n const store = writable(val);\n let currentValue = val;\n store.subscribe((v) => {\n currentValue = v;\n });\n function set(proposed) {\n if (!eq(proposed, currentValue)) {\n store.set(proposed);\n }\n else {\n console.debug(\"UI: STORE: ignoring store update because currentValue is 'equal' to proposed value\", currentValue, proposed);\n }\n }\n function update(fn) {\n set(fn(currentValue));\n }\n return {\n subscribe: store.subscribe,\n set,\n update,\n };\n}\n","export const configKeys = {\n locale: \"openchat_locale\",\n profile: \"openchat_profile\",\n primeCacheLimit: \"openchat_prime_cache_limit\",\n primeCacheBatchSize: \"openchat_prime_cache_batch_size\",\n lastCryptoSent: \"openchat_lastcryptosent_v2\",\n fontSize: \"openchat_font_size\",\n enterSend: \"openchat_entersend\",\n userInfoSection: \"openchat_userinfo_section\",\n appearanceSection: \"openchat_appearance_section\",\n chatsSection: \"openchat_chats_section\",\n accountSection: \"openchat_account_section\",\n referralSection: \"openchat_referral_section\",\n storageSection: \"openchat_storage_section\",\n userStatsSection: \"openchat_user_stats_section\",\n userAdvancedSection: \"openchat_user_advanced_section\",\n groupInfoSection: \"openchat_group_info_section\",\n groupVisibilitySection: \"openchat_group_visibility_section\",\n groupRulesSection: \"openchat_group_rules_section\",\n groupPermissionSection: \"openchat_group_permission_section\",\n groupStatsSection: \"openchat_group_stats_section\",\n groupInviteUsersSections: \"openchat_group_invite_users_section\",\n groupAdvancedSection: \"openchat_group_advanced_section\",\n theme: \"openchat_theme\",\n scrollStrategy: \"openchat_scrollstrategy\",\n selectedAuthProvider: \"openchat_selected_auth_provider\",\n selectedAuthEmail: \"openchat_selected_auth_email\",\n userCreated: \"openchat_user_created\",\n softDisabled: \"openchat_softdisabled\",\n hideBlocked: \"openchat_hideblocked\",\n};\n","import { writable } from \"svelte/store\";\nconst PRUNE_LOCAL_UPDATES_INTERVAL = 30 * 1000;\nexport class LocalUpdatesStore {\n constructor(initialValue) {\n this.store = writable(initialValue);\n this.storeValue = initialValue;\n this.store.subscribe((value) => (this.storeValue = value));\n this.subscribe = this.store.subscribe;\n window.setInterval(() => this.pruneLocalUpdates(), PRUNE_LOCAL_UPDATES_INTERVAL);\n }\n applyUpdate(key, updateFn) {\n this.store.update((state) => {\n const current = (state.get(key) ?? {});\n state.set(key, {\n ...current,\n ...updateFn(current),\n lastUpdated: Date.now(),\n });\n return state;\n });\n }\n deleteKey(key) {\n if (this.storeValue.has(key)) {\n this.store.update((state) => {\n state.delete(key);\n return state;\n });\n }\n }\n pruneLocalUpdates() {\n const now = Date.now();\n let updated = false;\n const newStoreValue = this.storeValue.entries().reduce((result, [key, updates]) => {\n // Only keep updates which are < 30 seconds old\n if (now - updates.lastUpdated < 30 * 1000) {\n result.set(key, updates);\n }\n else {\n updated = true;\n }\n return result;\n }, this.storeValue.empty());\n if (updated) {\n this.store.set(newStoreValue);\n }\n }\n}\n","import { GlobalMap, } from \"openchat-shared\";\nimport { LocalUpdatesStore } from \"./localUpdatesStore\";\nclass LocalGlobalUpdatesStore extends LocalUpdatesStore {\n constructor() {\n super(new GlobalMap());\n }\n updateWallet(walletConfig) {\n this.applyUpdate(\"global\", (_) => ({\n walletConfig,\n }));\n }\n installBot(botId, perm) {\n this.applyUpdate(\"global\", (current) => {\n const result = { ...current };\n if (result.installedDirectBots === undefined) {\n result.installedDirectBots = new Map();\n }\n result.removedDirectBots?.delete(botId);\n result.installedDirectBots.set(botId, perm);\n return result;\n });\n }\n removeBot(botId) {\n this.applyUpdate(\"global\", (current) => {\n const result = { ...current };\n if (result.removedDirectBots === undefined) {\n result.removedDirectBots = new Set();\n }\n result.removedDirectBots.add(botId);\n result.installedDirectBots?.delete?.(botId);\n return result;\n });\n }\n}\nexport const localGlobalUpdates = new LocalGlobalUpdatesStore();\n","import { derived, writable } from \"svelte/store\";\nimport { configKeys } from \"../utils/config\";\nimport { DEFAULT_TOKENS, } from \"openchat-shared\";\nimport { toRecord } from \"../utils/list\";\nimport { localGlobalUpdates } from \"./localGlobalUpdates\";\nimport { createSetStore } from \"./setStore\";\nimport { safeWritable } from \"./safeWritable\";\nexport const cryptoLookup = writable({});\nexport const nervousSystemLookup = writable({});\nexport const exchangeRatesLookupStore = writable({});\nconst cryptoBalanceStore = writable({});\nexport const cryptoBalance = {\n subscribe: cryptoBalanceStore.subscribe,\n set: (ledger, balance) => {\n cryptoBalanceStore.update((record) => {\n record[ledger] = balance;\n return record;\n });\n },\n};\nexport const bitcoinAddress = safeWritable(undefined);\nconst lastCryptoSentStore = writable(localStorage.getItem(configKeys.lastCryptoSent) ?? undefined);\nexport const lastCryptoSent = {\n subscribe: lastCryptoSentStore.subscribe,\n set: (ledger) => {\n lastCryptoSentStore.set(ledger);\n localStorage.setItem(configKeys.lastCryptoSent, ledger);\n },\n};\nexport const enhancedCryptoLookup = derived([cryptoLookup, cryptoBalance, exchangeRatesLookupStore], ([$lookup, $balance, $exchangeRatesLookup]) => {\n const xrICPtoDollar = $exchangeRatesLookup[\"icp\"]?.toUSD;\n const xrBTCtoDollar = $exchangeRatesLookup[\"btc\"]?.toUSD;\n const xrETHtoDollar = $exchangeRatesLookup[\"eth\"]?.toUSD;\n const xrDollarToICP = xrICPtoDollar === undefined ? 0 : 1 / xrICPtoDollar;\n const xrDollarToBTC = xrBTCtoDollar === undefined ? 0 : 1 / xrBTCtoDollar;\n const xrDollarToETH = xrETHtoDollar === undefined ? 0 : 1 / xrETHtoDollar;\n const accounts = Object.values($lookup).map((t) => {\n const balance = $balance[t.ledger] ?? BigInt(0);\n const symbolLower = t.symbol.toLowerCase();\n const balanceWholeUnits = Number(balance) / Math.pow(10, t.decimals);\n const rates = $exchangeRatesLookup[symbolLower];\n const xrUSD = rates?.toUSD;\n const dollarBalance = xrUSD !== undefined ? xrUSD * balanceWholeUnits : undefined;\n const icpBalance = dollarBalance !== undefined && xrDollarToICP !== undefined\n ? dollarBalance * xrDollarToICP\n : undefined;\n const btcBalance = dollarBalance !== undefined && xrDollarToBTC !== undefined\n ? dollarBalance * xrDollarToBTC\n : undefined;\n const ethBalance = dollarBalance !== undefined && xrDollarToETH !== undefined\n ? dollarBalance * xrDollarToETH\n : undefined;\n const zero = balance === BigInt(0) && !DEFAULT_TOKENS.includes(t.symbol);\n return {\n ...t,\n balance,\n dollarBalance,\n icpBalance,\n btcBalance,\n ethBalance,\n zero,\n urlFormat: t.transactionUrlFormat,\n };\n });\n return toRecord(accounts, (a) => a.ledger);\n});\nexport const serverWalletConfigStore = writable({\n kind: \"auto_wallet\",\n minDollarValue: 0,\n});\nexport const walletConfigStore = derived([serverWalletConfigStore, localGlobalUpdates], ([$serverWalletConfig, $localGlobalUpdates]) => {\n return $localGlobalUpdates.get(\"global\")?.walletConfig ?? $serverWalletConfig;\n});\nexport const cryptoTokensSorted = derived([enhancedCryptoLookup], ([$lookup]) => {\n return Object.values($lookup)\n .filter((t) => t.enabled || !t.zero)\n .sort(compareTokens);\n});\nfunction meetsAutoWalletCriteria(config, token) {\n return (config.kind === \"auto_wallet\" &&\n (DEFAULT_TOKENS.includes(token.symbol) ||\n (config.minDollarValue <= 0 && token.balance > 0) ||\n (config.minDollarValue > 0 && (token.dollarBalance ?? 0) >= config.minDollarValue)));\n}\nfunction meetsManualWalletCriteria(config, token) {\n return config.kind === \"manual_wallet\" && config.tokens.has(token.ledger);\n}\nexport const walletTokensSorted = derived([cryptoTokensSorted, walletConfigStore], ([$tokens, $walletConfig]) => {\n return $tokens.filter((t) => meetsAutoWalletCriteria($walletConfig, t) ||\n meetsManualWalletCriteria($walletConfig, t));\n});\nexport const swappableTokensStore = createSetStore(writable(new Set()));\nfunction compareTokens(a, b) {\n // Sort by non-zero balances first\n // Then by $ balance\n // Then by whether token is a default\n // Then by default precedence\n // Then alphabetically by symbol\n const aNonZero = a.balance > 0;\n const bNonZero = b.balance > 0;\n if (aNonZero !== bNonZero) {\n return aNonZero ? -1 : 1;\n }\n const aDollarBalance = a.dollarBalance ?? -1;\n const bDollarBalance = b.dollarBalance ?? -1;\n if (aDollarBalance < bDollarBalance) {\n return 1;\n }\n else if (aDollarBalance > bDollarBalance) {\n return -1;\n }\n else {\n const defA = DEFAULT_TOKENS.indexOf(a.symbol);\n const defB = DEFAULT_TOKENS.indexOf(b.symbol);\n if (defA >= 0 && defB >= 0) {\n return defA < defB ? 1 : -1;\n }\n else if (defA >= 0) {\n return 1;\n }\n else if (defB >= 0) {\n return -1;\n }\n else {\n return a.symbol.localeCompare(b.symbol);\n }\n }\n}\n","import { ChatMap, CommunityMap, ObjectSet, chatScopesEqual } from \"openchat-shared\";\nimport { immutableStore } from \"./immutable\";\nimport { derived } from \"svelte/store\";\nimport { messageActivityFeedReadUpToLocally, messagesRead } from \"./markRead\";\nimport { safeWritable } from \"./safeWritable\";\nimport { serverWalletConfigStore } from \"./crypto\";\nimport { localGlobalUpdates } from \"./localGlobalUpdates\";\nconst installedServerDirectBots = immutableStore(new Map());\nexport const installedDirectBots = derived([installedServerDirectBots, localGlobalUpdates], ([$serverBots, $local]) => {\n const clone = new Map($serverBots);\n const localInstalled = [...($local.get(\"global\")?.installedDirectBots?.entries() ?? [])];\n const localDeleted = [...($local.get(\"global\")?.removedDirectBots?.values() ?? [])];\n localInstalled.forEach(([id, perm]) => {\n clone.set(id, perm);\n });\n localDeleted.forEach((id) => clone.delete(id));\n return clone;\n});\nexport const directApiKeys = immutableStore(new Map());\nexport const chitStateStore = immutableStore({\n chitBalance: 0,\n totalChitEarned: 0,\n streak: 0,\n streakEnds: 0n,\n nextDailyChitClaim: 0n,\n});\nexport const globalStateStore = immutableStore({\n communities: new CommunityMap(),\n directChats: new ChatMap(),\n groupChats: new ChatMap(),\n favourites: new ObjectSet(),\n pinnedChats: new Map([\n [\"group_chat\", []],\n [\"direct_chat\", []],\n [\"favourite\", []],\n [\"community\", []],\n [\"none\", []],\n ]),\n achievements: new Set(),\n referrals: [],\n messageActivitySummary: {\n readUpToTimestamp: 0n,\n latestTimestamp: 0n,\n unreadCount: 0,\n },\n});\nexport const chatListScopeStore = safeWritable({ kind: \"none\" }, chatScopesEqual);\nexport function emptyUnreadCounts() {\n return {\n muted: 0,\n unmuted: 0,\n mentions: false,\n };\n}\nexport function emptyCombinedUnreadCounts() {\n return {\n chats: emptyUnreadCounts(),\n threads: emptyUnreadCounts(),\n };\n}\nfunction hasUnreadMentions(chat) {\n if (chat.kind === \"direct_chat\")\n return false;\n return (chat.membership.mentions.filter((m) => !messagesRead.isRead({ chatId: chat.id }, m.messageIndex, m.messageId)).length > 0);\n}\nfunction mergeUnreadCounts(unreadMessages, muted, mentions, counts, increment = 1) {\n const toAdd = unreadMessages > 0 ? increment : 0;\n return {\n mentions: counts.mentions || mentions,\n unmuted: muted ? counts.unmuted : counts.unmuted + toAdd,\n muted: muted ? counts.muted + toAdd : counts.muted,\n };\n}\nfunction videoCallsInProgressForChats(chats) {\n return chats.reduce((counts, chat) => {\n if (chat === undefined)\n return counts;\n if (chat.videoCallInProgress) {\n if (chat.membership.notificationsMuted) {\n counts.muted += 1;\n }\n else {\n counts.unmuted += 1;\n }\n }\n return counts;\n }, { muted: 0, unmuted: 0 });\n}\nfunction combinedUnreadCountForChats(chats) {\n return chats.reduce((counts, chat) => {\n if (chat === undefined)\n return counts;\n const muted = chat.membership.notificationsMuted;\n const unreadMessages = messagesRead.unreadMessageCount(chat.id, chat.latestMessage?.event.messageIndex);\n const mentions = unreadMessages > 0 && hasUnreadMentions(chat);\n const unreadThreads = messagesRead.staleThreadCountForChat(chat.id, chat.membership.latestThreads);\n return {\n chats: mergeUnreadCounts(unreadMessages, muted, mentions, counts.chats),\n threads: mergeUnreadCounts(unreadThreads, muted, false, counts.threads, unreadThreads),\n };\n }, { chats: emptyUnreadCounts(), threads: emptyUnreadCounts() });\n}\nexport function mergeCombinedUnreadCounts({ chats, threads }) {\n return mergePairOfUnreadCounts(chats, threads);\n}\nexport function mergeListOfCombinedUnreadCounts(counts) {\n return counts.reduce((result, count) => mergePairOfCombinedUnreadCounts(result, count), emptyCombinedUnreadCounts());\n}\nexport function mergePairOfCombinedUnreadCounts(a, b) {\n return {\n chats: mergePairOfUnreadCounts(a.chats, b.chats),\n threads: mergePairOfUnreadCounts(a.threads, b.threads),\n };\n}\nexport function mergePairOfUnreadCounts(a, b) {\n return {\n muted: a.muted + b.muted,\n unmuted: a.unmuted + b.unmuted,\n mentions: a.mentions || b.mentions,\n };\n}\n// the messagesRead store is used as part of the derivation so that it gets recomputed when messages are read\nexport const unreadGroupCounts = derived([globalStateStore, messagesRead], ([$global, _$messagesRead]) => {\n return combinedUnreadCountForChats($global.groupChats.values());\n});\nexport const groupVideoCallCounts = derived([globalStateStore], ([$global]) => {\n return videoCallsInProgressForChats($global.groupChats.values());\n});\nexport const unreadDirectCounts = derived([globalStateStore, messagesRead], ([$global, _$messagesRead]) => {\n return combinedUnreadCountForChats($global.directChats.values());\n});\nexport const unreadActivityCount = derived([globalStateStore, messageActivityFeedReadUpToLocally], ([$global, readUpToLocally]) => {\n if (readUpToLocally !== undefined &&\n readUpToLocally >= $global.messageActivitySummary.latestTimestamp) {\n return 0;\n }\n return $global.messageActivitySummary.unreadCount;\n});\nexport const directVideoCallCounts = derived([globalStateStore], ([$global]) => {\n return videoCallsInProgressForChats($global.directChats.values());\n});\nexport function getAllServerChats(global) {\n const groupChats = global.groupChats.values();\n const directChats = global.directChats.values();\n const channels = global.communities.values().flatMap((c) => c.channels);\n return ChatMap.fromList([...groupChats, ...directChats, ...channels]);\n}\nexport const allServerChats = derived(globalStateStore, ($global) => {\n return getAllServerChats($global);\n});\nexport const unreadFavouriteCounts = derived([globalStateStore, messagesRead], ([$global, _$messagesRead]) => {\n const allChats = getAllServerChats($global);\n const chats = $global.favourites.values().map((id) => allChats.get(id));\n return combinedUnreadCountForChats(chats);\n});\nexport const favouritesVideoCallCounts = derived([globalStateStore], ([$global]) => {\n const allChats = getAllServerChats($global);\n const chats = $global.favourites.values().map((id) => allChats.get(id));\n return videoCallsInProgressForChats(chats);\n});\nexport const communityChannelVideoCallCounts = derived([globalStateStore], ([$global]) => {\n return $global.communities.values().reduce((map, community) => {\n map.set(community.id, videoCallsInProgressForChats(community.channels));\n return map;\n }, new CommunityMap());\n});\nexport const unreadCommunityChannelCounts = derived([globalStateStore, messagesRead], ([$global, _$messagesRead]) => {\n return $global.communities.values().reduce((map, community) => {\n map.set(community.id, combinedUnreadCountForChats(community.channels));\n return map;\n }, new CommunityMap());\n});\nexport const globalUnreadCount = derived([unreadGroupCounts, unreadDirectCounts, unreadCommunityChannelCounts], ([$groupCounts, $directCounts, $communities]) => {\n return mergeListOfCombinedUnreadCounts([\n $groupCounts,\n $directCounts,\n mergeListOfCombinedUnreadCounts($communities.values()),\n ]);\n});\nexport function setGlobalState(communities, allChats, favourites, pinnedChats, achievements, chitState, referrals, walletConfig, messageActivitySummary, installedBots, apiKeys) {\n const [channels, directChats, groupChats] = partitionChats(allChats);\n const state = {\n communities: CommunityMap.fromList(communities),\n directChats: ChatMap.fromList(directChats),\n groupChats: ChatMap.fromList(groupChats),\n favourites: ObjectSet.fromList(favourites),\n pinnedChats,\n achievements,\n referrals,\n messageActivitySummary,\n };\n Object.entries(channels).forEach(([communityId, channels]) => {\n const id = { kind: \"community\", communityId };\n const community = state.communities.get(id);\n if (community !== undefined) {\n state.communities.set(id, {\n ...community,\n channels,\n });\n }\n });\n globalStateStore.set(state);\n chitStateStore.update((curr) => {\n // Skip the new update if it is behind what we already have locally\n const skipUpdate = chitState.streakEnds < curr.streakEnds;\n return skipUpdate ? curr : chitState;\n });\n serverWalletConfigStore.set(walletConfig);\n installedServerDirectBots.set(installedBots);\n directApiKeys.set(apiKeys);\n}\nfunction partitionChats(allChats) {\n const [channels, direct, group] = allChats.reduce(([channels, direct, group], chat) => {\n switch (chat.kind) {\n case \"channel\":\n channels.push(chat);\n break;\n case \"direct_chat\":\n direct.push(chat);\n break;\n case \"group_chat\":\n group.push(chat);\n break;\n }\n return [channels, direct, group];\n }, [[], [], []]);\n return [channelsByCommunityId(channels), direct, group];\n}\nfunction channelsByCommunityId(chats) {\n return chats.reduce((acc, chat) => {\n const communityId = chat.id.communityId;\n const channels = acc[communityId] ?? [];\n channels.push(chat);\n return {\n ...acc,\n [communityId]: channels,\n };\n }, {});\n}\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport { derived, get, writable } from \"svelte/store\";\nimport { CommunityMap } from \"openchat-shared\";\nimport { chatListScopeStore } from \"./global\";\nfunction setDataForCommunity(store, communityId, data) {\n store.update((s) => {\n s.set(communityId, data);\n return s;\n });\n}\nfunction updateDataForCommunity(store, communityId, fn, empty) {\n store.update((s) => {\n s.set(communityId, fn(s.get(communityId) ?? empty));\n return s;\n });\n}\n// export type UpdatableCommunityStore = {\n// update: (communityId: string, fn: (data: T) => T) => void;\n// set: (chatId: string, data: T) => void;\n// };\nexport function createCommunitySpecificObjectStore(init) {\n const all = writable(new CommunityMap());\n const byCommunity = derived([chatListScopeStore, all], ([$chatListScope, $all]) => {\n switch ($chatListScope.kind) {\n case \"community\":\n return $all.get($chatListScope.id) ?? init();\n case \"favourite\":\n return $chatListScope.communityId === undefined\n ? init()\n : $all.get($chatListScope.communityId) ?? init();\n default:\n return init();\n }\n });\n return {\n all,\n subscribe: byCommunity.subscribe,\n get: (communityId) => get(all).get(communityId) ?? init(),\n update: (communityId, fn) => updateDataForCommunity(all, communityId, fn, init()),\n set: (communityId, data) => setDataForCommunity(all, communityId, data),\n clear: (communityId) => setDataForCommunity(all, communityId, init()),\n getProp: (communityId, prop) => (get(all).get(communityId) ?? init())[prop],\n updateProp: (communityId, prop, updateFn) => {\n updateDataForCommunity(all, communityId, (data) => {\n if (data !== undefined) {\n data[prop] = updateFn(data[prop]);\n return data;\n }\n return data;\n }, init());\n },\n setProp: (communityId, prop, value) => {\n updateDataForCommunity(all, communityId, (data) => {\n if (data !== undefined) {\n data[prop] = value;\n return data;\n }\n return data;\n }, init());\n },\n };\n}\n","import { derived, get } from \"svelte/store\";\nexport function createDerivedPropStore(store, prop, empty, eq = (current, next) => current === next) {\n const storeVal = get(store);\n let initialised = false;\n let currentValue = storeVal ? storeVal[prop] : empty();\n return derived(store, ($store, set) => {\n const nextValue = $store ? $store[prop] : empty();\n if (!eq(currentValue, nextValue) || !initialised) {\n set(nextValue);\n }\n currentValue = nextValue;\n initialised = true;\n });\n}\n","import { CommunityMap, } from \"openchat-shared\";\nimport { LocalUpdatesStore } from \"./localUpdatesStore\";\nclass LocalCommunitySummaryUpdatesStore extends LocalUpdatesStore {\n constructor() {\n super(new CommunityMap());\n }\n installBot(id, botId, perm) {\n this.applyUpdate(id, (current) => {\n const result = { ...current };\n if (result.installedBots === undefined) {\n result.installedBots = new Map();\n }\n result.removedBots?.delete(botId);\n result.installedBots.set(botId, perm);\n return result;\n });\n }\n removeBot(id, botId) {\n this.applyUpdate(id, (current) => {\n const result = { ...current };\n if (result.removedBots === undefined) {\n result.removedBots = new Set();\n }\n result.removedBots.add(botId);\n result.installedBots?.delete?.(botId);\n return result;\n });\n }\n updateIndex(id, index) {\n this.applyUpdate(id, (_) => ({\n index,\n }));\n }\n updateDisplayName(id, displayName) {\n this.applyUpdate(id, (_) => ({\n displayName: displayName !== undefined ? { value: displayName } : \"set_to_none\",\n }));\n }\n updateRulesAccepted(id, rulesAccepted) {\n this.applyUpdate(id, (_) => ({\n rulesAccepted,\n }));\n }\n markAdded(summary) {\n this.applyUpdate(summary.id, (_) => ({\n added: { ...summary, membership: { ...summary.membership, lapsed: false } },\n removedAtTimestamp: undefined,\n }));\n }\n markRemoved(id) {\n this.applyUpdate(id, (_) => ({\n added: undefined,\n removedAtTimestamp: BigInt(Date.now()),\n }));\n }\n delete(id) {\n this.deleteKey(id);\n }\n}\nexport const localCommunitySummaryUpdates = new LocalCommunitySummaryUpdatesStore();\n","export function hasOwnerRights(role) {\n return role === \"owner\";\n}\nexport function isPermitted(role, permissionRole) {\n if (role === \"none\")\n return false;\n switch (permissionRole) {\n case \"owner\":\n return hasOwnerRights(role);\n case \"admin\":\n return role !== \"member\" && role !== \"moderator\";\n case \"moderator\":\n return role !== \"member\";\n case \"member\":\n return true;\n }\n return false;\n}\n","import { hasOwnerRights, isPermitted } from \"./permissions\";\nexport function canChangeRoles({ membership, permissions }, currRole, newRole) {\n if (currRole === newRole) {\n return false;\n }\n switch (newRole) {\n case \"owner\":\n return hasOwnerRights(membership.role);\n default:\n return isPermitted(membership.role, permissions.changeRoles);\n }\n}\nexport function canEditCommunity({ membership, permissions }) {\n return isPermitted(membership.role, permissions.updateDetails);\n}\nexport function canCreatePublicChannel({ membership, permissions }) {\n return isPermitted(membership.role, permissions.createPublicChannel);\n}\nexport function canCreatePrivateChannel({ membership, permissions }) {\n return isPermitted(membership.role, permissions.createPrivateChannel);\n}\nexport function canManageUserGroups({ membership, permissions }) {\n return isPermitted(membership.role, permissions.manageUserGroups);\n}\nexport function canChangeCommunityRoles({ membership, permissions }) {\n return isPermitted(membership.role, permissions.changeRoles);\n}\nexport function canChangeCommunityPermissions({ membership }) {\n return hasOwnerRights(membership.role);\n}\nexport function isCommunityLapsed({ membership }) {\n return membership.lapsed;\n}\nexport function canDeleteCommunity({ membership }) {\n return hasOwnerRights(membership.role);\n}\nexport function canBlockUsers(community) {\n return (community.public &&\n isPermitted(community.membership.role, community.permissions.removeMembers));\n}\nexport function canUnblockUsers(community) {\n return (community.public &&\n isPermitted(community.membership.role, community.permissions.removeMembers));\n}\nexport function canInviteUsers(community) {\n return isPermitted(community.membership.role, community.permissions.inviteUsers);\n}\nexport function canRemoveMembers(community) {\n return isPermitted(community.membership.role, community.permissions.removeMembers);\n}\nexport function mergeLocalUpdates(server, localUpdates) {\n if (Object.keys(localUpdates).length === 0)\n return server;\n const merged = server.clone();\n for (const [chatId, localUpdate] of localUpdates.entries()) {\n if (localUpdate.added !== undefined) {\n const current = merged.get(chatId);\n if (current === undefined ||\n current.membership.role === \"none\" ||\n current.membership.lapsed) {\n merged.set(chatId, localUpdate.added);\n }\n }\n if (localUpdate.removedAtTimestamp) {\n const community = merged.get(chatId);\n if (community !== undefined &&\n community.membership.joined < localUpdate.removedAtTimestamp) {\n merged.delete(chatId);\n }\n }\n if (localUpdate.index !== undefined) {\n const community = merged.get(chatId);\n if (community !== undefined) {\n merged.set(chatId, {\n ...community,\n membership: {\n ...community.membership,\n index: localUpdate.index,\n },\n });\n }\n }\n if (localUpdate.displayName !== undefined) {\n const community = merged.get(chatId);\n if (community !== undefined) {\n merged.set(chatId, {\n ...community,\n membership: {\n ...community.membership,\n displayName: localUpdate.displayName !== \"set_to_none\"\n ? localUpdate.displayName.value\n : undefined,\n },\n });\n }\n }\n if (localUpdate.rulesAccepted !== undefined) {\n const community = merged.get(chatId);\n if (community !== undefined) {\n merged.set(chatId, {\n ...community,\n membership: {\n ...community.membership,\n rulesAccepted: localUpdate.rulesAccepted,\n },\n });\n }\n }\n }\n return merged;\n}\n","import { derived, writable, get } from \"svelte/store\";\nimport { setsAreEqual } from \"../utils/set\";\nimport { emptyRules, CommunityMap, } from \"openchat-shared\";\nimport { createCommunitySpecificObjectStore } from \"./dataByCommunityFactory\";\nimport { createDerivedPropStore } from \"./derived\";\nimport { chatListScopeStore, globalStateStore } from \"./global\";\nimport { localCommunitySummaryUpdates } from \"./localCommunitySummaryUpdates\";\nimport { mergeLocalUpdates } from \"../utils/community\";\n// Communities which the current user is previewing\nexport const communityPreviewsStore = writable(new CommunityMap());\nexport function addCommunityPreview(community) {\n localCommunitySummaryUpdates.delete(community.id);\n communityPreviewsStore.update((summaries) => {\n summaries.set(community.id, community);\n return summaries;\n });\n}\nexport function removeCommunityPreview(id) {\n communityPreviewsStore.update((summaries) => {\n summaries.delete(id);\n return summaries;\n });\n}\n// these are the communities I am in\nexport const communities = derived([globalStateStore, localCommunitySummaryUpdates, communityPreviewsStore], ([$globalStateStore, $localUpdates, $previews]) => {\n const merged = mergeLocalUpdates($globalStateStore.communities, $localUpdates);\n return merged.merge($previews);\n});\nexport const userGroupSummaries = derived([communities], ([$communities]) => {\n return $communities.values().reduce((map, community) => {\n community.userGroups.forEach((ug) => map.set(ug.id, ug));\n return map;\n }, new Map());\n});\nexport const communitiesList = derived(communities, ($communities) => {\n return $communities.values().sort((a, b) => {\n return b.membership.index === a.membership.index\n ? b.memberCount - a.memberCount\n : b.membership.index - a.membership.index;\n });\n});\nexport const communityStateStore = createCommunitySpecificObjectStore(() => ({\n members: new Map(),\n blockedUsers: new Set(),\n lapsedMembers: new Set(),\n invitedUsers: new Set(),\n referrals: new Set(),\n userGroups: new Map(),\n rules: emptyRules(),\n bots: new Map(),\n apiKeys: new Map(),\n}));\nexport const selectedCommunity = derived([communities, chatListScopeStore], ([$communities, $chatListScope]) => {\n if ($chatListScope.kind === \"community\") {\n return $communities.get($chatListScope.id);\n }\n else if ($chatListScope.kind === \"favourite\" && $chatListScope.communityId) {\n return $communities.get($chatListScope.communityId);\n }\n else {\n return undefined;\n }\n});\nconst currentServerCommunityBots = createDerivedPropStore(communityStateStore, \"bots\", () => new Map());\nexport const currentCommunityBots = derived([selectedCommunity, currentServerCommunityBots, localCommunitySummaryUpdates], ([$community, $serverBots, $local]) => {\n if ($community === undefined)\n return $serverBots;\n const clone = new Map($serverBots);\n const localInstalled = [...($local.get($community.id)?.installedBots?.entries() ?? [])];\n const localDeleted = [...($local.get($community.id)?.removedBots?.values() ?? [])];\n localInstalled.forEach(([id, perm]) => {\n clone.set(id, perm);\n });\n localDeleted.forEach((id) => clone.delete(id));\n return clone;\n});\nexport const currentCommunityApiKeys = createDerivedPropStore(communityStateStore, \"apiKeys\", () => new Map());\nexport const currentCommunityUserGroups = createDerivedPropStore(communityStateStore, \"userGroups\", () => new Map());\nexport const currentCommunityMembers = createDerivedPropStore(communityStateStore, \"members\", () => new Map());\nexport const currentCommunityBlockedUsers = createDerivedPropStore(communityStateStore, \"blockedUsers\", () => new Set(), setsAreEqual);\nexport const currentCommunityLapsedMembers = createDerivedPropStore(communityStateStore, \"lapsedMembers\", () => new Set(), setsAreEqual);\nexport const currentCommunityReferrals = createDerivedPropStore(communityStateStore, \"referrals\", () => new Set(), setsAreEqual);\nexport const currentCommunityInvitedUsers = createDerivedPropStore(communityStateStore, \"invitedUsers\", () => new Set(), setsAreEqual);\nexport const currentCommunityRules = createDerivedPropStore(communityStateStore, \"rules\", () => undefined);\nexport function nextCommunityIndex() {\n return (get(communitiesList)[0]?.membership.index ?? -1) + 1;\n}\n","export function formatLastOnlineDate(formatter, now, lastOnline) {\n const secondsSinceLastOnline = (now - lastOnline) / 1000;\n const minutesSinceLastOnline = Math.floor(secondsSinceLastOnline / 60);\n if (minutesSinceLastOnline < 2) {\n return [formatter(\"onlineNow\"), true];\n }\n let durationText;\n if (minutesSinceLastOnline < 60) {\n durationText = formatter(\"durationMins\", {\n values: { duration: minutesSinceLastOnline },\n });\n }\n else {\n const hoursSinceLastOnline = Math.floor(minutesSinceLastOnline / 60);\n if (hoursSinceLastOnline === 1) {\n durationText = formatter(\"oneHour\");\n }\n else if (hoursSinceLastOnline < 24) {\n durationText = formatter(\"durationHours\", {\n values: { duration: hoursSinceLastOnline },\n });\n }\n else {\n const daysSinceLastOnline = Math.floor(hoursSinceLastOnline / 24);\n durationText =\n daysSinceLastOnline === 1\n ? formatter(\"oneDay\")\n : formatter(\"durationDays\", { values: { duration: daysSinceLastOnline } });\n }\n }\n return [formatter(\"lastOnline\", { values: { duration: durationText } }), false];\n}\nexport function buildUsernameList(formatter, userIds, myUserId, users, maxUsernames = 99) {\n const includesMe = myUserId !== undefined ? userIds.has(myUserId) : false;\n let usernamesArray = Array.from(userIds)\n .slice(0, maxUsernames * 1.5)\n .map((uid) => [uid, users.get(uid)?.username])\n .filter(([uid, username]) => username !== undefined && uid !== myUserId)\n .map(([_, username]) => username);\n const missing = userIds.size - (usernamesArray.length + (includesMe ? 1 : 0));\n // If there are no usernames missing and we would otherwise say \"and 1 more\"\n // then just show that last username\n if (missing === 0 && usernamesArray.length === maxUsernames + 1) {\n maxUsernames++;\n }\n usernamesArray = usernamesArray.slice(0, maxUsernames);\n let usernames = usernamesArray.join(\", \");\n if (includesMe) {\n usernames += usernames.length === 0 ? formatter(\"you\") : formatter(\"reactions.andYou\");\n }\n const n = userIds.size - (usernamesArray.length + (includesMe ? 1 : 0));\n if (n > 0) {\n usernames += formatter(\"andNMore\", { values: { n } });\n }\n return usernames;\n}\nexport function nullUser(username) {\n return {\n kind: \"user\",\n userId: \"null_user\", // this might cause problems if we try to create a Principal from it\n username,\n displayName: undefined,\n updated: BigInt(0),\n suspended: false,\n diamondStatus: \"inactive\",\n chitBalance: 0,\n streak: 0,\n isUniquePerson: false,\n totalChitEarned: 0,\n };\n}\nexport function compareUsername(u1, u2) {\n return u1.username.localeCompare(u2.username, undefined, { sensitivity: \"accent\" });\n}\nexport function compareIsNotYouThenUsername(yourUserId) {\n return (u1, u2) => {\n const u1IsYou = u1.userId === yourUserId;\n const u2IsYou = u2.userId === yourUserId;\n if (u1IsYou !== u2IsYou) {\n return u1IsYou ? 1 : -1;\n }\n return compareUsername(u1, u2);\n };\n}\nexport function userAvatarUrl(dataContent) {\n return dataContent?.blobUrl ?? \"/assets/unknownUserAvatar.svg\";\n}\n","export function getStartOfToday() {\n return getStartOfDay(new Date());\n}\nexport function getStartOfDay(date) {\n const year = date.getFullYear();\n const month = date.getMonth();\n const day = date.getDate();\n return new Date(year, month, day);\n}\nexport function addDays(date, days) {\n const copy = new Date(date);\n copy.setDate(date.getDate() + days);\n return copy;\n}\nexport function addSeconds(date, seconds) {\n const copy = new Date(date);\n copy.setSeconds(date.getSeconds() + seconds);\n return copy;\n}\nexport function areOnSameDay(left, right) {\n const dayLeft = left.getDate();\n const dayRight = right.getDate();\n if (dayLeft !== dayRight)\n return false;\n const monthLeft = left.getMonth();\n const monthRight = right.getMonth();\n if (monthLeft !== monthRight)\n return false;\n const yearLeft = left.getFullYear();\n const yearRight = right.getFullYear();\n return yearLeft === yearRight;\n}\nexport function getMinutesSince(date) {\n const now = new Date();\n const diffMillis = now.getTime() - date.getTime();\n return diffMillis / 1000 / 60;\n}\nexport function toMonthString(date, locale) {\n return date.toLocaleDateString(locale, { month: \"long\" });\n}\nexport function toDayOfWeekString(date, locale) {\n return date.toLocaleDateString(locale, { weekday: \"long\" });\n}\nexport function toDateString(date, locale) {\n return date.toLocaleDateString(locale);\n}\nexport function toDatetimeString(date, locale) {\n return `${date.toLocaleDateString(locale)} ${toShortTimeString(date, locale)}`;\n}\nexport function toLongDateString(date, locale) {\n const weekday = date.toLocaleDateString(locale, { weekday: \"long\" });\n const dayOfMonth = date.getDate();\n const month = date.toLocaleDateString(locale, { month: \"short\" });\n const ordinal = getOrdinal(dayOfMonth);\n const year = date.getFullYear();\n return `${weekday} ${dayOfMonth}${ordinal} ${month} ${year}`;\n}\nconst shortTimeFormatters = {};\nexport function toShortTimeString(date, locale) {\n if (shortTimeFormatters[locale] === undefined) {\n shortTimeFormatters[locale] = new Intl.DateTimeFormat(locale, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hourCycle: \"h23\",\n });\n }\n return shortTimeFormatters[locale].format(date);\n}\nfunction getOrdinal(n) {\n // TODO - Localise\n // Taken from https://stackoverflow.com/a/39466341\n return [\"\", \"st\", \"nd\", \"rd\"][(n / 10) % 10 ^ 1 && n % 10] || \"th\";\n}\nexport function formatMessageDate(timestamp, today, yesterday, locale, timeIfToday = false, short = false) {\n if (timestamp === 0n)\n return \"\";\n const date = new Date(Number(timestamp));\n const startOfToday = getStartOfToday();\n if (date >= startOfToday) {\n return timeIfToday ? toShortTimeString(date, locale) : today;\n }\n const startOfYesterday = addDays(startOfToday, -1);\n if (date >= startOfYesterday) {\n return yesterday;\n }\n const useDayNameOnly = date >= addDays(startOfToday, -6);\n return useDayNameOnly\n ? toDayOfWeekString(date, locale)\n : short\n ? toDateString(date, locale)\n : toLongDateString(date, locale);\n}\n","import Peer, {} from \"peerjs\";\nexport class RtcConnectionsManager {\n constructor() {\n this.connections = new Map();\n this.sendMessage = (userIds, message) => {\n const connectionIds = userIds.flatMap((u) => [`m_${u}`, `d_${u}`]);\n connectionIds.forEach((connectionId) => {\n const conn = this.connections.get(connectionId);\n if (conn && conn.open) {\n try {\n conn.send(message);\n }\n catch (e) {\n console.debug(\"Error sending WebRTC message to \" + connectionId, e);\n }\n }\n });\n };\n this._mobile = this.isMobileDevice();\n }\n cacheConnection(myConnectionId, theirConnectionId, conn) {\n return new Promise((resolve) => {\n conn.on(\"open\", () => {\n this.connections.set(theirConnectionId, conn);\n console.debug(\"RTC: connection open: \", myConnectionId, \" and \", theirConnectionId);\n resolve(true);\n });\n conn.on(\"data\", (data) => {\n console.debug(\"RTC: connection received data: \", data);\n if (this.onMessage) {\n this.onMessage(data);\n }\n });\n conn.on(\"error\", (err) => {\n console.debug(\"RTC: connection error: \", err);\n });\n });\n }\n getIceServers(meteredApiKey) {\n return fetch(`https://openchat.metered.live/api/v1/turn/credentials?apiKey=${meteredApiKey}`).then((resp) => resp.json());\n }\n isMobileDevice() {\n return /android|webos|iphone|ipad|ipod|blackberry|windows phone/i.test(navigator.userAgent);\n }\n getMyConnectionId(userId) {\n const prefix = this._mobile ? \"m\" : \"d\";\n return `${prefix}_${userId}`;\n }\n async init(me, meteredApiKey) {\n if (this._peer)\n return Promise.resolve(this._peer);\n const iceServers = await this.getIceServers(meteredApiKey);\n return new Promise((resolve) => {\n const connectionId = this.getMyConnectionId(me);\n this._peer = new Peer(connectionId, {\n // host: \"localhost\",\n // port: 9000,\n // secure: false,\n config: {\n iceServers,\n },\n });\n this._peer.on(\"open\", (_id) => {\n if (this._peer) {\n resolve(this._peer);\n }\n });\n this._peer.on(\"connection\", (conn) => {\n console.debug(\"RTC: connection received on the peer: \", conn.peer);\n this.cacheConnection(connectionId, conn.peer, conn);\n });\n this._peer.on(\"disconnected\", () => {\n console.debug(\"RTC: peer lost connection will try to reconnect\");\n if (this._peer) {\n this._peer.reconnect();\n }\n });\n this._peer.on(\"close\", () => {\n console.debug(\"RTC: peer connection closed\");\n });\n this._peer.on(\"error\", (err) => {\n console.debug(\"RTC: peer connection error: \", err);\n });\n });\n }\n subscribe(onMessage) {\n this.onMessage = onMessage;\n }\n unsubscribe() {\n this.onMessage = undefined;\n }\n exists(connectionId) {\n return this.connections.has(connectionId);\n }\n create(me, them, meteredApiKey) {\n this.init(me, meteredApiKey).then((peer) => {\n [`m_${them}`, `d_${them}`]\n .filter((c) => !this.exists(c))\n .forEach((c) => {\n this.cacheConnection(peer.id, c, peer.connect(c, { serialization: \"json\" }));\n });\n });\n }\n disconnectFromUser(them) {\n [`m_${them}`, `d_${them}`].forEach((c) => this.connections.delete(c));\n }\n}\nexport const rtcConnectionsManager = new RtcConnectionsManager();\n","//import type { Level } from \"openchat-shared\";\nexport function getDecimalSeparator(locale) {\n if (!locale) {\n return defaultDecimalSeparator;\n }\n const numberWithDecimalSeparator = 1.1;\n return (Intl.NumberFormat(locale)\n .formatToParts(numberWithDecimalSeparator)\n .find((part) => part.type === \"decimal\")?.value ?? defaultDecimalSeparator);\n}\nconst defaultDecimalSeparator = \".\";\n// export type InterpolationValues =\n// | Record\n// | undefined;\n// interface MessageObject {\n// locale?: string;\n// format?: string;\n// default?: string;\n// values?: InterpolationValues;\n// }\n// export type MessageFormatter = (id: string, options?: MessageObject) => string;\n// export type ResourceKey = {\n// kind: \"resource_key\";\n// key: string;\n// level?: Level;\n// lowercase: boolean;\n// params?: InterpolationValues;\n// };\n","import { locale } from \"svelte-i18n\";\nimport { get } from \"svelte/store\";\nimport { getDecimalSeparator } from \"./i18n\";\nimport { parseBigInt } from \"openchat-shared\";\nexport function validateTokenInput(value, powTenPerWhole) {\n const [replacementText, amount] = validateInput(value, powTenPerWhole);\n return {\n replacementText,\n amount,\n };\n}\nfunction validateInput(value, powTenPerWhole) {\n value = value.trim();\n if (value?.length > 0 && value[0] !== \"-\") {\n const parts = value.split(decimalSeparatorsRegex);\n if (parts.length === 1) {\n const integralString = parts[0];\n const integral = parseBigInt(integralString);\n if (integral !== undefined) {\n return [undefined, integral * BigInt(Math.pow(10, powTenPerWhole))];\n }\n }\n if (parts.length === 2) {\n const integralString = parts[0];\n const integral = parseBigInt(integralString);\n let fractionalString = parts[1];\n let replaceText = false;\n // Trim the string if it exceeds the max number of decimals\n if (fractionalString.length > powTenPerWhole) {\n fractionalString = fractionalString.substr(0, powTenPerWhole);\n replaceText = true;\n }\n const fractional = parseBigInt(fractionalString);\n if (integral !== undefined && fractional !== undefined) {\n const total = integral * BigInt(Math.pow(10, powTenPerWhole)) +\n fractional * BigInt(Math.pow(10, powTenPerWhole - fractionalString.length));\n return [replaceText ? integralString + \".\" + fractionalString : undefined, total];\n }\n }\n }\n return [\"\", BigInt(0)];\n}\nexport function formatTokens(amount, powTenPerWhole, decimalSeparatorOverride, fullPrecision = false) {\n if (amount < 0) {\n amount = BigInt(0);\n }\n return format(amount, powTenPerWhole, decimalSeparatorOverride, fullPrecision);\n}\nfunction format(units, powTenPerWhole, decimalSeparatorOverride, fullPrecision) {\n // This is a bespoke notion of significant figures!\n const maxSignificantFigures = 6;\n // 1. Always show the full integral part of the number\n // 2. If the integral part >= 6 digits then remove the fractional part\n // 3. Otherwise if there is an integral part the max total number of digits (integral + fractional) = 6\n // 4. If there is no integral part then the max number of significant figures = 6\n // 5. Pad the fractional part with up to 2 '0's trying to keep the total number of digits <= 6\n const unitsPerWhole = BigInt(Math.pow(10, powTenPerWhole));\n const decimalSeparator = decimalSeparatorOverride ?? getDecimalSeparator(get(locale));\n const integral = units / unitsPerWhole;\n const integralString = integral.toString();\n const fractional = units % unitsPerWhole;\n let fractionalString = fractional.toString().padStart(powTenPerWhole, \"0\");\n if (!fullPrecision) {\n if (integral > 0) {\n const maxFractionalDecimalPlaces = Math.max(maxSignificantFigures - integralString.length, 0);\n if (fractionalString.length > maxFractionalDecimalPlaces) {\n fractionalString = fractionalString.substring(0, maxFractionalDecimalPlaces);\n }\n }\n else {\n const significantFigures = fractionalString.replace(/^0+/, \"\").length;\n if (significantFigures > maxSignificantFigures) {\n const indexToRemove = maxSignificantFigures + fractionalString.length - significantFigures;\n fractionalString = fractionalString.substring(0, indexToRemove);\n }\n }\n }\n // Remove trailing zeros leaving 0, 1, or 2 depending on how many integral digits we have already\n const minDecimalPlaces = Math.max(0, Math.min(2, maxSignificantFigures - integralString.length));\n for (let i = fractionalString.length - 1; i >= minDecimalPlaces; i--) {\n if (fractionalString[i] === \"0\") {\n fractionalString = fractionalString.slice(0, -1);\n }\n else {\n break;\n }\n }\n return fractionalString.length > 0\n ? integralString + decimalSeparator + fractionalString\n : integralString;\n}\nconst decimalSeparatorsRegex = /[.,]/;\n","import { writable } from \"svelte/store\";\nconst store = writable({});\nexport function tallyKey(governanceCanisterId, proposalId) {\n return `${governanceCanisterId}_${proposalId}`;\n}\nexport const proposalTallies = {\n subscribe: store.subscribe,\n setTally: (governanceCanisterId, proposalId, tally) => {\n store.update((state) => {\n return {\n ...state,\n [tallyKey(governanceCanisterId, proposalId)]: tally\n };\n });\n }\n};\n","import { compareUsername, nullUser } from \"./user\";\nimport { emptyChatMetrics, nullMembership, ChatMap, MessageMap, isAttachmentContent, applyOptionUpdate, updateFromOptions, defaultOptionalMessagePermissions, defaultOptionalChatPermissions, getContentAsFormattedText, getContentAsText, messageContextsEqual, random64, OPENCHAT_VIDEO_CALL_AVATAR_URL, OPENCHAT_VIDEO_CALL_USER_ID, OPENCHAT_BOT_USER_ID, OPENCHAT_BOT_AVATAR_URL, } from \"openchat-shared\";\nimport { distinctBy, groupWhile, toRecordFiltered } from \"../utils/list\";\nimport { areOnSameDay } from \"../utils/date\";\nimport DRange from \"drange\";\nimport Identicon from \"identicon.js\";\nimport md5 from \"md5\";\nimport { rtcConnectionsManager } from \"../utils/rtcConnectionsManager\";\nimport { get } from \"svelte/store\";\nimport { formatTokens } from \"./cryptoFormatter\";\nimport { currentChatUserIds } from \"../stores/chat\";\nimport { tallyKey } from \"../stores/proposalTallies\";\nimport { hasOwnerRights, isPermitted } from \"./permissions\";\nimport { cryptoLookup } from \"../stores/crypto\";\nimport { bigIntMax, messagePermissionsList } from \"openchat-shared\";\nconst MAX_RTC_CONNECTIONS_PER_CHAT = 10;\nconst MERGE_MESSAGES_SENT_BY_SAME_USER_WITHIN_MILLIS = 60 * 1000; // 1 minute\nexport function isPreviewing(chat) {\n return chat.membership.role === \"none\";\n}\nexport function isLapsed(chat) {\n return chat.membership.lapsed;\n}\nexport function isFrozen(thing) {\n return thing.frozen;\n}\nexport function isUpToDate(chat, events) {\n return (chat.latestMessage === undefined ||\n events[events.length - 1]?.index >= chat.latestEventIndex);\n}\nexport function getRecentlyActiveUsers(chat, events, maxUsers) {\n const users = new Set();\n if (isUpToDate(chat, events)) {\n const tenMinsAgo = Date.now() - 10 * 60 * 1000;\n for (let i = events.length - 1; i >= 0; i--) {\n const event = events[i];\n if (event.timestamp < tenMinsAgo)\n break;\n const activeUser = activeUserIdFromEvent(event.event);\n if (activeUser !== undefined) {\n users.add(activeUser);\n if (users.size >= maxUsers) {\n break;\n }\n }\n }\n }\n return users;\n}\nexport function getUsersToMakeRtcConnectionsWith(myUserId, chat, events, blocked) {\n if (chat.kind === \"direct_chat\") {\n return blocked.has(chat.id.userId) ? [] : [chat.id.userId];\n }\n const activeUsers = getRecentlyActiveUsers(chat, events, MAX_RTC_CONNECTIONS_PER_CHAT);\n return activeUsers.has(myUserId)\n ? Array.from(activeUsers).filter((u) => u !== myUserId && !blocked.has(u))\n : [];\n}\nexport function makeRtcConnections(myUserId, chat, events, lookup, blocked, meteredApiKey) {\n const userIds = getUsersToMakeRtcConnectionsWith(myUserId, chat, events, blocked);\n if (userIds.length === 0)\n return;\n userIds\n .reduce((ids, id) => {\n if (lookup.get(id)?.kind === \"user\") {\n ids.push(id);\n }\n return ids;\n }, [])\n .forEach((userId) => {\n rtcConnectionsManager.create(myUserId, userId, meteredApiKey);\n });\n}\n// Returns the userId of the user who triggered the event\nexport function activeUserIdFromEvent(event) {\n switch (event.kind) {\n case \"message\":\n return event.sender;\n case \"member_joined\":\n return event.userId;\n case \"name_changed\":\n case \"desc_changed\":\n case \"rules_changed\":\n case \"avatar_changed\":\n case \"role_changed\":\n case \"permissions_changed\":\n case \"group_visibility_changed\":\n case \"group_invite_code_changed\":\n return event.changedBy;\n case \"group_chat_created\":\n return event.created_by;\n case \"members_added\":\n case \"bot_added\":\n return event.addedBy;\n case \"members_removed\":\n case \"bot_removed\":\n return event.removedBy;\n case \"users_blocked\":\n return event.blockedBy;\n case \"users_unblocked\":\n return event.unblockedBy;\n case \"message_pinned\":\n return event.pinnedBy;\n case \"message_unpinned\":\n return event.unpinnedBy;\n case \"events_ttl_updated\":\n case \"external_url_updated\":\n case \"gate_updated\":\n case \"bot_updated\":\n return event.updatedBy;\n case \"users_invited\":\n return event.invitedBy;\n case \"aggregate_common_events\":\n case \"chat_frozen\":\n case \"chat_unfrozen\":\n case \"direct_chat_created\":\n case \"empty\":\n case \"member_left\": // We exclude participant_left events since the user is no longer in the group\n case \"members_added_to_default_channel\":\n return undefined;\n default:\n console.warn(\"Unexpected ChatEvent type received\", event);\n return undefined;\n }\n}\nexport function getMinVisibleMessageIndex(chat) {\n if (chat.kind === \"direct_chat\")\n return 0;\n return chat.minVisibleMessageIndex;\n}\nexport function messageIsReadByThem(chat, messageIndex) {\n if (chat.kind !== \"direct_chat\")\n return true;\n return chat.readByThemUpTo !== undefined && chat.readByThemUpTo >= messageIndex;\n}\nexport function getMembersString(user, userLookup, memberIds, unknownUser, you, compareUsersFn, truncate = true) {\n if (truncate && memberIds.length > 5) {\n return `${memberIds.length} members`;\n }\n const sorted = memberIds\n .map((id) => userLookup.get(id) ?? nullUser(unknownUser))\n .sort(compareUsersFn ?? compareUsername)\n .map((p) => `**${p.userId === user.userId ? you : p.displayName ?? p.username}**`);\n // TODO Improve i18n, don't hardcode 'and'\n return sorted.length > 1\n ? `${sorted.slice(0, -1).join(\", \")} and ${sorted[sorted.length - 1]}`\n : sorted.join();\n}\nexport function createMessage(userId, messageIndex, content, blockLevelMarkdown, replyingTo, forwarded, messageId = random64()) {\n return {\n kind: \"message\",\n content,\n sender: userId,\n repliesTo: replyingTo,\n messageId,\n messageIndex,\n reactions: [],\n tips: {},\n edited: false,\n forwarded,\n deleted: false,\n blockLevelMarkdown,\n };\n}\nfunction messageMentionsUser(formatter, userId, msg) {\n if (msg.event.sender === userId)\n return false;\n const txt = getContentAsFormattedText(formatter, msg.event.content, get(cryptoLookup));\n return txt.indexOf(`@UserId(${userId})`) >= 0;\n}\nfunction mentionsFromMessages(formatter, userId, messages) {\n return messages.reduce((mentions, msg) => {\n if (messageMentionsUser(formatter, userId, msg)) {\n mentions.push({\n messageId: msg.event.messageId,\n messageIndex: msg.event.messageIndex,\n eventIndex: msg.index,\n });\n }\n return mentions;\n }, []);\n}\nexport function mergeUnconfirmedThreadsIntoSummary(chat, unconfirmed) {\n if (chat.membership === undefined)\n return chat;\n return {\n ...chat,\n membership: {\n ...chat.membership,\n latestThreads: chat.membership.latestThreads.map((t) => {\n const context = {\n chatId: chat.id,\n threadRootMessageIndex: t.threadRootMessageIndex,\n };\n const unconfirmedMsgs = unconfirmed.get(context)?.messages ?? [];\n if (unconfirmedMsgs.length > 0) {\n let msgIdx = t.latestMessageIndex;\n let evtIdx = t.latestEventIndex;\n const latestUnconfirmedMessage = unconfirmedMsgs[unconfirmedMsgs.length - 1];\n if (latestUnconfirmedMessage.event.messageIndex > msgIdx) {\n msgIdx = latestUnconfirmedMessage.event.messageIndex;\n }\n if (latestUnconfirmedMessage.index > evtIdx) {\n evtIdx = latestUnconfirmedMessage.index;\n }\n return {\n ...t,\n latestEventIndex: evtIdx,\n latestMessageIndex: msgIdx,\n };\n }\n return t;\n }),\n },\n };\n}\nfunction scopeMatchesChat(scope, chat) {\n switch (scope.kind) {\n case \"community\":\n return chat.kind === \"channel\" && chat.id.communityId === scope.id.communityId;\n case \"group_chat\":\n return chat.kind === \"group_chat\";\n case \"direct_chat\":\n return chat.kind === \"direct_chat\";\n case \"favourite\":\n return false;\n default:\n return true;\n }\n}\nexport function mergeLocalSummaryUpdates(scope, server, localUpdates) {\n if (Object.keys(localUpdates).length === 0)\n return server;\n const merged = server.clone();\n for (const [chatId, localUpdate] of localUpdates.entries()) {\n if (localUpdate.added !== undefined && scopeMatchesChat(scope, localUpdate.added)) {\n const current = merged.get(chatId);\n if (current === undefined ||\n isLapsed(current) ||\n (current.kind === \"group_chat\" && isPreviewing(current))) {\n merged.set(chatId, localUpdate.added);\n }\n }\n if (localUpdate.updated !== undefined) {\n const current = merged.get(chatId);\n const updated = localUpdate.updated;\n if (current !== undefined) {\n const latestMessage = (updated.latestMessage?.timestamp ?? BigInt(-1)) >\n (current.latestMessage?.timestamp ?? BigInt(-1))\n ? updated.latestMessage\n : current.latestMessage;\n const latestEventIndex = Math.max(latestMessage?.index ?? 0, current.latestEventIndex);\n if (updated.kind === undefined) {\n merged.set(chatId, {\n ...current,\n latestMessage,\n latestMessageIndex: latestMessage?.event.messageIndex,\n latestEventIndex,\n membership: {\n ...current.membership,\n notificationsMuted: updated.notificationsMuted ?? current.membership.notificationsMuted,\n archived: updated.archived ?? current.membership.archived,\n rulesAccepted: updated.rulesAccepted ?? current.membership.rulesAccepted,\n },\n });\n }\n else if (current.kind === updated.kind) {\n const mergedGate = { ...current.gateConfig.gate, ...updated.gateConfig?.gate };\n merged.set(chatId, {\n ...current,\n latestMessage,\n latestMessageIndex: latestMessage?.event.messageIndex,\n latestEventIndex,\n name: updated.name ?? current.name,\n description: updated.description ?? current.description,\n public: updated.public ?? current.public,\n permissions: mergePermissions(current.permissions, updated.permissions),\n gateConfig: {\n gate: mergedGate,\n expiry: updated.gateConfig?.expiry ?? current.gateConfig.expiry,\n },\n membership: {\n ...current.membership,\n notificationsMuted: updated.notificationsMuted ?? current.membership.notificationsMuted,\n archived: updated.archived ?? current.membership.archived,\n rulesAccepted: updated.rulesAccepted ?? current.membership.rulesAccepted,\n },\n eventsTTL: updated.eventsTTL\n ? updated.eventsTTL === \"set_to_none\"\n ? undefined\n : updated.eventsTTL.value\n : current.eventsTTL,\n });\n }\n }\n }\n if (localUpdate.removedAtTimestamp) {\n const chat = merged.get(chatId);\n if (chat !== undefined &&\n ((chat.kind === \"direct_chat\" &&\n chat.dateCreated < localUpdate.removedAtTimestamp) ||\n ((chat.kind === \"group_chat\" || chat.kind === \"channel\") &&\n (chat.membership?.joined ?? BigInt(0)) < localUpdate.removedAtTimestamp))) {\n merged.delete(chatId);\n }\n }\n }\n return merged;\n}\nexport function mergeUnconfirmedIntoSummary(formatter, userId, chatSummary, unconfirmed, localUpdates, translations, blockedUsers, currentUserId, messageFilters) {\n if (chatSummary.membership === undefined)\n return chatSummary;\n const unconfirmedMessages = [...(unconfirmed.get({ chatId: chatSummary.id })?.messages ?? [])];\n let latestMessage = chatSummary.latestMessage;\n let latestEventIndex = chatSummary.latestEventIndex;\n let mentions = chatSummary.membership.mentions ?? [];\n if (unconfirmedMessages != undefined && unconfirmedMessages.length > 0) {\n const incomingMentions = mentionsFromMessages(formatter, userId, unconfirmedMessages);\n mentions = mergeMentions(mentions, incomingMentions);\n const latestUnconfirmedMessage = unconfirmedMessages[unconfirmedMessages.length - 1];\n if (latestMessage === undefined ||\n latestUnconfirmedMessage.timestamp > latestMessage.timestamp) {\n latestMessage = latestUnconfirmedMessage;\n }\n if (latestUnconfirmedMessage.index > latestEventIndex) {\n latestEventIndex = latestUnconfirmedMessage.index;\n }\n }\n if (latestMessage !== undefined) {\n const updates = localUpdates.get(latestMessage.event.messageId);\n const translation = translations.get(latestMessage.event.messageId);\n const senderBlocked = blockedUsers.has(latestMessage.event.sender);\n // Don't hide the sender's own messages\n const failedMessageFilter = latestMessage.event.sender !== currentUserId\n ? doesMessageFailFilter(latestMessage.event, messageFilters) !== undefined\n : false;\n if (updates !== undefined ||\n translation !== undefined ||\n senderBlocked ||\n failedMessageFilter) {\n latestMessage = {\n ...latestMessage,\n event: mergeLocalUpdates(latestMessage.event, updates, undefined, undefined, translation, undefined, senderBlocked, false, failedMessageFilter),\n };\n }\n }\n if (chatSummary.kind !== \"direct_chat\") {\n if (unconfirmedMessages !== undefined) {\n chatSummary = mergeUnconfirmedThreadsIntoSummary(chatSummary, unconfirmed);\n }\n return {\n ...chatSummary,\n latestMessage,\n latestEventIndex,\n membership: {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n ...chatSummary.membership,\n mentions,\n },\n };\n }\n else {\n return {\n ...chatSummary,\n latestMessage,\n latestEventIndex,\n };\n }\n}\nfunction mergePermissions(current, updated) {\n if (updated === undefined) {\n return current;\n }\n return {\n changeRoles: updated.changeRoles ?? current.changeRoles,\n updateGroup: updated.updateGroup ?? current.updateGroup,\n inviteUsers: updated.inviteUsers ?? current.inviteUsers,\n addMembers: updated.addMembers ?? current.addMembers,\n removeMembers: updated.removeMembers ?? current.removeMembers,\n deleteMessages: updated.deleteMessages ?? current.deleteMessages,\n pinMessages: updated.pinMessages ?? current.pinMessages,\n reactToMessages: updated.reactToMessages ?? current.reactToMessages,\n mentionAllMembers: updated.mentionAllMembers ?? current.mentionAllMembers,\n startVideoCall: updated.startVideoCall ?? current.startVideoCall,\n messagePermissions: mergeMessagePermissions(current.messagePermissions, updated.messagePermissions),\n threadPermissions: mergeThreadPermissions(current.threadPermissions ?? { default: \"member\" }, updated.threadPermissions),\n };\n}\nfunction mergeMessagePermissions(current, updated) {\n if (updated === undefined) {\n return current;\n }\n return {\n default: updated.default ?? current.default,\n text: applyOptionUpdate(current.text, updated.text),\n image: applyOptionUpdate(current.image, updated.image),\n video: applyOptionUpdate(current.video, updated.video),\n audio: applyOptionUpdate(current.audio, updated.audio),\n file: applyOptionUpdate(current.file, updated.file),\n poll: applyOptionUpdate(current.poll, updated.poll),\n crypto: applyOptionUpdate(current.crypto, updated.crypto),\n giphy: applyOptionUpdate(current.giphy, updated.giphy),\n prize: applyOptionUpdate(current.prize, updated.prize),\n memeFighter: applyOptionUpdate(current.memeFighter, updated.memeFighter),\n p2pSwap: applyOptionUpdate(current.p2pSwap, updated.p2pSwap),\n };\n}\nfunction mergeThreadPermissions(current, updated) {\n if (updated === undefined) {\n return current;\n }\n if (updated === \"set_to_none\") {\n return undefined;\n }\n return mergeMessagePermissions(current, updated.value);\n}\nfunction mergeMentions(existing, incoming) {\n return [\n ...existing,\n ...incoming.filter((m1) => existing.find((m2) => m1.messageId === m2.messageId) === undefined),\n ];\n}\nexport function sameUser(a, b) {\n if (a.event.kind === \"message\" && b.event.kind === \"message\") {\n return (a.event.sender === b.event.sender &&\n Math.abs(Number(b.timestamp - a.timestamp)) <\n MERGE_MESSAGES_SENT_BY_SAME_USER_WITHIN_MILLIS);\n }\n return false;\n}\nexport function groupBySender(events) {\n return groupWhile(sameUser, events);\n}\nexport function groupEvents(events, myUserId, expandedDeletedMessages, groupInner) {\n return flattenTimeline(groupWhile(sameDate, events.filter((e) => !isEventKindHidden(e.event.kind)))\n .map((e) => reduceJoinedOrLeft(e, myUserId, expandedDeletedMessages))\n .map(groupInner ?? groupBySender));\n}\nexport function flattenTimeline(grouped) {\n const timeline = [];\n grouped.forEach((dayGroup) => {\n const date = {\n kind: \"timeline_date\",\n timestamp: dayGroup[0][0]?.timestamp ?? 0,\n };\n const group = {\n kind: \"timeline_event_group\",\n group: dayGroup,\n };\n timeline.push(group, date);\n });\n return timeline;\n}\nexport function isEventKindHidden(kind) {\n switch (kind) {\n case \"empty\":\n case \"message_pinned\":\n case \"message_unpinned\":\n case \"member_left\":\n case \"members_added_to_default_channel\":\n return true;\n default:\n return false;\n }\n}\nfunction reduceJoinedOrLeft(events, myUserId, expandedDeletedMessages) {\n function getLatestAggregateEventIfExists(events) {\n if (events.length === 0)\n return undefined;\n const latest = events[events.length - 1];\n return latest.event.kind === \"aggregate_common_events\" ? latest.event : undefined;\n }\n return events.reduce((previous, e) => {\n let newEvent = e;\n if (isEventKindHidden(e.event.kind) ||\n e.event.kind === \"member_joined\" ||\n e.event.kind === \"role_changed\" ||\n (e.event.kind === \"message\" &&\n messageIsHidden(e.event, myUserId, expandedDeletedMessages))) {\n let agg = getLatestAggregateEventIfExists(previous);\n if (agg === undefined) {\n agg = {\n kind: \"aggregate_common_events\",\n usersJoined: new Set(),\n usersLeft: new Set(),\n rolesChanged: new Map(),\n messagesDeleted: [],\n };\n }\n else {\n previous.pop();\n }\n if (e.event.kind === \"member_joined\") {\n if (agg.usersLeft.has(e.event.userId)) {\n agg.usersLeft.delete(e.event.userId);\n }\n else {\n agg.usersJoined.add(e.event.userId);\n }\n }\n else if (e.event.kind === \"member_left\") {\n if (agg.usersJoined.has(e.event.userId)) {\n agg.usersJoined.delete(e.event.userId);\n }\n else {\n agg.usersLeft.add(e.event.userId);\n }\n }\n else if (e.event.kind === \"message\") {\n agg.messagesDeleted.push(e.event.messageIndex);\n }\n else if (e.event.kind === \"role_changed\") {\n let changedByMap = agg.rolesChanged.get(e.event.changedBy);\n if (changedByMap === undefined) {\n changedByMap = new Map();\n agg.rolesChanged.set(e.event.changedBy, changedByMap);\n }\n // Build the set of users that have already had their role changed\n const alreadyChanged = new Set([...changedByMap.values()].flatMap((users) => Array.from(users)));\n // Only add users who have not already had their role changed\n const usersToAdd = e.event.userIds.filter((userId) => !alreadyChanged.has(userId));\n if (usersToAdd.length > 0) {\n let newRoleSet = changedByMap.get(e.event.newRole);\n if (newRoleSet === undefined) {\n newRoleSet = new Set();\n changedByMap.set(e.event.newRole, newRoleSet);\n }\n for (const userId of usersToAdd) {\n newRoleSet.add(userId);\n }\n }\n }\n newEvent = {\n event: agg,\n timestamp: e.timestamp,\n index: e.index,\n };\n }\n previous.push(newEvent);\n return previous;\n }, []);\n}\nfunction messageIsHidden(message, myUserId, expandedDeletedMessages) {\n if (message.content.kind === \"message_reminder_created_content\" && message.content.hidden) {\n return true;\n }\n return ((message.content.kind === \"deleted_content\" ||\n message.content.kind === \"blocked_content\") &&\n message.sender !== myUserId &&\n !expandedDeletedMessages.has(message.messageIndex) &&\n message.thread === undefined);\n}\nexport function groupMessagesByDate(events) {\n return groupWhile(sameDate, events.filter((e) => !isEventKindHidden(e.event.kind)));\n}\nexport function getNextEventAndMessageIndexes(chat, localMessages) {\n let eventIndex = chat.latestEventIndex;\n let messageIndex = chat.latestMessage?.event.messageIndex ?? -1;\n if (localMessages.length > 0) {\n const lastUnconfirmed = localMessages[localMessages.length - 1];\n if (lastUnconfirmed.index > eventIndex) {\n eventIndex = lastUnconfirmed.index;\n }\n if (lastUnconfirmed.event.messageIndex > messageIndex) {\n messageIndex = lastUnconfirmed.event.messageIndex;\n }\n }\n return [eventIndex + 1, messageIndex + 1];\n}\nexport function latestLoadedMessageIndex(events) {\n let idx = undefined;\n for (let i = events.length - 1; i >= 0; i--) {\n const e = events[i].event;\n if (e.kind === \"message\") {\n idx = e.messageIndex;\n break;\n }\n }\n return idx;\n}\nexport function latestAvailableEventIndex(chatSummary) {\n return chatSummary.latestEventIndex;\n}\nfunction sameDate(a, b) {\n return areOnSameDay(new Date(Number(a.timestamp)), new Date(Number(b.timestamp)));\n}\nexport function containsReaction(userId, reaction, reactions) {\n const r = reactions.find((r) => r.reaction === reaction);\n return r ? r.userIds.has(userId) : false;\n}\n// The current events list must already be sorted by ascending event index\nexport function mergeServerEvents(events, newEvents, messageContext) {\n updateReplyContexts(events, newEvents, messageContext);\n const merged = distinctBy([...newEvents, ...events], (e) => e.index);\n merged.sort(sortByTimestampThenEventIndex);\n return merged;\n}\nfunction updateReplyContexts(events, newEvents, messageContext) {\n if (events.length == 0)\n return;\n const lookup = toRecordFiltered(newEvents, (e) => e.index, (e) => e, (e) => e.event.kind === \"message\");\n for (let i = 0; i < events.length; i++) {\n const event = events[i];\n if (event.event.kind === \"message\" &&\n event.event.repliesTo?.kind === \"rehydrated_reply_context\" &&\n (event.event.repliesTo.sourceContext === undefined ||\n messageContextsEqual(event.event.repliesTo.sourceContext, messageContext))) {\n const updated = lookup[event.event.repliesTo.eventIndex];\n if (updated?.event.kind === \"message\") {\n events[i] = {\n ...event,\n event: {\n ...event.event,\n repliesTo: {\n ...event.event.repliesTo,\n content: updated.event.content,\n edited: updated.event.edited,\n },\n },\n };\n }\n }\n }\n}\nfunction createMessageSortFunction(unconfirmed, recentlySent) {\n return (a, b) => {\n // If either message is still unconfirmed, and both were sent recently, use both of their local timestamps,\n // otherwise we will be comparing the local timestamp of one with the server timestamp of the other\n if (a.event.kind === \"message\" && b.event.kind === \"message\") {\n if (unconfirmed.has(a.event.messageId) || unconfirmed.has(b.event.messageId)) {\n const aTimestampOverride = recentlySent.get(a.event.messageId);\n const bTimestampOverride = recentlySent.get(b.event.messageId);\n if (aTimestampOverride && bTimestampOverride) {\n return aTimestampOverride > bTimestampOverride ? 1 : -1;\n }\n }\n }\n return sortByTimestampThenEventIndex(a, b);\n };\n}\nfunction sortByTimestampThenEventIndex(a, b) {\n if (a.timestamp === b.timestamp)\n return a.index - b.index;\n return Number(a.timestamp - b.timestamp);\n}\nexport function serialiseMessageForRtc(messageEvent) {\n if (isAttachmentContent(messageEvent.event.content)) {\n return {\n ...messageEvent,\n event: {\n ...messageEvent.event,\n content: {\n kind: \"placeholder_content\",\n },\n },\n };\n }\n return messageEvent;\n}\nexport function groupChatFromCandidate(chatId, candidate) {\n const chat = {\n kind: chatId.kind,\n id: chatId,\n latestEventIndex: 0,\n latestMessage: undefined,\n name: candidate.name,\n description: candidate.description,\n public: candidate.public,\n historyVisible: candidate.historyVisible,\n minVisibleEventIndex: 0,\n minVisibleMessageIndex: 0,\n lastUpdated: BigInt(0),\n memberCount: candidate.members.length + 1, // +1 to include us\n ...candidate.avatar,\n permissions: candidate.permissions,\n metrics: emptyChatMetrics(),\n subtype: undefined,\n previewed: false,\n frozen: false,\n dateLastPinned: undefined,\n dateReadPinned: undefined,\n gateConfig: candidate.gateConfig,\n level: \"group\",\n membership: {\n ...nullMembership(),\n joined: BigInt(Date.now()),\n role: \"owner\",\n },\n eventsTTL: candidate.eventsTTL,\n };\n if (chat.kind === \"channel\") {\n chat.externalUrl = candidate.externalUrl;\n }\n return chat;\n}\nfunction updatePollContent(content, votes) {\n for (const vote of votes) {\n content = {\n ...content,\n votes: updatePollVotes(vote.userId, content, vote.answerIndex, vote.type),\n };\n }\n return content;\n}\nexport function updatePollVotes(userId, poll, answerIdx, type) {\n return type === \"delete\"\n ? removeVoteFromPoll(userId, answerIdx, poll.votes)\n : addVoteToPoll(userId, answerIdx, poll);\n}\nexport function addVoteToPoll(userId, answerIdx, { votes, config }) {\n if (votes.user.includes(answerIdx)) {\n // can't vote for the same thing twice\n return votes;\n }\n let updatedVotes = JSON.parse(JSON.stringify(votes));\n // update the total votes\n if (updatedVotes.total.kind === \"anonymous_poll_votes\") {\n if (updatedVotes.total.votes[answerIdx] === undefined) {\n updatedVotes.total.votes[answerIdx] = 0;\n }\n updatedVotes.total.votes[answerIdx] = updatedVotes.total.votes[answerIdx] + 1;\n }\n if (updatedVotes.total.kind === \"hidden_poll_votes\") {\n updatedVotes.total.votes = updatedVotes.total.votes + 1;\n }\n if (updatedVotes.total.kind === \"visible_poll_votes\") {\n if (updatedVotes.total.votes[answerIdx] === undefined) {\n updatedVotes.total.votes[answerIdx] = [];\n }\n updatedVotes.total.votes[answerIdx].push(userId);\n }\n if (!config.allowMultipleVotesPerUser) {\n // if we are only allowed a single vote then we also need\n // to remove anything we may previously have voted for\n const previousVote = updatedVotes.user[0];\n if (previousVote !== undefined) {\n updatedVotes = removeVoteFromPoll(userId, previousVote, updatedVotes);\n }\n }\n updatedVotes.user.push(answerIdx);\n return updatedVotes;\n}\nexport function removeVoteFromPoll(userId, answerIdx, votes) {\n votes.user = votes.user.filter((i) => i !== answerIdx);\n if (votes.total.kind === \"anonymous_poll_votes\") {\n votes.total.votes[answerIdx] = votes.total.votes[answerIdx] - 1;\n }\n if (votes.total.kind === \"hidden_poll_votes\") {\n votes.total.votes = votes.total.votes - 1;\n }\n if (votes.total.kind === \"visible_poll_votes\") {\n votes.total.votes[answerIdx] = votes.total.votes[answerIdx].filter((u) => u !== userId);\n }\n votes.user = votes.user.filter((a) => a !== answerIdx);\n return votes;\n}\nexport function canImportToCommunity(chat) {\n return chat.kind === \"group_chat\" && !chat.frozen && hasOwnerRights(chat.membership.role);\n}\nexport function canChangePermissions(chat) {\n return ((chat.kind === \"group_chat\" || chat.kind === \"channel\") &&\n chat.membership !== undefined &&\n !chat.frozen &&\n hasOwnerRights(chat.membership.role));\n}\nexport function canChangeRoles(chat, currRole, newRole) {\n if (chat.kind === \"direct_chat\" || currRole === newRole || chat.frozen) {\n return false;\n }\n switch (newRole) {\n case \"owner\":\n return hasOwnerRights(chat.membership.role);\n default:\n return isPermitted(chat.membership.role, chat.permissions.changeRoles);\n }\n}\nexport function canRemoveMembers(chat) {\n if (chat.kind !== \"direct_chat\") {\n return !chat.frozen && isPermitted(chat.membership.role, chat.permissions.removeMembers);\n }\n else {\n return false;\n }\n}\nexport function canBlockUsers(chat) {\n if (chat.kind !== \"direct_chat\") {\n return (chat.public &&\n !chat.frozen &&\n isPermitted(chat.membership.role, chat.permissions.removeMembers));\n }\n else {\n return true;\n }\n}\nexport function canUnblockUsers(chat) {\n if (chat.kind !== \"direct_chat\") {\n return (chat.public &&\n !chat.frozen &&\n isPermitted(chat.membership.role, chat.permissions.removeMembers));\n }\n else {\n return true;\n }\n}\nexport function canDeleteOtherUsersMessages(chat) {\n if (chat.kind !== \"direct_chat\") {\n return !chat.frozen && isPermitted(chat.membership.role, chat.permissions.deleteMessages);\n }\n else {\n return true;\n }\n}\nexport function canEditGroupDetails(chat) {\n if (chat.kind !== \"direct_chat\" && !chat.frozen) {\n return isPermitted(chat.membership.role, chat.permissions.updateGroup);\n }\n else {\n return false;\n }\n}\nexport function canStartVideoCalls(chat, userLookup) {\n if (chat.kind === \"direct_chat\") {\n const user = userLookup.get(chat.them.userId);\n return user !== undefined && user.kind === \"user\";\n }\n else {\n return !chat.frozen && isPermitted(chat.membership.role, chat.permissions.startVideoCall);\n }\n}\nexport function canPinMessages(chat) {\n if (chat.kind !== \"direct_chat\" && !chat.frozen) {\n return isPermitted(chat.membership.role, chat.permissions.pinMessages);\n }\n else {\n return false;\n }\n}\nexport function canInviteUsers(chat) {\n return (chat.kind !== \"direct_chat\" &&\n !chat.frozen &&\n isPermitted(chat.membership.role, chat.permissions.inviteUsers));\n}\nexport function canAddMembers(chat) {\n return (chat.kind === \"channel\" &&\n !chat.frozen &&\n isPermitted(chat.membership.role, chat.permissions.addMembers));\n}\nexport function permittedMessagesInGroup(user, chat, mode) {\n return new Map(messagePermissionsList.map((m) => [\n m,\n canSendGroupMessage(user, chat, mode, m),\n ]));\n}\nconst PERMISSIONS_BLOCKED_FOR_NEW_USERS = [\n \"audio\",\n \"file\",\n \"giphy\",\n \"image\",\n \"video\",\n];\nexport function canSendGroupMessage(user, chat, mode, permission) {\n if (mode === \"any\") {\n return (canSendGroupMessage(user, chat, \"message\", permission) ||\n canSendGroupMessage(user, chat, \"thread\", permission));\n }\n if (permission === undefined) {\n return messagePermissionsList.some((mp) => canSendGroupMessage(user, chat, mode, mp));\n }\n const messagePermissions = mode === \"thread\"\n ? chat.permissions.threadPermissions ?? chat.permissions.messagePermissions\n : chat.permissions.messagePermissions;\n if (permission === \"prize\" && mode === \"thread\") {\n return false;\n }\n if (chat.public &&\n user.diamondStatus.kind === \"inactive\" &&\n PERMISSIONS_BLOCKED_FOR_NEW_USERS.includes(permission)) {\n const isNewUser = Date.now() - Number(user.dateCreated) < 24 * 60 * 60 * 1000; // 1 day\n if (isNewUser) {\n return false;\n }\n }\n return (!chat.frozen &&\n isPermitted(chat.membership.role, messagePermissions[permission] ?? messagePermissions.default));\n}\nexport function permittedMessagesInDirectChat(recipient, mode, proposalsBotUserId) {\n return new Map(messagePermissionsList.map((m) => [\n m,\n canSendDirectMessage(recipient, mode, proposalsBotUserId, m),\n ]));\n}\nexport function canSendDirectMessage(recipient, mode, proposalsBotUserId, permission) {\n if (mode === \"thread\") {\n return false;\n }\n if (recipient.suspended) {\n return false;\n }\n if ((recipient.kind === \"bot\" && recipient.userId === OPENCHAT_BOT_USER_ID) ||\n recipient.userId === proposalsBotUserId) {\n return false;\n }\n return permission !== \"poll\" && permission !== \"prize\";\n}\nexport function canReactToMessages(chat) {\n if (chat.kind !== \"direct_chat\") {\n return !chat.frozen && isPermitted(chat.membership.role, chat.permissions.reactToMessages);\n }\n else {\n return true;\n }\n}\nexport function canMentionAllMembers(chat) {\n if (chat.kind !== \"direct_chat\" && !chat.frozen) {\n return isPermitted(chat.membership.role, chat.permissions.mentionAllMembers);\n }\n else {\n return false;\n }\n}\nexport function canLeaveGroup(thing) {\n if (!thing.frozen) {\n // TODO - this is not really correct - you should be able to leave if you are not the *only* owner\n return thing.membership.role !== \"owner\";\n }\n else {\n return false;\n }\n}\nexport function canDeleteGroup(thing) {\n return !thing.frozen && hasOwnerRights(thing.membership.role);\n}\nexport function canConvertToCommunity(thing) {\n return !thing.frozen && hasOwnerRights(thing.membership.role);\n}\nexport function canChangeVisibility(thing) {\n return !thing.frozen && hasOwnerRights(thing.membership.role);\n}\nexport function mergeChatMetrics(a, b) {\n return {\n audioMessages: a.audioMessages + b.audioMessages,\n edits: a.edits + b.edits,\n icpMessages: a.icpMessages + b.icpMessages,\n sns1Messages: a.sns1Messages + b.sns1Messages,\n ckbtcMessages: a.ckbtcMessages + b.ckbtcMessages,\n giphyMessages: a.giphyMessages + b.giphyMessages,\n deletedMessages: a.deletedMessages + b.deletedMessages,\n reportedMessages: a.reportedMessages + b.reportedMessages,\n fileMessages: a.fileMessages + b.fileMessages,\n pollVotes: a.pollVotes + b.pollVotes,\n textMessages: a.textMessages + b.textMessages,\n imageMessages: a.imageMessages + b.imageMessages,\n replies: a.replies + b.replies,\n videoMessages: a.videoMessages + b.videoMessages,\n polls: a.polls + b.polls,\n reactions: a.reactions + b.reactions,\n };\n}\nexport function metricsEqual(a, b) {\n return Object.keys(a).reduce((same, k) => same && a[k] === b[k], true);\n}\nexport function canForward(content) {\n return (content.kind !== \"bot_placeholder_content\" &&\n content.kind !== \"crypto_content\" &&\n content.kind !== \"deleted_content\" &&\n content.kind !== \"poll_content\" &&\n content.kind !== \"placeholder_content\" &&\n content.kind !== \"prize_content\" &&\n content.kind !== \"proposal_content\" &&\n content.kind !== \"video_call_content\");\n}\nexport function buildUserAvatarUrl(pattern, userId, avatarId) {\n return avatarId !== undefined\n ? buildBlobUrl(pattern, userId, avatarId, \"avatar\")\n : userId === OPENCHAT_BOT_USER_ID\n ? OPENCHAT_BOT_AVATAR_URL\n : userId === OPENCHAT_VIDEO_CALL_USER_ID\n ? OPENCHAT_VIDEO_CALL_AVATAR_URL\n : buildIdenticonUrl(userId);\n}\nexport function buildBlobUrl(pattern, canisterId, blobId, blobType) {\n return `${pattern\n .replace(\"{canisterId}\", canisterId)\n .replace(\"{blobType}\", blobType)}/${blobId}`;\n}\nexport function buildIdenticonUrl(id) {\n if (!id)\n return \"\";\n const identicon = new Identicon(md5(id), {\n margin: 0,\n format: \"svg\",\n });\n return `data:image/svg+xml;base64,${identicon}`;\n}\nexport function mergeSendMessageResponse(msg, resp) {\n const content = resp.kind === \"transfer_success\" && msg.content.kind === \"crypto_content\"\n ? {\n ...msg.content,\n transfer: resp.transfer,\n }\n : msg.content;\n return {\n index: resp.eventIndex,\n timestamp: resp.timestamp,\n expiresAt: resp.expiresAt,\n event: {\n ...msg,\n content,\n messageIndex: resp.messageIndex,\n },\n };\n}\nexport function mergeEventsAndLocalUpdates(events, unconfirmed, localUpdates, expiredEventRanges, proposalTallies, translations, blockedUsers, currentUserId, messageFilters, recentlySentMessages) {\n const eventIndexes = new DRange();\n eventIndexes.add(expiredEventRanges);\n const confirmedMessageIds = new Set();\n function processEvent(e) {\n eventIndexes.add(e.index);\n if (e.event.kind === \"message\") {\n confirmedMessageIds.add(e.event.messageId);\n const updates = localUpdates.get(e.event.messageId);\n const translation = translations.get(e.event.messageId);\n const repliesTo = e.event.repliesTo?.kind === \"rehydrated_reply_context\"\n ? e.event.repliesTo.messageId\n : undefined;\n const [replyContextUpdates, replyTranslation] = repliesTo !== undefined\n ? [localUpdates.get(repliesTo), translations.get(repliesTo)]\n : [undefined, undefined];\n const tallyUpdate = e.event.content.kind === \"proposal_content\"\n ? proposalTallies[tallyKey(e.event.content.governanceCanisterId, e.event.content.proposal.id)]\n : undefined;\n const senderBlocked = blockedUsers.has(e.event.sender);\n const repliesToSenderBlocked = e.event.repliesTo?.kind === \"rehydrated_reply_context\" &&\n blockedUsers.has(e.event.repliesTo.senderId);\n // Don't hide the sender's own messages\n const failedMessageFilter = e.event.sender !== currentUserId\n ? doesMessageFailFilter(e.event, messageFilters) !== undefined\n : false;\n if (updates !== undefined ||\n replyContextUpdates !== undefined ||\n tallyUpdate !== undefined ||\n translation !== undefined ||\n replyTranslation !== undefined ||\n senderBlocked ||\n repliesToSenderBlocked ||\n failedMessageFilter) {\n return {\n ...e,\n event: mergeLocalUpdates(e.event, updates, replyContextUpdates, tallyUpdate, translation, replyTranslation, senderBlocked, repliesToSenderBlocked, failedMessageFilter),\n };\n }\n }\n return e;\n }\n const merged = events.map((e) => processEvent(e));\n if (unconfirmed.length > 0) {\n unconfirmed.sort(sortByTimestampThenEventIndex);\n const unconfirmedAdded = new Set();\n for (const message of unconfirmed) {\n // Only include unconfirmed events that are either contiguous with the loaded confirmed events, or are the\n // first events in a new chat\n if (!confirmedMessageIds.has(message.event.messageId) &&\n ((eventIndexes.length === 0 && message.index <= 1) ||\n eventIndexes\n .subranges()\n .some((s) => s.low - 1 <= message.index && message.index <= s.high + 1))) {\n merged.push(processEvent(message));\n unconfirmedAdded.add(message.event.messageId);\n }\n }\n if (unconfirmedAdded.size > 0) {\n const sortFn = createMessageSortFunction(unconfirmedAdded, recentlySentMessages);\n merged.sort(sortFn);\n }\n }\n return merged;\n}\nexport function doesMessageFailFilter(message, filters) {\n const text = getContentAsText(message.content);\n if (text !== undefined) {\n for (const f of filters) {\n if (f.regex.test(text)) {\n return f.id;\n }\n }\n }\n}\nfunction mergeLocalUpdates(message, localUpdates, replyContextLocalUpdates, tallyUpdate, translation, replyTranslation, senderBlocked, repliesToSenderBlocked, failedMessageFilter) {\n if (localUpdates?.deleted !== undefined) {\n return {\n ...message,\n deleted: true,\n content: {\n kind: \"deleted_content\",\n deletedBy: localUpdates.deleted.deletedBy,\n timestamp: localUpdates.deleted.timestamp,\n },\n };\n }\n if (localUpdates?.hiddenMessageRevealed !== true &&\n message.content.kind !== \"deleted_content\" &&\n (senderBlocked || failedMessageFilter)) {\n return {\n ...message,\n content: {\n kind: \"blocked_content\",\n },\n };\n }\n message = { ...message };\n if (localUpdates?.cancelledReminder !== undefined) {\n message.content = localUpdates.cancelledReminder;\n }\n if (localUpdates?.editedContent !== undefined) {\n message.content = localUpdates.editedContent;\n if (!localUpdates.linkRemoved) {\n message.edited = true;\n }\n }\n if (localUpdates?.undeletedContent !== undefined) {\n message.content = localUpdates.undeletedContent;\n message.deleted = false;\n }\n if (localUpdates?.revealedContent !== undefined) {\n message.content = localUpdates.revealedContent;\n message.deleted = true;\n }\n if (localUpdates?.prizeClaimed !== undefined) {\n if (message.content.kind === \"prize_content\") {\n if (!message.content.winners.includes(localUpdates.prizeClaimed)) {\n message.content = { ...message.content };\n message.content.winners.push(localUpdates.prizeClaimed);\n // We can't tell for sure if this user's claim was contained within the `prizesPending` count or not,\n // but it doesn't actually matter, so if any were pending, then decrement `prizesPending`, else\n // decrement `prizesRemaining`\n if (message.content.prizesPending > 0) {\n message.content.prizesPending -= 1;\n }\n else {\n message.content.prizesRemaining -= 1;\n }\n }\n }\n }\n if (localUpdates?.blockLevelMarkdown !== undefined) {\n message.blockLevelMarkdown = localUpdates.blockLevelMarkdown;\n }\n if (localUpdates?.p2pSwapStatus !== undefined && message.content.kind === \"p2p_swap_content\") {\n message.content = {\n ...message.content,\n status: localUpdates.p2pSwapStatus,\n };\n }\n if (localUpdates?.reactions !== undefined) {\n let reactions = [...message.reactions];\n for (const localReaction of localUpdates.reactions) {\n reactions = applyLocalReaction(localReaction, reactions);\n }\n message.reactions = reactions;\n }\n if (localUpdates?.tips !== undefined) {\n message.tips = mergeLocalTips(message.tips, localUpdates.tips);\n }\n if (localUpdates?.pollVotes !== undefined && message.content.kind === \"poll_content\") {\n message.content = updatePollContent(message.content, localUpdates.pollVotes);\n }\n if (localUpdates?.threadSummary !== undefined) {\n const current = message.thread ?? defaultThreadSummary();\n const participantIds = new Set([\n ...current.participantIds,\n ...(localUpdates.threadSummary.participantIds ?? []),\n ]);\n message.thread = {\n participantIds,\n followedByMe: localUpdates.threadSummary.followedByMe ?? current.followedByMe,\n numberOfReplies: Math.max(localUpdates.threadSummary.numberOfReplies ?? 0, current.numberOfReplies),\n latestEventIndex: Math.max(localUpdates.threadSummary.latestEventIndex ?? 0, current.latestEventIndex),\n latestEventTimestamp: bigIntMax(localUpdates.threadSummary.latestEventTimestamp ?? BigInt(0), current.latestEventTimestamp),\n };\n }\n if (message.repliesTo?.kind === \"rehydrated_reply_context\" &&\n (replyContextLocalUpdates !== undefined ||\n replyTranslation !== undefined ||\n repliesToSenderBlocked)) {\n if (replyContextLocalUpdates?.deleted !== undefined) {\n message.repliesTo = {\n ...message.repliesTo,\n content: {\n kind: \"deleted_content\",\n deletedBy: replyContextLocalUpdates.deleted.deletedBy,\n timestamp: replyContextLocalUpdates.deleted.timestamp,\n },\n };\n }\n else if (repliesToSenderBlocked &&\n replyContextLocalUpdates?.hiddenMessageRevealed !== true) {\n message.repliesTo = {\n ...message.repliesTo,\n content: {\n kind: \"blocked_content\",\n },\n };\n }\n else {\n message.repliesTo = { ...message.repliesTo };\n if (replyContextLocalUpdates?.editedContent !== undefined) {\n message.repliesTo.content = replyContextLocalUpdates.editedContent;\n }\n if (replyContextLocalUpdates?.revealedContent !== undefined) {\n message.repliesTo.content = replyContextLocalUpdates.revealedContent;\n }\n if (replyContextLocalUpdates?.pollVotes !== undefined &&\n message.repliesTo.content.kind === \"poll_content\") {\n message.repliesTo.content = updatePollContent(message.repliesTo.content, replyContextLocalUpdates.pollVotes);\n }\n if (replyTranslation !== undefined) {\n message.repliesTo.content = applyTranslation(message.repliesTo.content, replyTranslation);\n }\n }\n }\n if (tallyUpdate !== undefined &&\n message.content.kind === \"proposal_content\" &&\n tallyUpdate.timestamp > message.content.proposal.tally.timestamp) {\n message.content = {\n ...message.content,\n proposal: {\n ...message.content.proposal,\n tally: tallyUpdate,\n },\n };\n }\n if (translation !== undefined) {\n message.content = applyTranslation(message.content, translation);\n }\n return message;\n}\nexport function mergeLocalTips(existing, local) {\n const merged = {};\n for (const ledger in existing) {\n merged[ledger] = { ...existing[ledger] };\n }\n for (const ledger in local) {\n if (!merged[ledger]) {\n merged[ledger] = {};\n }\n for (const userId in local[ledger]) {\n merged[ledger][userId] = local[ledger][userId];\n }\n }\n return merged;\n}\nfunction defaultThreadSummary() {\n return {\n participantIds: new Set(),\n followedByMe: false,\n numberOfReplies: 0,\n latestEventIndex: 0,\n latestEventTimestamp: BigInt(0),\n };\n}\nfunction applyTranslation(content, translation) {\n switch (content.kind) {\n case \"text_content\": {\n return {\n ...content,\n text: translation,\n };\n }\n case \"audio_content\":\n case \"image_content\":\n case \"video_content\":\n case \"file_content\":\n case \"crypto_content\": {\n return {\n ...content,\n caption: translation,\n };\n }\n case \"poll_content\": {\n return {\n ...content,\n config: {\n ...content.config,\n text: translation,\n },\n };\n }\n case \"proposal_content\": {\n return {\n ...content,\n proposal: {\n ...content.proposal,\n summary: translation,\n },\n };\n }\n default:\n return content;\n }\n}\nexport function applyLocalReaction(local, reactions) {\n const r = reactions.find((r) => r.reaction === local.reaction);\n if (r === undefined) {\n if (local.kind === \"add\") {\n reactions.push({ reaction: local.reaction, userIds: new Set([local.userId]) });\n }\n }\n else {\n if (local.kind === \"add\") {\n r.userIds.add(local.userId);\n }\n else {\n r.userIds.delete(local.userId);\n if (r.userIds.size === 0) {\n reactions = reactions.filter((r) => r.reaction !== local.reaction);\n }\n }\n }\n return reactions;\n}\nexport function findMessageById(messageId, events) {\n for (const event of events) {\n if (event.event.kind === \"message\" && event.event.messageId === messageId) {\n return event;\n }\n }\n return undefined;\n}\nexport function buildTransactionLink(formatter, transfer, cryptoLookup) {\n const url = buildTransactionUrl(transfer, cryptoLookup);\n return url !== undefined\n ? formatter(\"tokenTransfer.viewTransaction\", { values: { url } })\n : undefined;\n}\nexport function buildTransactionUrl(transfer, cryptoLookup) {\n if (transfer.kind === \"completed\") {\n return buildTransactionUrlByIndex(transfer.blockIndex, transfer.ledger, cryptoLookup);\n }\n}\nexport function buildTransactionUrlByIndex(transactionIndex, ledger, cryptoLookup) {\n return cryptoLookup[ledger].transactionUrlFormat.replace(\"{transaction_index}\", transactionIndex.toString());\n}\nexport function buildCryptoTransferText(formatter, myUserId, senderId, content, me, cryptoLookup) {\n if (content.transfer.kind !== \"completed\" && content.transfer.kind !== \"pending\") {\n return undefined;\n }\n function username(userId) {\n return userId === myUserId ? formatter(\"you\") : `@UserId(${userId})`;\n }\n const tokenDetails = cryptoLookup[content.transfer.ledger];\n const values = {\n amount: formatTokens(content.transfer.amountE8s, tokenDetails.decimals),\n receiver: username(content.transfer.recipient),\n sender: username(senderId),\n token: tokenDetails.symbol,\n };\n const key = content.transfer.kind === \"completed\"\n ? \"confirmedSent\"\n : me\n ? \"pendingSentByYou\"\n : \"pendingSent\";\n return formatter(`tokenTransfer.${key}`, { values });\n}\nexport function stopTyping({ id }, userId, threadRootMessageIndex) {\n rtcConnectionsManager.sendMessage([...get(currentChatUserIds)], {\n kind: \"remote_user_stopped_typing\",\n id,\n userId,\n threadRootMessageIndex,\n });\n}\nexport function startTyping({ id }, userId, threadRootMessageIndex) {\n rtcConnectionsManager.sendMessage([...get(currentChatUserIds)], {\n kind: \"remote_user_typing\",\n id,\n userId,\n threadRootMessageIndex,\n });\n}\nexport function getTypingString(formatter, users, key, typing) {\n const typers = typing.get(key);\n if (typers === undefined || typers.size === 0)\n return undefined;\n if (typers.size > 1) {\n return formatter(\"membersAreTyping\", { values: { number: typers.size } });\n }\n else {\n const userIds = [...typers];\n const username = users.get(userIds[0])?.username ?? formatter(\"unknown\");\n return formatter(\"memberIsTyping\", { values: { username } });\n }\n}\nexport function getMessageText(content) {\n switch (content.kind) {\n case \"text_content\":\n return content.text;\n case \"audio_content\":\n case \"image_content\":\n case \"video_content\":\n case \"file_content\":\n case \"crypto_content\":\n return content.caption;\n case \"poll_content\":\n return content.config.text;\n case \"proposal_content\":\n return content.proposal.summary;\n default:\n return undefined;\n }\n}\nexport function diffGroupPermissions(original, updated) {\n if (JSON.stringify(original) === JSON.stringify(updated)) {\n return undefined;\n }\n const diff = defaultOptionalChatPermissions();\n if (original.changeRoles !== updated.changeRoles) {\n diff.changeRoles = updated.changeRoles;\n }\n if (original.updateGroup !== updated.updateGroup) {\n diff.updateGroup = updated.updateGroup;\n }\n if (original.inviteUsers !== updated.inviteUsers) {\n diff.inviteUsers = updated.inviteUsers;\n }\n if (original.addMembers !== updated.addMembers) {\n diff.addMembers = updated.addMembers;\n }\n if (original.removeMembers !== updated.removeMembers) {\n diff.removeMembers = updated.removeMembers;\n }\n if (original.deleteMessages !== updated.deleteMessages) {\n diff.deleteMessages = updated.deleteMessages;\n }\n if (original.startVideoCall !== updated.startVideoCall) {\n diff.startVideoCall = updated.startVideoCall;\n }\n if (original.pinMessages !== updated.pinMessages) {\n diff.pinMessages = updated.pinMessages;\n }\n if (original.reactToMessages !== updated.reactToMessages) {\n diff.reactToMessages = updated.reactToMessages;\n }\n if (original.mentionAllMembers !== updated.mentionAllMembers) {\n diff.mentionAllMembers = updated.mentionAllMembers;\n }\n diff.messagePermissions = diffMessagePermissions(original.messagePermissions, updated.messagePermissions);\n if (original.threadPermissions === undefined && updated.threadPermissions === undefined) {\n diff.threadPermissions = undefined;\n }\n else if (updated.threadPermissions === undefined) {\n diff.threadPermissions = \"set_to_none\";\n }\n else {\n const threadPermissionsDiff = diffMessagePermissions(original.threadPermissions ?? { default: \"member\" }, updated.threadPermissions);\n diff.threadPermissions =\n threadPermissionsDiff === undefined ? undefined : { value: threadPermissionsDiff };\n }\n return diff;\n}\nfunction diffMessagePermissions(original, updated) {\n if (JSON.stringify(original) === JSON.stringify(updated)) {\n return undefined;\n }\n const diff = defaultOptionalMessagePermissions();\n diff.default = original.default !== updated.default ? updated.default : undefined;\n diff.text = updateFromOptions(original.text, updated.text);\n diff.image = updateFromOptions(original.image, updated.image);\n diff.video = updateFromOptions(original.video, updated.video);\n diff.audio = updateFromOptions(original.audio, updated.audio);\n diff.file = updateFromOptions(original.file, updated.file);\n diff.poll = updateFromOptions(original.poll, updated.poll);\n diff.crypto = updateFromOptions(original.crypto, updated.crypto);\n diff.giphy = updateFromOptions(original.giphy, updated.giphy);\n diff.prize = updateFromOptions(original.prize, updated.prize);\n diff.memeFighter = updateFromOptions(original.memeFighter, updated.memeFighter);\n diff.p2pSwap = updateFromOptions(original.p2pSwap, updated.p2pSwap);\n return diff;\n}\nexport function isProposalsChat(chat) {\n return chat.kind !== \"direct_chat\" && chat.subtype?.kind === \"governance_proposals\";\n}\n","import { writable } from \"svelte/store\";\nconst storageKeyPrefix = \"sns_functions_\";\nexport class SnsFunctions {\n constructor() {\n this._functionsMap = new Map();\n this._loaded = new Set();\n }\n get(snsCanisterId) {\n if (!this._loaded.has(snsCanisterId)) {\n this.fromStorage(snsCanisterId);\n }\n return this._functionsMap.get(snsCanisterId);\n }\n set(snsCanisterId, list) {\n const functions = new Map(list.map((f) => [f.id, f]));\n this._functionsMap.set(snsCanisterId, functions);\n this.toStorage(snsCanisterId);\n }\n clone() {\n const clone = new SnsFunctions();\n clone._functionsMap = new Map(this._functionsMap);\n clone._loaded = new Set(this._loaded);\n return clone;\n }\n fromStorage(snsCanisterId) {\n const json = localStorage.getItem(storageKeyPrefix + snsCanisterId);\n if (json !== null) {\n this._functionsMap.set(snsCanisterId, new Map(JSON.parse(json)));\n }\n this._loaded.add(snsCanisterId);\n }\n toStorage(snsCanisterId) {\n const functions = this._functionsMap.get(snsCanisterId);\n if (functions === undefined) {\n return;\n }\n localStorage.setItem(storageKeyPrefix + snsCanisterId, JSON.stringify([...functions]));\n }\n}\nconst store = writable(new SnsFunctions());\nexport const snsFunctions = {\n subscribe: store.subscribe,\n set: (snsCanisterId, list) => store.update((fs) => {\n const clone = fs.clone();\n clone.set(snsCanisterId, list);\n return clone;\n }),\n};\n","import { writable } from \"svelte/store\";\nimport { isProposalsChat } from \"../utils/chat\";\nconst storageKeyPrefix = \"proposal_filters_\";\nexport class FilteredProposals {\n constructor(canisterId) {\n this._canisterId = canisterId;\n this._messageState = new Map();\n this._filters = new Set();\n }\n static fromStorage(canisterId) {\n const filteredProposals = new FilteredProposals(canisterId);\n const json = localStorage.getItem(storageKeyPrefix + canisterId);\n filteredProposals._filters = new Set(json !== null ? JSON.parse(json) : []);\n return filteredProposals;\n }\n get filters() {\n return this._filters;\n }\n hasFilter(topic) {\n return this._filters.has(topic);\n }\n isCollapsed(messageId, proposal) {\n const topic = proposal.kind === \"nns\" ? proposal.topic : proposal.action;\n const isFiltered = this._filters.has(topic);\n const messageState = this._messageState.get(messageId);\n return messageState ?? isFiltered;\n }\n toggleFilter(topic) {\n if (this._filters.has(topic)) {\n this._filters.delete(topic);\n }\n else {\n this._filters.add(topic);\n }\n // Clear all toggled messages when any filter changes.\n // TODO: Can improve by only clearing those messages that match the changed topic\n this._messageState = new Map();\n this.toStorage();\n }\n enableAll() {\n this._filters = new Set();\n this.toStorage();\n }\n disableAll(ids) {\n this._filters = new Set(ids);\n this.toStorage();\n }\n toggleMessageExpansion(messageId, expand) {\n const currState = this._messageState.get(messageId);\n if (currState === undefined) {\n this._messageState.set(messageId, !expand);\n }\n else if (currState == expand) {\n this._messageState.delete(messageId);\n }\n }\n clone() {\n const clone = new FilteredProposals(this._canisterId);\n clone._messageState = new Map(this._messageState);\n clone._filters = new Set(this._filters);\n return clone;\n }\n toStorage() {\n localStorage.setItem(storageKeyPrefix + this._canisterId, JSON.stringify(Array.from(this._filters)));\n }\n}\nexport const filteredProposalsStore = writable(undefined);\nfunction modifyFilteredProposals(fn) {\n filteredProposalsStore.update((fp) => {\n if (fp !== undefined) {\n const clone = fp.clone();\n fn(clone);\n return clone;\n }\n });\n}\nexport function enableAllProposalFilters() {\n modifyFilteredProposals((fp) => fp.enableAll());\n}\nexport function disableAllProposalFilters(ids) {\n modifyFilteredProposals((fp) => fp.disableAll(ids));\n}\nexport function toggleProposalFilter(topic) {\n modifyFilteredProposals((fp) => fp.toggleFilter(topic));\n}\nexport function toggleProposalFilterMessageExpansion(messageId, expand) {\n modifyFilteredProposals((fp) => fp.toggleMessageExpansion(messageId, expand));\n}\nexport function resetFilteredProposalsStore(chat) {\n const filteredProposals = isProposalsChat(chat)\n ? FilteredProposals.fromStorage(chat.subtype.governanceCanisterId)\n : undefined;\n filteredProposalsStore.update((_) => filteredProposals);\n}\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport { derived, get, writable } from \"svelte/store\";\nimport { ChatMap } from \"openchat-shared\";\nfunction setDataForChat(store, chatId, data) {\n store.update((s) => {\n s.set(chatId, data);\n return s;\n });\n}\nfunction updateDataForChat(store, chatId, fn, empty) {\n store.update((s) => {\n s.set(chatId, fn(s.get(chatId) ?? empty));\n return s;\n });\n}\nexport function createChatSpecificObjectStore(selectedChatId, init) {\n const all = writable(new ChatMap());\n const byChat = derived([selectedChatId, all], ([$selectedChatId, $all]) => {\n if ($selectedChatId === undefined)\n return init();\n return $all.get($selectedChatId) ?? init();\n });\n return {\n all,\n subscribe: byChat.subscribe,\n get: (chatId) => get(all).get(chatId) ?? init(),\n update: (chatId, fn) => updateDataForChat(all, chatId, fn, init()),\n set: (chatId, data) => setDataForChat(all, chatId, data),\n clear: (chatId) => setDataForChat(all, chatId, init()),\n getProp: (chatId, prop) => (get(all).get(chatId) ?? init())[prop],\n updateProp: (chatId, prop, updateFn) => {\n updateDataForChat(all, chatId, (data) => {\n if (data !== undefined) {\n data[prop] = updateFn(data[prop]);\n return data;\n }\n return data;\n }, init());\n },\n setProp: (chatId, prop, value) => {\n updateDataForChat(all, chatId, (data) => {\n if (data !== undefined) {\n data[prop] = value;\n return data;\n }\n return data;\n }, init());\n },\n };\n}\n","import { MessageMap, } from \"openchat-shared\";\nimport { LocalUpdatesStore } from \"./localUpdatesStore\";\nimport { isEmpty } from \"../utils/object\";\nexport class LocalMessageUpdatesStore extends LocalUpdatesStore {\n markCancelled(messageId, content) {\n this.applyUpdate(messageId, (_) => ({\n cancelledReminder: content,\n }));\n }\n revertCancelled(messageId) {\n this.applyUpdate(messageId, (_) => ({\n cancelledReminder: undefined,\n }));\n }\n markDeleted(messageId, deletedBy) {\n this.applyUpdate(messageId, (_) => ({\n deleted: { deletedBy, timestamp: BigInt(Date.now()) },\n }));\n }\n markUndeleted(messageId, content) {\n this.applyUpdate(messageId, (_) => ({\n deleted: undefined,\n undeletedContent: content,\n revealedContent: undefined,\n }));\n }\n markContentRevealed(messageId, content) {\n this.applyUpdate(messageId, (_) => ({\n deleted: undefined,\n revealedContent: content,\n }));\n }\n markBlockedMessageRevealed(messageId) {\n this.applyUpdate(messageId, (_) => ({\n hiddenMessageRevealed: true,\n }));\n }\n setBlockLevelMarkdown(messageId, blockLevelMarkdown) {\n this.applyUpdate(messageId, (_) => ({\n blockLevelMarkdown,\n }));\n }\n markContentEdited(messageId, content) {\n this.applyUpdate(messageId, (_) => ({ editedContent: content, linkRemoved: false }));\n }\n revertEditedContent(messageId) {\n this.applyUpdate(messageId, (_) => ({ editedContent: undefined, linkRemoved: false }));\n }\n markLinkRemoved(messageId, content) {\n this.applyUpdate(messageId, (_) => ({ editedContent: content, linkRemoved: true }));\n }\n revertLinkRemoved(messageId) {\n this.applyUpdate(messageId, (_) => ({ editedContent: undefined, linkRemoved: false }));\n }\n markReaction(messageId, reaction) {\n this.applyUpdate(messageId, (updates) => ({\n reactions: [...(updates?.reactions ?? []), reaction],\n }));\n }\n markTip(messageId, ledger, userId, amount) {\n this.applyUpdate(messageId, (updates) => {\n const result = { ...updates };\n if (result.tips === undefined) {\n result.tips = {};\n }\n if (result.tips[ledger] === undefined) {\n result.tips[ledger] = {};\n }\n if (result.tips[ledger][userId] === undefined) {\n result.tips[ledger][userId] = amount;\n }\n else {\n result.tips[ledger][userId] = result.tips[ledger][userId] + amount;\n }\n if (result.tips[ledger][userId] <= 0n) {\n delete result.tips[ledger][userId];\n if (isEmpty(result.tips[ledger])) {\n delete result.tips[ledger];\n }\n }\n return result;\n });\n }\n markPrizeClaimed(messageId, userId) {\n this.applyUpdate(messageId, (_) => ({ prizeClaimed: userId }));\n }\n setP2PSwapStatus(messageId, status) {\n this.applyUpdate(messageId, (_) => ({ p2pSwapStatus: status }));\n }\n markPollVote(messageId, vote) {\n this.applyUpdate(messageId, (updates) => ({\n pollVotes: [...(updates?.pollVotes ?? []), vote],\n }));\n }\n markThreadSummaryUpdated(threadRootMessageId, summaryUpdates) {\n this.applyUpdate(threadRootMessageId, (updates) => {\n return {\n threadSummary: updates?.threadSummary === undefined\n ? summaryUpdates\n : { ...updates.threadSummary, ...summaryUpdates },\n };\n });\n }\n}\nexport const localMessageUpdates = new LocalMessageUpdatesStore(new MessageMap());\n","import { ChatMap, } from \"openchat-shared\";\nimport { LocalUpdatesStore } from \"./localUpdatesStore\";\nclass LocalChatSummaryUpdatesStore extends LocalUpdatesStore {\n constructor() {\n super(new ChatMap());\n }\n installBot(id, botId, perm) {\n this.applyUpdate(id, (current) => {\n const result = { ...current };\n if (result.installedBots === undefined) {\n result.installedBots = new Map();\n }\n result.removedBots?.delete(botId);\n result.installedBots.set(botId, perm);\n return result;\n });\n }\n removeBot(id, botId) {\n this.applyUpdate(id, (current) => {\n const result = { ...current };\n if (result.removedBots === undefined) {\n result.removedBots = new Set();\n }\n result.removedBots.add(botId);\n result.installedBots?.delete?.(botId);\n return result;\n });\n }\n favourite(id) {\n this.applyUpdate(id, (_) => ({\n favourited: true,\n unfavourited: undefined,\n }));\n }\n unfavourite(id) {\n this.applyUpdate(id, (_) => ({\n favourited: undefined,\n unfavourited: true,\n }));\n }\n pin(id, scope) {\n this.applyUpdate(id, (updates) => {\n const pinned = updates.pinned ?? new Set();\n const unpinned = updates.unpinned ?? new Set();\n pinned.add(scope);\n unpinned.delete(scope);\n return {\n pinned,\n unpinned: unpinned.size > 0 ? unpinned : undefined,\n };\n });\n }\n unpin(id, scope) {\n this.applyUpdate(id, (updates) => {\n const pinned = updates.pinned ?? new Set();\n const unpinned = updates.unpinned ?? new Set();\n pinned.delete(scope);\n unpinned.add(scope);\n return {\n unpinned,\n pinned: pinned.size > 0 ? pinned : undefined,\n };\n });\n }\n markAdded(summary) {\n this.applyUpdate(summary.id, (_) => ({\n added: { ...summary, membership: { ...summary.membership, lapsed: false } },\n removedAtTimestamp: undefined,\n }));\n }\n markUpdated(chatId, summaryUpdates) {\n this.applyUpdate(chatId, (_) => ({ updated: summaryUpdates }));\n }\n markRemoved(chatId) {\n this.applyUpdate(chatId, (_) => ({\n added: undefined,\n removedAtTimestamp: BigInt(Date.now()),\n }));\n }\n delete(chatId) {\n this.deleteKey(chatId);\n }\n}\nexport const localChatSummaryUpdates = new LocalChatSummaryUpdatesStore();\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport { writable } from \"svelte/store\";\nimport { MessageContextMap } from \"openchat-shared\";\nfunction setDataForMessageContext(store, context, data) {\n store.update((s) => {\n s.set(context, data);\n return s;\n });\n}\nfunction updateDataForMessageContext(store, context, fn, empty) {\n store.update((s) => {\n s.set(context, fn(s.get(context) ?? empty));\n return s;\n });\n}\nexport function createMessageContextSpecificObjectStore(init) {\n const store = writable(new MessageContextMap());\n let storeValue = new MessageContextMap();\n store.subscribe((v) => (storeValue = v));\n return {\n subscribe: store.subscribe,\n get: (context) => storeValue.get(context) ?? init(),\n update: (context, fn) => updateDataForMessageContext(store, context, fn, init()),\n set: (context, data) => setDataForMessageContext(store, context, data),\n has: (context) => storeValue.has(context),\n delete: (context) => {\n if (storeValue.has(context)) {\n store.update((state) => {\n state.delete(context);\n return state;\n });\n return true;\n }\n return false;\n },\n clear: (newValue) => store.set(newValue ?? new MessageContextMap()),\n size: () => storeValue.size,\n };\n}\n","import { MessageContextMap, } from \"openchat-shared\";\nimport { createMessageContextSpecificObjectStore } from \"./dataByMessageContextFactory\";\nfunction createFailedMessagesStore() {\n const store = createMessageContextSpecificObjectStore(() => ({}));\n return {\n subscribe: store.subscribe,\n getMessages: (key) => {\n const chatState = store.get(key);\n return chatState ? Object.values(chatState) : [];\n },\n add: (key, message) => {\n store.update(key, (chatState) => ({\n ...chatState,\n [message.event.messageId.toString()]: message,\n }));\n },\n contains: (key, messageId) => {\n const chatState = store.get(key);\n return chatState ? chatState[messageId.toString()] !== undefined : false;\n },\n delete: (key, messageId) => {\n const chatState = store.get(key);\n const messageIdString = messageId.toString();\n if (chatState && chatState[messageIdString]) {\n delete chatState[messageIdString];\n store.set(key, chatState);\n return true;\n }\n return false;\n },\n initialise: (data) => {\n store.clear(data);\n },\n has: store.has\n };\n}\nexport const failedMessagesStore = createFailedMessagesStore();\n","import { writable } from \"svelte/store\";\nimport { MessageMap } from \"openchat-shared\";\nconst store = writable(new MessageMap());\nexport const translationStore = {\n subscribe: store.subscribe,\n translate: (messageId, translation) => store.update((lookup) => {\n lookup.set(messageId, translation);\n return new MessageMap(lookup.entries());\n }),\n untranslate: (messageId) => store.update((lookup) => {\n lookup.delete(messageId);\n return new MessageMap(lookup.entries());\n }),\n};\n","import { writable } from \"svelte/store\";\nexport const messageFiltersStore = writable([]);\n","import { get } from \"svelte/store\";\nimport { getContentAsText, isAttachmentContent, } from \"openchat-shared\";\nimport { createMessageContextSpecificObjectStore } from \"./dataByMessageContextFactory\";\nimport { userStore } from \"./user\";\nfunction createDraftMessages() {\n const store = createMessageContextSpecificObjectStore(() => ({}));\n return {\n ...store,\n setTextContent: (context, textContent) => store.update(context, (current) => ({ ...current, textContent })),\n setAttachment: (context, attachment) => store.update(context, (current) => ({ ...current, attachment })),\n setEditing: (context, editingEvent) => {\n const users = get(userStore);\n store.update(context, (_) => ({\n textContent: getContentAsText(editingEvent.event.content),\n editingEvent,\n attachment: isAttachmentContent(editingEvent.event.content)\n ? editingEvent.event.content\n : undefined,\n replyingTo: editingEvent.event.repliesTo &&\n editingEvent.event.repliesTo.kind === \"rehydrated_reply_context\"\n ? {\n ...editingEvent.event.repliesTo,\n content: editingEvent.event.content,\n sender: users.get(editingEvent.event.sender),\n }\n : undefined,\n }));\n },\n setReplyingTo: (context, replyingTo) => store.update(context, (current) => ({ ...current, replyingTo })),\n };\n}\nexport const draftMessagesStore = createDraftMessages();\n","import { writable } from \"svelte/store\";\nimport { createSetStore } from \"./setStore\";\nexport const blockedUsers = createSetStore(writable(new Set()));\n","import { compareChats, emptyChatMetrics, emptyRules, ChatMap, nullMembership, chatIdentifiersEqual, messageContextsEqual, } from \"openchat-shared\";\nimport { unconfirmed } from \"./unconfirmed\";\nimport { derived, get, writable } from \"svelte/store\";\nimport { immutableStore } from \"./immutable\";\nimport { getNextEventAndMessageIndexes, isPreviewing, mergeEventsAndLocalUpdates, mergeUnconfirmedIntoSummary, mergeChatMetrics, mergeLocalSummaryUpdates, } from \"../utils/chat\";\nimport { currentUser, currentUserIdStore, suspendedUsers } from \"./user\";\nimport DRange from \"drange\";\nimport { snsFunctions } from \"./snsFunctions\";\nimport { filteredProposalsStore, resetFilteredProposalsStore } from \"./filteredProposals\";\nimport { createChatSpecificObjectStore } from \"./dataByChatFactory\";\nimport { localMessageUpdates } from \"./localMessageUpdates\";\nimport { localChatSummaryUpdates } from \"./localChatSummaryUpdates\";\nimport { setsAreEqual } from \"../utils/set\";\nimport { failedMessagesStore } from \"./failedMessages\";\nimport { proposalTallies } from \"./proposalTallies\";\nimport { allServerChats, chatListScopeStore, getAllServerChats, globalStateStore } from \"./global\";\nimport { createDerivedPropStore } from \"./derived\";\nimport { messagesRead } from \"./markRead\";\nimport { safeWritable } from \"./safeWritable\";\nimport { communityPreviewsStore, currentCommunityBlockedUsers } from \"./community\";\nimport { translationStore } from \"./translation\";\nimport { messageFiltersStore } from \"./messageFilters\";\nimport { draftMessagesStore } from \"./draftMessages\";\nimport { blockedUsers } from \"./blockedUsers\";\nimport { createLsBoolStore } from \"./localStorageSetting\";\nimport { configKeys } from \"../utils/config\";\nimport { recentlySentMessagesStore } from \"./recentlySentMessages\";\nimport { ephemeralMessages } from \"./ephemeralMessages\";\nlet currentScope = { kind: \"direct_chat\" };\nchatListScopeStore.subscribe((s) => (currentScope = s));\nexport const selectedMessageContext = safeWritable(undefined, messageContextsEqual);\nexport const selectedThreadRootMessageIndex = derived(selectedMessageContext, ($messageContext) => {\n return $messageContext?.threadRootMessageIndex;\n});\nexport const selectedChatId = derived(selectedMessageContext, ($messageContext) => {\n return $messageContext?.chatId;\n});\nexport const chatStateStore = createChatSpecificObjectStore(selectedChatId, () => ({\n lapsedMembers: new Set(),\n members: [],\n membersMap: new Map(),\n blockedUsers: new Set(),\n invitedUsers: new Set(),\n pinnedMessages: new Set(),\n rules: emptyRules(),\n userIds: new Set(),\n userGroupKeys: new Set(),\n confirmedEventIndexesLoaded: new DRange(),\n serverEvents: [],\n expandedDeletedMessages: new Set(),\n expiredEventRanges: new DRange(),\n bots: new Map(),\n apiKeys: new Map(),\n}));\nconst serverEventsStore = createDerivedPropStore(chatStateStore, \"serverEvents\", () => []);\nconst currentServerChatBots = createDerivedPropStore(chatStateStore, \"bots\", () => new Map());\nexport const currentChatBots = derived([selectedChatId, currentServerChatBots, localChatSummaryUpdates], ([$chatId, $serverBots, $local]) => {\n if ($chatId === undefined)\n return $serverBots;\n const clone = new Map($serverBots);\n const localInstalled = [...($local.get($chatId)?.installedBots?.entries() ?? [])];\n const localDeleted = [...($local.get($chatId)?.removedBots?.values() ?? [])];\n localInstalled.forEach(([id, perm]) => {\n clone.set(id, perm);\n });\n localDeleted.forEach((id) => clone.delete(id));\n return clone;\n});\nexport const currentChatApiKeys = createDerivedPropStore(chatStateStore, \"apiKeys\", () => new Map());\nexport const currentChatUserIds = createDerivedPropStore(chatStateStore, \"userIds\", () => new Set());\nexport const focusMessageIndex = createDerivedPropStore(chatStateStore, \"focusMessageIndex\", () => undefined);\nexport const focusThreadMessageIndex = createDerivedPropStore(chatStateStore, \"focusThreadMessageIndex\", () => undefined);\nexport const expandedDeletedMessages = createDerivedPropStore(chatStateStore, \"expandedDeletedMessages\", () => new Set());\nexport const userGroupKeys = createDerivedPropStore(chatStateStore, \"userGroupKeys\", () => new Set());\nexport const currentChatRules = createDerivedPropStore(chatStateStore, \"rules\", () => undefined);\nexport const currentChatMembers = createDerivedPropStore(chatStateStore, \"members\", () => []);\nexport const currentChatMembersMap = createDerivedPropStore(chatStateStore, \"membersMap\", () => new Map());\nexport const currentChatLapsedMembers = createDerivedPropStore(chatStateStore, \"lapsedMembers\", () => new Set(), setsAreEqual);\nexport const currentChatBlockedUsers = createDerivedPropStore(chatStateStore, \"blockedUsers\", () => new Set(), setsAreEqual);\nexport const currentChatInvitedUsers = createDerivedPropStore(chatStateStore, \"invitedUsers\", () => new Set(), setsAreEqual);\nexport const currentChatPinnedMessages = createDerivedPropStore(chatStateStore, \"pinnedMessages\", () => new Set(), setsAreEqual);\nexport const expiredEventRangesStore = createDerivedPropStore(chatStateStore, \"expiredEventRanges\", () => new DRange());\nexport const hideMessagesFromDirectBlocked = createLsBoolStore(configKeys.hideBlocked, false);\nconst currentChatBlockedOrSuspendedUsers = derived([\n currentChatBlockedUsers,\n currentCommunityBlockedUsers,\n suspendedUsers,\n blockedUsers,\n hideMessagesFromDirectBlocked,\n], ([chatBlocked, communityBlocked, suspended, directBlocked, hideBlocked]) => {\n const direct = hideBlocked ? directBlocked : [];\n return new Set([...chatBlocked, ...communityBlocked, ...suspended, ...direct]);\n});\nexport const favouritesStore = derived([globalStateStore, localChatSummaryUpdates], ([$global, $localUpdates]) => {\n const mergedFavs = $global.favourites.clone();\n $localUpdates.entries().forEach(([key, val]) => {\n if (val.favourited && !val.unfavourited) {\n mergedFavs.add(key);\n }\n if (!val.favourited && val.unfavourited) {\n mergedFavs.delete(key);\n }\n });\n return mergedFavs;\n});\nexport const pinnedChatsStore = derived([globalStateStore, localChatSummaryUpdates], ([$global, $localUpdates]) => {\n const mergedPinned = new Map($global.pinnedChats);\n $localUpdates.forEach((val, key) => {\n if (val.pinned !== undefined) {\n val.pinned.forEach((scope) => {\n const ids = mergedPinned.get(scope) ?? [];\n if (!ids.find((id) => chatIdentifiersEqual(id, key))) {\n ids.unshift(key);\n }\n mergedPinned.set(scope, ids);\n });\n }\n if (val.unpinned !== undefined) {\n val.unpinned.forEach((scope) => {\n const ids = mergedPinned.get(scope) ?? [];\n mergedPinned.set(scope, ids.filter((id) => !chatIdentifiersEqual(id, key)));\n });\n }\n });\n return mergedPinned;\n});\nexport const myServerChatSummariesStore = derived([globalStateStore, chatListScopeStore, favouritesStore], ([$allState, $scope, $favourites]) => {\n const allChats = getAllServerChats($allState);\n if ($scope.kind === \"community\") {\n const community = $allState.communities.get($scope.id);\n return community ? ChatMap.fromList(community.channels) : new ChatMap();\n }\n else if ($scope.kind === \"group_chat\") {\n return $allState.groupChats;\n }\n else if ($scope.kind === \"direct_chat\") {\n return $allState.directChats;\n }\n else if ($scope.kind === \"favourite\") {\n return $favourites.values().reduce((favs, chatId) => {\n const chat = allChats.get(chatId);\n if (chat !== undefined) {\n favs.set(chat.id, chat);\n }\n return favs;\n }, new ChatMap());\n }\n else {\n return new ChatMap();\n }\n});\nexport const uninitializedDirectChats = immutableStore(new ChatMap());\n// Groups which the current user is previewing\nexport const groupPreviewsStore = immutableStore(new ChatMap());\nexport const serverChatSummariesStore = derived([\n myServerChatSummariesStore,\n uninitializedDirectChats,\n groupPreviewsStore,\n communityPreviewsStore,\n], ([summaries, directChats, previews, communityPreviews]) => {\n let all = [...summaries.entries()];\n if (currentScope.kind === \"none\" || currentScope.kind === \"direct_chat\") {\n all = all.concat([...directChats.entries()]);\n }\n if (currentScope.kind === \"none\") {\n all = previews.entries().concat(all);\n }\n if (currentScope.kind === \"group_chat\") {\n all = previews.filter((c) => c.kind === \"group_chat\").entries().concat(all);\n }\n if (currentScope.kind === \"community\") {\n const communityId = currentScope.id.communityId;\n const previewChannels = ChatMap.fromList(communityPreviews.get(currentScope.id)?.channels ?? []);\n all = previewChannels.entries()\n .concat(previews\n .filter((c) => c.kind === \"channel\" && c.id.communityId === communityId)\n .entries())\n .concat(all);\n }\n return all.reduce((result, [chatId, summary]) => {\n result.set(chatId, summary);\n return result;\n }, new ChatMap());\n});\nexport const allChats = derived([allServerChats, uninitializedDirectChats, groupPreviewsStore, localChatSummaryUpdates], ([$all, $direct, $group, $localSummaryUpdates]) => {\n const merged = $direct.entries()\n .concat($group.entries())\n .concat($all.entries());\n const reduced = merged.reduce((result, [chatId, summary]) => {\n result.set(chatId, summary);\n return result;\n }, new ChatMap());\n return mergeLocalSummaryUpdates(currentScope, reduced, $localSummaryUpdates);\n});\nexport const chatSummariesStore = derived([\n serverChatSummariesStore,\n localChatSummaryUpdates,\n unconfirmed,\n currentUser,\n localMessageUpdates,\n translationStore,\n currentChatBlockedOrSuspendedUsers,\n currentUserIdStore,\n messageFiltersStore,\n], ([summaries, localSummaryUpdates, unconfirmed, currentUser, localUpdates, translations, blockedOrSuspendedUsers, $currentUserId, $messageFilters,]) => {\n const mergedSummaries = mergeLocalSummaryUpdates(currentScope, summaries, localSummaryUpdates);\n return mergedSummaries\n .entries()\n .reduce((result, [chatId, summary]) => {\n result.set(chatId, mergeUnconfirmedIntoSummary((k) => k, currentUser.userId, summary, unconfirmed, localUpdates, translations, blockedOrSuspendedUsers, $currentUserId, $messageFilters));\n return result;\n }, new ChatMap());\n});\n// This is annoying. If only the pinnedChatIndex was stored in the chatSummary...\nexport const chatSummariesListStore = derived([chatSummariesStore], ([summaries]) => {\n const pinnedChats = get(pinnedChatsStore);\n const pinnedByScope = pinnedChats.get(currentScope.kind) ?? [];\n const pinned = pinnedByScope.reduce((result, id) => {\n const summary = summaries.get(id);\n if (summary !== undefined) {\n result.push(summary);\n }\n return result;\n }, []);\n const unpinned = summaries\n .values()\n .filter((chat) => pinnedByScope.findIndex((p) => chatIdentifiersEqual(p, chat.id)) === -1)\n .sort(compareChats);\n return pinned.concat(unpinned);\n});\nexport const userMetrics = derived([allServerChats], ([$chats]) => {\n return $chats\n .values()\n .map((c) => c.membership?.myMetrics ?? emptyChatMetrics())\n .reduce(mergeChatMetrics, emptyChatMetrics());\n});\nexport const chatsLoading = writable(true);\nexport const chatsInitialised = writable(false);\nexport const selectedServerChatStore = derived([serverChatSummariesStore, selectedChatId], ([$serverChats, $selectedChatId]) => {\n if ($selectedChatId === undefined)\n return undefined;\n return $serverChats.get($selectedChatId);\n});\nexport const selectedChatStore = derived([chatSummariesStore, selectedChatId], ([$chatSummaries, $selectedChatId]) => {\n if ($selectedChatId === undefined)\n return undefined;\n return $chatSummaries.get($selectedChatId);\n});\nexport function nextEventAndMessageIndexesForThread(events) {\n return events.reduce(([maxEvtIdx, maxMsgIdx], evt) => {\n const msgIdx = evt.event.kind === \"message\"\n ? Math.max(evt.event.messageIndex + 1, maxMsgIdx)\n : maxMsgIdx;\n const evtIdx = Math.max(evt.index + 1, maxEvtIdx);\n return [evtIdx, msgIdx];\n }, [0, 0]);\n}\nfunction sortByIndex(a, b) {\n return a.index - b.index;\n}\nexport function nextEventAndMessageIndexes() {\n const chat = get(selectedServerChatStore);\n if (chat === undefined) {\n return [0, 0];\n }\n return getNextEventAndMessageIndexes(chat, unconfirmed.getMessages({ chatId: chat.id }).sort(sortByIndex));\n}\nexport const isProposalGroup = derived([selectedChatStore], ([$selectedChat]) => {\n return ($selectedChat !== undefined &&\n $selectedChat.kind !== \"direct_chat\" &&\n $selectedChat.subtype?.kind === \"governance_proposals\");\n});\nexport const threadsByChatStore = derived([chatSummariesListStore], ([summaries]) => {\n return summaries.reduce((result, chat) => {\n if ((chat.kind === \"group_chat\" || chat.kind === \"channel\") &&\n chat.membership &&\n chat.membership.latestThreads.length > 0) {\n result.set(chat.id, chat.membership.latestThreads);\n }\n return result;\n }, new ChatMap());\n});\nexport const threadsFollowedByMeStore = derived([threadsByChatStore], ([threadsByChat]) => {\n return threadsByChat.entries().reduce((result, [chatId, threads]) => {\n const set = new Set();\n for (const thread of threads) {\n set.add(thread.threadRootMessageIndex);\n }\n result.set(chatId, set);\n return result;\n }, new ChatMap());\n});\nexport const proposalTopicsStore = derived([selectedChatStore, snsFunctions], ([$selectedChat, $snsFunctions]) => {\n if ($selectedChat !== undefined &&\n $selectedChat.kind !== \"direct_chat\" &&\n $selectedChat.subtype !== undefined) {\n if ($selectedChat.subtype.isNns) {\n return new Map([\n [1, \"Neuron Management\"],\n [3, \"Network Economics\"],\n [4, \"Governance\"],\n [5, \"Node Admin\"],\n [6, \"Participant Management\"],\n [7, \"Subnet Management\"],\n [8, \"Network Canister Management\"],\n [9, \"KYC\"],\n [10, \"Node Provider Rewards\"],\n [12, \"Subnet Replica Version Management\"],\n [13, \"Replica Version Management\"],\n [14, \"SNS & Neurons' Fund\"],\n ]);\n }\n else {\n const snsFunctionsMap = $snsFunctions.get($selectedChat.subtype.governanceCanisterId);\n if (snsFunctionsMap !== undefined) {\n return new Map([...snsFunctionsMap].slice(1).map((e) => [e[0], e[1].name]));\n }\n }\n }\n return new Map();\n});\nfunction countThreads(things) {\n return things\n .values()\n .map((ts) => ts.length)\n .reduce((total, n) => total + n, 0);\n}\n// returns the total number of threads that we are involved in\nexport const numberOfThreadsStore = derived([threadsByChatStore], ([threads]) => countThreads(threads));\nexport const threadServerEventsStore = immutableStore([]);\nexport const threadEvents = derived([\n threadServerEventsStore,\n unconfirmed,\n localMessageUpdates,\n selectedMessageContext,\n failedMessagesStore,\n proposalTallies,\n translationStore,\n currentChatBlockedOrSuspendedUsers,\n currentUserIdStore,\n messageFiltersStore,\n recentlySentMessagesStore,\n ephemeralMessages,\n], ([$serverEvents, $unconfirmed, $localUpdates, $messageContext, $failedMessages, $proposalTallies, $translationStore, $blockedOrSuspendedUsers, $currentUserId, $messageFilters, $recentlySentMessagesStore, $ephemeralMessages,]) => {\n if ($messageContext === undefined || $messageContext.threadRootMessageIndex === undefined)\n return [];\n const failed = $failedMessages.has($messageContext)\n ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n Object.values($failedMessages.get($messageContext))\n : [];\n const unconfirmed = $unconfirmed.get($messageContext)?.messages ?? [];\n const ephemeral = [...($ephemeralMessages.get($messageContext)?.values() ?? [])];\n return mergeEventsAndLocalUpdates($serverEvents, [...unconfirmed, ...failed, ...ephemeral], $localUpdates, new DRange(), $proposalTallies, $translationStore, $blockedOrSuspendedUsers, $currentUserId, $messageFilters, $recentlySentMessagesStore);\n});\nexport const confirmedThreadEventIndexesLoadedStore = derived([threadServerEventsStore], ([serverEvents]) => {\n const ranges = new DRange();\n serverEvents.forEach((e) => ranges.add(e.index));\n return ranges;\n});\nconst confirmedEventIndexesLoadedStore = derived([serverEventsStore, expiredEventRangesStore], ([serverEvents, expiredEventRanges]) => {\n const ranges = new DRange();\n serverEvents.forEach((e) => ranges.add(e.index));\n ranges.add(expiredEventRanges);\n return ranges;\n});\nexport function confirmedEventIndexesLoaded(chatId) {\n const selected = get(selectedChatId);\n return selected !== undefined && chatIdentifiersEqual(selected, chatId)\n ? get(confirmedEventIndexesLoadedStore)\n : new DRange();\n}\nexport function setSelectedChat(api, clientChat, serverChat, messageIndex, threadMessageIndex) {\n // TODO don't think this should be in here really\n if ((clientChat.kind === \"group_chat\" || clientChat.kind === \"channel\") &&\n clientChat.subtype !== undefined &&\n clientChat.subtype.kind === \"governance_proposals\" &&\n !clientChat.subtype.isNns) {\n const { governanceCanisterId } = clientChat.subtype;\n api.listNervousSystemFunctions(governanceCanisterId).then((val) => {\n snsFunctions.set(governanceCanisterId, val.functions);\n return val;\n });\n }\n if (messageIndex === undefined) {\n messageIndex = isPreviewing(clientChat)\n ? undefined\n : messagesRead.getFirstUnreadMessageIndex(clientChat.id, clientChat.latestMessage?.event.messageIndex);\n if (messageIndex !== undefined) {\n const latestServerMessageIndex = serverChat?.latestMessage?.event.messageIndex ?? 0;\n if (messageIndex > latestServerMessageIndex) {\n messageIndex = undefined;\n }\n }\n }\n clearSelectedChat(clientChat.id);\n // initialise a bunch of stores\n chatStateStore.clear(clientChat.id);\n chatStateStore.setProp(clientChat.id, \"focusMessageIndex\", messageIndex);\n chatStateStore.setProp(clientChat.id, \"focusThreadMessageIndex\", threadMessageIndex);\n chatStateStore.setProp(clientChat.id, \"expandedDeletedMessages\", new Set());\n chatStateStore.setProp(clientChat.id, \"userIds\", new Set(clientChat.kind === \"direct_chat\" ? [clientChat.id.userId] : []));\n resetFilteredProposalsStore(clientChat);\n}\nexport function clearSelectedChat(newSelectedChatId) {\n filteredProposalsStore.set(undefined);\n selectedMessageContext.update((context) => {\n if (context !== undefined) {\n chatStateStore.clear(context.chatId);\n }\n return newSelectedChatId ? { chatId: newSelectedChatId } : undefined;\n });\n}\nexport function createDirectChat(chatId) {\n uninitializedDirectChats.update((chatSummaries) => {\n chatSummaries.set(chatId, {\n kind: \"direct_chat\",\n id: chatId,\n them: chatId,\n readByThemUpTo: undefined,\n latestMessage: undefined,\n latestEventIndex: 0,\n latestMessageIndex: undefined,\n lastUpdated: BigInt(Date.now()),\n dateCreated: BigInt(Date.now()),\n metrics: emptyChatMetrics(),\n eventsTTL: undefined,\n eventsTtlLastUpdated: BigInt(0),\n membership: {\n ...nullMembership(),\n role: \"owner\",\n },\n });\n return chatSummaries;\n });\n}\nexport function addGroupPreview(chat) {\n localChatSummaryUpdates.delete(chat.id);\n groupPreviewsStore.update((summaries) => {\n summaries.set(chat.id, chat);\n return summaries;\n });\n}\nexport function removeUninitializedDirectChat(chatId) {\n uninitializedDirectChats.update((summaries) => {\n summaries.delete(chatId);\n return summaries;\n });\n}\nexport function removeGroupPreview(chatId) {\n groupPreviewsStore.update((summaries) => {\n summaries.delete(chatId);\n return summaries;\n });\n}\nexport const eventsStore = derived([\n serverEventsStore,\n unconfirmed,\n localMessageUpdates,\n expiredEventRangesStore,\n failedMessagesStore,\n proposalTallies,\n translationStore,\n currentChatBlockedOrSuspendedUsers,\n currentUserIdStore,\n messageFiltersStore,\n recentlySentMessagesStore,\n ephemeralMessages,\n], ([$serverEventsForSelectedChat, $unconfirmed, $localMessageUpdates, $expiredEventRanges, $failedMessages, $proposalTallies, $translationStore, $blockedOrSuspendedUsers, $currentUserId, $messageFilters, $recentlySentMessagesStore, $ephemeralMessages,]) => {\n const chatId = get(selectedChatId) ?? { kind: \"group_chat\", groupId: \"\" };\n const failedForChat = $failedMessages.get({ chatId });\n // for the purpose of merging, unconfirmed and failed can be treated the same\n const failed = failedForChat ? Object.values(failedForChat) : [];\n const unconfirmed = $unconfirmed.get({ chatId })?.messages ?? [];\n const ephemeral = [...($ephemeralMessages.get({ chatId })?.values() ?? [])];\n return mergeEventsAndLocalUpdates($serverEventsForSelectedChat, [...unconfirmed, ...failed, ...ephemeral], $localMessageUpdates, $expiredEventRanges, $proposalTallies, $translationStore, $blockedOrSuspendedUsers, $currentUserId, $messageFilters, $recentlySentMessagesStore);\n});\nfunction isContiguousInternal(range, events, expiredEventRanges) {\n if (range.length === 0 || events.length === 0)\n return true;\n const indexes = [events[0].index, events[events.length - 1].index];\n const minIndex = Math.min(...indexes, ...expiredEventRanges.map((e) => e.start));\n const maxIndex = Math.max(...indexes, ...expiredEventRanges.map((e) => e.end));\n const contiguousCheck = new DRange(minIndex - 1, maxIndex + 1);\n const isContiguous = range.clone().intersect(contiguousCheck).length > 0;\n if (!isContiguous) {\n console.log(\"Events in response are not contiguous with the loaded events\", range, minIndex, maxIndex);\n }\n return isContiguous;\n}\nexport function isContiguousInThread(events) {\n return isContiguousInternal(get(confirmedThreadEventIndexesLoadedStore), events, []);\n}\nexport function isContiguous(chatId, events, expiredEventRanges) {\n return isContiguousInternal(confirmedEventIndexesLoaded(chatId), events, expiredEventRanges);\n}\nexport function clearServerEvents(id) {\n chatStateStore.setProp(id, \"serverEvents\", []);\n chatStateStore.setProp(id, \"expiredEventRanges\", new DRange());\n}\nexport const currentChatDraftMessage = derived([draftMessagesStore, selectedChatId], ([draftMessages, chatId]) => {\n return chatId !== undefined ? draftMessages.get({ chatId }) ?? {} : {};\n});\nexport const currentChatTextContent = createDerivedPropStore(currentChatDraftMessage, \"textContent\", () => undefined);\nexport const currentChatReplyingTo = createDerivedPropStore(currentChatDraftMessage, \"replyingTo\", () => undefined);\nexport const currentChatAttachment = createDerivedPropStore(currentChatDraftMessage, \"attachment\", () => undefined);\nexport const currentChatEditingEvent = createDerivedPropStore(currentChatDraftMessage, \"editingEvent\", () => undefined);\n","import { MessageContextMap, chatIdentifiersEqual } from \"openchat-shared\";\nimport { writable, derived } from \"svelte/store\";\nfunction contextsMatch(a, b) {\n return (chatIdentifiersEqual(a.chatId, b.chatId) &&\n a.threadRootMessageIndex === b.threadRootMessageIndex);\n}\nexport function isTyping(usersTyping, userId, context) {\n const userTyping = usersTyping[userId];\n if (userTyping === undefined)\n return false;\n return contextsMatch(context, userTyping.context);\n}\nconst MARK_TYPING_STOPPED_INTERVAL_MS = 5000; // 5 seconds\nconst usersTyping = writable({});\nexport const typing = {\n subscribe: usersTyping.subscribe,\n startTyping: (context, userId) => usersTyping.update((users) => {\n // Start a timeout which will mark the user as having stopped typing if no further 'user typing' events are\n // received within MARK_TYPING_STOPPED_INTERVAL_MS.\n const timeout = window.setTimeout(() => _delete(userId), MARK_TYPING_STOPPED_INTERVAL_MS);\n const existingEntry = users[userId];\n if (existingEntry) {\n // Clear the existing timeout since it is no longer relevant.\n window.clearTimeout(existingEntry.timeout);\n }\n // Mark the context that the user is typing in and include the timeout so that if subsequent events are\n // received we can clear the timeout.\n users[userId] = { context, timeout };\n return users;\n }),\n stopTyping: (userId) => _delete(userId),\n};\n// a derived store to show users typing by message context\nexport const byContext = derived([usersTyping], ([$users]) => {\n return Object.entries($users).reduce((byContext, [userId, { context }]) => {\n if (!byContext.has(context)) {\n byContext.set(context, new Set());\n }\n byContext.get(context)?.add(userId);\n return byContext;\n }, new MessageContextMap());\n});\nfunction _delete(userId) {\n usersTyping.update((users) => {\n const existingEntry = users[userId];\n if (existingEntry) {\n window.clearTimeout(existingEntry.timeout);\n delete users[userId];\n }\n return users;\n });\n}\n","import { writable } from \"svelte/store\";\nimport { createSetStore } from \"./setStore\";\nexport const undeletingMessagesStore = createSetStore(writable(new Set()));\n","import { writable } from \"svelte/store\";\nexport const identityState = writable({ kind: \"loading_user\" });\n","import { writable } from \"svelte/store\";\nexport const pinNumberRequiredStore = writable(undefined);\nexport const capturePinNumberStore = writable(undefined);\nexport const pinNumberFailureStore = writable(undefined);\n","import { writable } from \"svelte/store\";\nexport const captureRulesAcceptanceStore = writable(undefined);\n","import { AuthProvider } from \"openchat-shared\";\nimport { writable } from \"svelte/store\";\nimport { configKeys } from \"../utils/config\";\nimport { enumFromStringValue } from \"../utils/enums\";\nexport const selectedAuthProviderStore = createStore();\nfunction createStore() {\n const key = configKeys.selectedAuthProvider;\n const def = \"PublicKeyCredential\" in window ? undefined : AuthProvider.NFID;\n const stored = localStorage.getItem(key);\n const initial = stored !== null ? enumFromStringValue(AuthProvider, stored, def) : def;\n const store = writable(initial);\n function _set(authProvider) {\n store.update((_) => {\n localStorage.setItem(key, authProvider);\n return authProvider;\n });\n }\n return {\n subscribe: store.subscribe,\n set: (authProvider) => _set(authProvider),\n };\n}\n","export function enumFromStringValue(enm, value, def) {\n return Object.values(enm).includes(value)\n ? value\n : def;\n}\n","import { UnsupportedValueError } from \"openchat-shared\";\nimport { derived } from \"svelte/store\";\nimport { currentUser } from \"./user\";\nexport const diamondStatus = derived(currentUser, ($currentUser) => $currentUser.diamondStatus);\nexport const isDiamond = derived(diamondStatus, ($diamondStatus) => {\n return ($diamondStatus.kind === \"lifetime\" ||\n ($diamondStatus.kind === \"active\" && $diamondStatus.expiresAt > Date.now()));\n});\nexport const isLifetimeDiamond = derived(diamondStatus, ($diamondStatus) => {\n return $diamondStatus.kind === \"lifetime\";\n});\nconst MONTH_IN_MS = ((4 * 365 + 1) * 24 * 60 * 60 * 1000) / (4 * 12);\nconst THREE_MONTH_IN_MS = 3 * MONTH_IN_MS;\nconst YEAR_IN_MS = 12 * MONTH_IN_MS;\nexport const canExtendDiamond = derived(diamondStatus, ($diamondStatus) => {\n return $diamondStatus.kind === \"active\";\n});\nexport function diamondDurationToMs(duration) {\n if (duration === \"one_month\") {\n return MONTH_IN_MS;\n }\n if (duration === \"three_months\") {\n return THREE_MONTH_IN_MS;\n }\n if (duration === \"one_year\") {\n return YEAR_IN_MS;\n }\n if (duration === \"lifetime\") {\n return YEAR_IN_MS * 1000;\n }\n throw new UnsupportedValueError(\"Unknown diamond membership duration supplied\", duration);\n}\n","import { ModerationFlags } from \"openchat-shared\";\nimport { derived } from \"svelte/store\";\nimport { currentUser } from \"./user\";\nexport const moderationFlags = derived(currentUser, ($currentUser) => $currentUser.moderationFlagsEnabled);\nexport function hasFlag(mask, flag) {\n return (mask & flag) !== 0;\n}\nexport const adultEnabled = derived(moderationFlags, (flags) => hasFlag(flags, ModerationFlags.Adult));\nexport const offensiveEnabled = derived(moderationFlags, (flags) => hasFlag(flags, ModerationFlags.Offensive));\nexport const underReviewEnabled = derived(moderationFlags, (flags) => hasFlag(flags, ModerationFlags.UnderReview));\n","import { writable } from \"svelte/store\";\nconst localStorageKey = \"openchat_most_recent_sent_message_times\";\nexport const throttleDeadline = writable(0);\nexport const mostRecentStore = writable([]);\nexport function shouldThrottle(diamond) {\n let throttled = false;\n mostRecentStore.update((val) => {\n const now = Date.now();\n const [withinLastMinute, isThrottled] = checkTimes(now, diamond, val);\n withinLastMinute.push(Date.now());\n localStorage.setItem(localStorageKey, JSON.stringify(withinLastMinute));\n throttled = isThrottled;\n return withinLastMinute;\n });\n return throttled;\n}\nexport function initialiseMostRecentSentMessageTimes(diamond) {\n const val = localStorage.getItem(localStorageKey);\n if (!val)\n return;\n const times = JSON.parse(val);\n const now = Date.now();\n const [withinLastMinute] = checkTimes(now, diamond, times);\n mostRecentStore.set(withinLastMinute);\n}\nexport function getMaxMessagesPerMinute(diamond) {\n return diamond ? 20 : 10;\n}\nfunction checkTimes(now, diamond, times) {\n const oneMinuteAgo = now - 60000;\n const maxMessagesPerMinute = getMaxMessagesPerMinute(diamond);\n const withinLastMinute = times.filter((t) => t >= oneMinuteAgo);\n const throttled = withinLastMinute.length >= maxMessagesPerMinute;\n if (throttled) {\n const timeToWait = withinLastMinute[0] - oneMinuteAgo;\n throttleDeadline.set(now + timeToWait);\n }\n else {\n throttleDeadline.set(0);\n }\n return [withinLastMinute, throttled];\n}\n","import { derived, writable } from \"svelte/store\";\nimport { createLsBoolStore } from \"./localStorageSetting\";\nimport { configKeys } from \"../utils/config\";\nimport { anonUser } from \"./user\";\nconst notificationsSupported = \"serviceWorker\" in navigator && \"PushManager\" in window && \"Notification\" in window;\nexport const softDisabledStore = createLsBoolStore(configKeys.softDisabled, false);\nconst browserPermissionStore = writable(\"pending-init\");\nexport async function initNotificationStores() {\n if (!notificationsSupported) {\n return;\n }\n console.debug(\"PUSH: initialising notification stores with \", Notification.permission);\n browserPermissionStore.set(Notification.permission);\n if (navigator.permissions) {\n navigator.permissions.query({ name: \"notifications\" }).then((perm) => {\n perm.onchange = () => {\n console.debug(\"PUSH: permission status changed to \", perm.state);\n browserPermissionStore.set(permissionStateToNotificationPermission(perm.state));\n };\n });\n }\n}\nexport function setSoftDisabled(softDisabled) {\n softDisabledStore.set(softDisabled);\n}\nfunction permissionStateToNotificationPermission(perm) {\n switch (perm) {\n case \"prompt\":\n return \"default\";\n case \"denied\":\n return \"denied\";\n case \"granted\":\n return \"granted\";\n }\n}\nfunction permissionToStatus(permission) {\n switch (permission) {\n case \"pending-init\":\n return \"pending-init\";\n case \"denied\":\n return \"hard-denied\";\n case \"granted\":\n return \"granted\";\n default:\n return \"prompt\";\n }\n}\nexport const notificationStatus = derived([softDisabledStore, browserPermissionStore, anonUser], ([softDisabled, browserPermission, isAnonUser]) => {\n if (!notificationsSupported || isAnonUser) {\n return \"unsupported\";\n }\n if (softDisabled) {\n return \"soft-denied\";\n }\n return permissionToStatus(browserPermission);\n});\nexport async function askForNotificationPermission() {\n return Notification.requestPermission()\n .then((res) => {\n console.debug(\"PUSH: requestPermission result: \", res);\n setSoftDisabled(false);\n browserPermissionStore.set(res);\n return res;\n })\n .catch((err) => {\n console.debug(\"PUSH: requestPermission err: \", err);\n throw err;\n });\n}\n","import { writable } from \"svelte/store\";\nconst { subscribe, update } = writable({});\nexport const profileStore = {\n subscribe,\n capture: (key, val) => update((data) => {\n const currentStream = data[key] ?? [];\n const newStream = [...currentStream, val];\n if (newStream.length > 11) {\n newStream.shift();\n }\n return {\n ...data,\n [key]: newStream,\n };\n }),\n};\n","import { derived, writable } from \"svelte/store\";\nexport const ONE_MB = 1024 * 1024;\nexport const ONE_GB = ONE_MB * 1024;\nexport const storageStore = writable({\n byteLimit: 0,\n bytesUsed: 0,\n});\nexport function updateStorageLimit(limit) {\n storageStore.update((store) => {\n return {\n bytesUsed: store.bytesUsed,\n byteLimit: limit,\n };\n });\n}\nexport const percentageStorageUsed = derived([storageStore], ([$storageStore]) => Math.ceil(($storageStore.bytesUsed / $storageStore.byteLimit) * 100));\nexport const percentageStorageRemaining = derived([storageStore], ([$storageStore]) => Math.floor((1 - $storageStore.bytesUsed / $storageStore.byteLimit) * 100));\nexport const remainingStorage = derived([storageStore], ([$storageStore]) => $storageStore.byteLimit - $storageStore.bytesUsed);\nexport const storageInGb = derived([storageStore], ([$storageStore]) => {\n return {\n gbLimit: $storageStore.byteLimit / ONE_GB,\n gbUsed: $storageStore.bytesUsed / ONE_GB,\n };\n});\n","import { derived } from \"svelte/store\";\nimport { selectedChatStore } from \"./chat\";\nimport { currentUser, userStore } from \"./user\";\nimport { permittedMessagesInDirectChat, permittedMessagesInGroup } from \"../utils/chat\";\nfunction toSet(map) {\n return [...map.entries()].reduce((s, [k, v]) => {\n if (v) {\n s.add(k);\n }\n return s;\n }, new Set());\n}\nfunction getMessagePermissionsForSelectedChat(chat, userStore, user, mode) {\n if (chat !== undefined) {\n if (chat.kind === \"direct_chat\") {\n const recipient = userStore.get(chat.them.userId);\n if (recipient !== undefined) {\n return toSet(permittedMessagesInDirectChat(recipient, mode, import.meta.env.OC_PROPOSALS_BOT_CANISTER));\n }\n }\n else {\n return toSet(permittedMessagesInGroup(user, chat, mode));\n }\n }\n return new Set();\n}\nexport const messagePermissionsForSelectedChat = derived([selectedChatStore, userStore, currentUser], ([$chat, $userStore, $user]) => {\n return getMessagePermissionsForSelectedChat($chat, $userStore, $user, \"message\");\n});\nexport const threadPermissionsForSelectedChat = derived([selectedChatStore, userStore, currentUser], ([$chat, $userStore, $user]) => {\n return getMessagePermissionsForSelectedChat($chat, $userStore, $user, \"thread\");\n});\n","import { writable } from \"svelte/store\";\nexport const externalBots = writable(new Map());\nexport function setExternalBots(bots) {\n const map = new Map();\n bots.forEach((b) => map.set(b.id, b));\n externalBots.set(map);\n}\n","import { writable } from \"svelte/store\";\nexport const minutesOnlineStore = writable(0);\n","export function gaTrack(name, category, label = \"\", value) {\n gtag(\"event\", name, {\n category,\n label,\n value,\n });\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { configKeys } from \"./config\";\nimport { profileStore } from \"../stores/profiling\";\nexport function showTrace() {\n return localStorage.getItem(configKeys.profile) === \"true\";\n}\nexport function measure(key, fn) {\n const start = performance.now();\n return fn().then((res) => {\n const end = performance.now();\n console.log(key, end - start);\n profileStore.capture(key, end - start);\n return res;\n });\n}\n","import { readable } from \"svelte/store\";\nexport const background = readable(document && document.visibilityState === \"hidden\", function start(set) {\n function setVisibility() {\n set(document.visibilityState === \"hidden\");\n }\n document.addEventListener(\"visibilitychange\", function () {\n setVisibility();\n });\n return function stop() {\n window.removeEventListener(\"visibilitychange\", setVisibility);\n };\n});\n","import { derived } from \"svelte/store\";\nimport { background } from \"../stores/background\";\nimport { offlineStore } from \"../stores/network\";\nexport class Poller {\n constructor(fn, interval, \n // If idleInterval is undefined then the job will not run while the app is idle\n idleInterval, immediate) {\n this.fn = fn;\n this.interval = interval;\n this.idleInterval = idleInterval;\n this.immediate = immediate;\n this.stopped = false;\n this.status = { background: false, offline: false };\n const statusStore = derived([background, offlineStore], ([$background, $offlineStore]) => ({\n background: $background,\n offline: $offlineStore,\n }));\n // when the poller environment changes, restart\n this.unsubscribeStatus = statusStore.subscribe((status) => {\n this.status = status;\n this.start();\n });\n }\n start() {\n const runnerId = Symbol();\n this.runnerId = runnerId;\n if (this.timeoutId !== undefined) {\n window.clearTimeout(this.timeoutId);\n this.timeoutId = undefined;\n }\n // if we are offline, bail out\n if (this.status.offline)\n return;\n const interval = this.status.background ? this.idleInterval : this.interval;\n if (interval === undefined) {\n return;\n }\n // The first interval after toggling 'hidden' can be shorter so that if the job is now due based on the new\n // interval then it will run immediately.\n const firstInterval = this.lastExecutionTimestamp !== undefined\n ? Math.max(0, this.lastExecutionTimestamp + interval - Date.now())\n : this.immediate\n ? 0\n : interval;\n const runThenLoop = () => {\n if (this.stopped || this.runnerId !== runnerId)\n return;\n this.fn().finally(() => {\n this.lastExecutionTimestamp = Date.now();\n this.timeoutId = window.setTimeout(runThenLoop, interval);\n });\n };\n this.immediate = false;\n this.timeoutId = window.setTimeout(runThenLoop, firstInterval);\n }\n stop() {\n if (this.timeoutId !== undefined) {\n window.clearTimeout(this.timeoutId);\n }\n if (this.unsubscribeStatus) {\n try {\n this.unsubscribeStatus();\n // eslint-disable-next-line no-empty\n }\n catch (_err) { }\n }\n this.stopped = true;\n }\n}\n","import { toBigInt64 } from \"openchat-shared\";\nexport class LoadedNewMessages extends CustomEvent {\n constructor(context) {\n super(\"openchat_event\", { detail: context });\n }\n}\nexport class SendMessageFailed extends CustomEvent {\n constructor(alert) {\n super(\"openchat_event\", { detail: { alert } });\n }\n}\nexport class LoadedPreviousMessages extends CustomEvent {\n constructor(context, initializing) {\n super(\"openchat_event\", { detail: { context, initializing } });\n }\n}\nexport class ReactionSelected extends CustomEvent {\n constructor(messageId, kind) {\n super(\"openchat_event\", { detail: { messageId, kind } });\n }\n}\nexport class RemoteVideoCallEndedEvent extends CustomEvent {\n constructor(messageId) {\n super(\"openchat_event\", {\n detail: { messageId: toBigInt64(messageId) },\n });\n }\n}\nexport class RemoteVideoCallStartedEvent extends CustomEvent {\n constructor(chatId, userId, messageId, currentUserIsParticipant, timestamp) {\n super(\"openchat_event\", {\n detail: {\n chatId,\n userId,\n messageId: toBigInt64(messageId),\n currentUserIsParticipant,\n timestamp,\n },\n });\n }\n static create(chatId, currentUser, message, timestamp) {\n return new RemoteVideoCallStartedEvent(chatId, message.sender, message.messageId, message.content.participants.some((p) => p.userId === currentUser), timestamp);\n }\n}\nexport class VideoCallMessageUpdated extends CustomEvent {\n constructor(chatId, messageId) {\n super(\"openchat_event\", { detail: { chatId, messageId } });\n }\n}\nexport class SendingMessage extends CustomEvent {\n constructor(context) {\n super(\"openchat_event\", { detail: context });\n }\n}\nexport class SentMessage extends CustomEvent {\n constructor(context, event) {\n super(\"openchat_event\", { detail: { context, event } });\n }\n}\nexport class LoadedMessageWindow extends CustomEvent {\n constructor(context, messageIndex, initialLoad) {\n super(\"openchat_event\", { detail: { context, messageIndex, initialLoad } });\n }\n}\nexport class ChatUpdated extends CustomEvent {\n constructor(context) {\n super(\"openchat_event\", { detail: context });\n }\n}\nexport class ChatsUpdated extends Event {\n constructor() {\n super(\"openchat_event\");\n }\n}\nexport class SelectedChatInvalid extends Event {\n constructor() {\n super(\"openchat_event\");\n }\n}\nexport class UserSuspensionChanged extends Event {\n constructor() {\n super(\"openchat_event\");\n }\n}\nexport class ThreadSelected extends CustomEvent {\n constructor(threadRootEvent, initiating) {\n super(\"openchat_event\", {\n detail: { threadRootEvent, initiating },\n });\n }\n}\nexport class ThreadClosed extends Event {\n constructor() {\n super(\"openchat_event\");\n }\n}\nexport class UserLoggedIn extends CustomEvent {\n constructor(userId) {\n super(\"openchat_event\", {\n detail: userId,\n });\n }\n}\nexport class ChitEarnedEvent extends CustomEvent {\n constructor(earned) {\n super(\"openchat_event\", {\n detail: earned,\n });\n }\n}\nexport class SummonWitch extends Event {\n constructor() {\n super(\"openchat_event\");\n }\n}\nexport class CreatePoll extends CustomEvent {\n constructor(context) {\n super(\"openchat_event\", {\n detail: context,\n });\n }\n}\nexport class CreateTestMessages extends CustomEvent {\n constructor(detail) {\n super(\"openchat_event\", {\n detail,\n });\n }\n}\nexport class SearchChat extends CustomEvent {\n constructor(search) {\n super(\"openchat_event\", {\n detail: search,\n });\n }\n}\nexport class AttachGif extends CustomEvent {\n constructor(detail) {\n super(\"openchat_event\", {\n detail,\n });\n }\n}\nexport class TokenTransfer extends CustomEvent {\n constructor(detail) {\n super(\"openchat_event\", {\n detail,\n });\n }\n}\nexport class RegisterBot extends Event {\n constructor() {\n super(\"openchat_event\");\n }\n}\nexport class UpdateBot extends Event {\n constructor() {\n super(\"openchat_event\");\n }\n}\nexport class RemoveBot extends Event {\n constructor() {\n super(\"openchat_event\");\n }\n}\n","import { MAX_MESSAGES, } from \"openchat-shared\";\nimport { ChatMap, compareChats, missingUserIds, userIdsFromEvents, chatIdentifiersEqual, chatIdentifierToString, } from \"openchat-shared\";\nimport { Poller } from \"./poller\";\nimport { boolFromLS } from \"../stores/localStorageSetting\";\nimport { messagesRead } from \"../stores/markRead\";\nimport { userStore } from \"../stores/user\";\nimport { get } from \"svelte/store\";\nimport { runOnceIdle } from \"./backgroundTasks\";\nimport { isProposalsChat } from \"./chat\";\nimport { RemoteVideoCallEndedEvent, RemoteVideoCallStartedEvent } from \"../events\";\nimport { selectedChatId } from \"../stores\";\nconst BATCH_SIZE = 20;\nexport class CachePrimer {\n constructor(api, userId, userCanisterLocalUserIndex, onVideoStart, onVideoEnded) {\n this.api = api;\n this.userId = userId;\n this.userCanisterLocalUserIndex = userCanisterLocalUserIndex;\n this.onVideoStart = onVideoStart;\n this.onVideoEnded = onVideoEnded;\n this.pending = new ChatMap();\n this.runner = undefined;\n debug(\"initialized\");\n }\n async processChats(chats) {\n if (chats.length > 0) {\n const lastUpdatedTimestamps = await this.api.getCachePrimerTimestamps();\n for (const chat of chats) {\n const lastUpdated = lastUpdatedTimestamps[chatIdentifierToString(chat.id)];\n if (this.shouldEnqueueChat(chat, lastUpdated)) {\n this.pending.set(chat.id, chat);\n debug(\"enqueued \" + chat.id);\n }\n }\n if (this.pending.size > 0 && this.runner === undefined) {\n this.runner = new Poller(() => runOnceIdle(() => this.processNextBatch()), 500);\n debug(\"runner started\");\n }\n }\n }\n async processNextBatch() {\n try {\n const next = this.getNextBatch();\n if (next === undefined) {\n debug(\"queue empty\");\n return;\n }\n const [localUserIndex, batch] = next;\n const responses = await this.getEventsBatch(localUserIndex, batch);\n const userIds = new Set();\n for (let i = 0; i < responses.length; i++) {\n const request = batch[i];\n const response = responses[i];\n if (response.kind === \"success\") {\n userIdsFromEvents(response.result.events).forEach((u) => userIds.add(u));\n response.result.events.forEach((e) => {\n if (e.event.kind === \"message\" &&\n e.event.sender !== this.userId &&\n e.event.content.kind === \"video_call_content\" &&\n e.event.content.callType === \"default\") {\n if (e.event.content.ended === undefined) {\n this.onVideoStart(RemoteVideoCallStartedEvent.create(request.context.chatId, this.userId, e.event, e.timestamp));\n }\n else {\n this.onVideoEnded(new RemoteVideoCallEndedEvent(e.event.messageId));\n }\n }\n });\n }\n }\n if (userIds.size > 0) {\n const missing = missingUserIds(get(userStore), userIds);\n if (missing.length > 0) {\n debug(`Loading ${missing.length} users`);\n await this.api.getUsers({ userGroups: [{ users: missing, updatedSince: BigInt(0) }] }, true);\n }\n }\n debug(`Batch of size ${batch.length} completed`);\n }\n finally {\n if (this.pending.size === 0) {\n this.runner?.stop();\n this.runner = undefined;\n debug(\"runner stopped\");\n }\n }\n }\n getNextBatch() {\n const sorted = this.pending.values().sort(compareChats);\n const batch = [];\n let localUserIndexForBatch = undefined;\n for (const next of sorted) {\n const localUserIndex = this.localUserIndex(next);\n if (localUserIndex === undefined) {\n this.pending.delete(next.id);\n continue;\n }\n if (localUserIndexForBatch === undefined) {\n localUserIndexForBatch = localUserIndex;\n }\n else if (localUserIndex !== localUserIndexForBatch) {\n continue;\n }\n this.pending.delete(next.id);\n batch.push(...this.getEventsArgs(next));\n if (batch.length >= BATCH_SIZE) {\n break;\n }\n }\n return localUserIndexForBatch !== undefined\n ? [localUserIndexForBatch, batch]\n : undefined;\n }\n getEventsArgs(chat) {\n const context = { chatId: chat.id };\n const latestKnownUpdate = chat.lastUpdated;\n const minVisible = \"minVisibleEventIndex\" in chat ? chat.minVisibleEventIndex : 0;\n const eventIndexRange = [minVisible, chat.latestEventIndex];\n const args = [];\n if (!chatIdentifiersEqual(get(selectedChatId), chat.id) &&\n messagesRead.unreadMessageCount(chat.id, chat.latestMessageIndex) > MAX_MESSAGES / 2) {\n const firstUnreadMessage = messagesRead.getFirstUnreadMessageIndex(chat.id, chat.latestMessage?.event.messageIndex);\n if (firstUnreadMessage !== undefined) {\n args.push({\n context,\n args: {\n kind: \"window\",\n midPoint: firstUnreadMessage,\n eventIndexRange,\n },\n latestKnownUpdate,\n });\n }\n }\n args.push({\n context,\n args: {\n kind: \"page\",\n ascending: false,\n startIndex: chat.latestEventIndex,\n eventIndexRange,\n },\n latestKnownUpdate,\n });\n return args;\n }\n getEventsBatch(localUserIndex, requests) {\n return this.api.chatEventsBatch(localUserIndex, requests);\n }\n localUserIndex(chat) {\n switch (chat.kind) {\n case \"direct_chat\":\n return this.userCanisterLocalUserIndex;\n case \"group_chat\":\n return chat.localUserIndex;\n case \"channel\":\n return this.api.cachedLocalUserIndexForCommunity(chat.id.communityId);\n }\n }\n shouldEnqueueChat(chat, lastUpdated) {\n if (chat.membership.archived || isProposalsChat(chat))\n return false;\n return lastUpdated === undefined || chat.lastUpdated > lastUpdated;\n }\n}\nfunction debug(message) {\n if (boolFromLS(\"openchat_cache_primer_debug_enabled\", false)) {\n console.debug(\"CachePrimer - \" + message);\n }\n}\n","export function runOnceIdle(action) {\n return new Promise((resolve) => {\n const callback = () => action().finally(() => resolve());\n return \"requestIdleCallback\" in window\n ? window.requestIdleCallback(callback)\n : // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n window.setTimeout(callback, 1000);\n });\n}\n","export class RecentlyActiveUsersTracker {\n constructor() {\n this.map = new Map();\n }\n track(userId, date) {\n const current = this.map.get(userId);\n if (current === undefined || current < date) {\n this.map.set(userId, date);\n }\n }\n *consume() {\n const sorted = [];\n this.map.forEach((lastActive, userId) => sorted.push([userId, lastActive]));\n sorted.sort((a, b) => Number(b[1] - a[1]));\n for (const [next] of sorted) {\n this.map.delete(next);\n yield next;\n }\n }\n}\n","import { writable } from \"svelte/store\";\nconst TWO_MINUTES_MILLIS = 120 * 1000;\nfunction createLastOnlineDatesStore() {\n const store = writable(new Map());\n let storeValue = new Map();\n store.subscribe((v) => (storeValue = v));\n function expired(lastOnline, now) {\n return now - lastOnline.updated > TWO_MINUTES_MILLIS;\n }\n return {\n subscribe: store.subscribe,\n get: (userId, now) => {\n const value = storeValue.get(userId);\n return value !== undefined && !expired(value, now) ? value : undefined;\n },\n set: (values, now) => {\n store.update((map) => {\n const newMap = new Map();\n for (const [userId, lastOnline] of map) {\n if (!expired(lastOnline, now)) {\n newMap.set(userId, lastOnline);\n }\n }\n for (const [userId, lastOnline] of values) {\n const current = newMap.get(userId);\n if (current === undefined || current.lastOnline < lastOnline) {\n newMap.set(userId, { lastOnline, updated: now });\n }\n }\n return newMap;\n });\n },\n };\n}\nexport const lastOnlineDates = createLastOnlineDatesStore();\n","import { createSetStore } from \"./setStore\";\nimport { writable } from \"svelte/store\";\nexport const recommendedGroupExclusions = createSetStore(writable(new Set()));\n","import { configKeys } from \"../utils/config\";\nimport { createLsBoolStore } from \"./localStorageSetting\";\nexport const userCreatedStore = createLsBoolStore(configKeys.userCreated, false);\n","export function dataToBlobUrl(data, type) {\n const options = type ? { type } : undefined;\n const blob = new Blob([data], options);\n return URL.createObjectURL(blob);\n}\n","const unitTypes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\nexport default function format(bytes) {\n let value = Math.ceil(bytes);\n let unitType = 0;\n while (value >= 1024 && unitType < unitTypes.length - 1) {\n value = value / 1024;\n unitType++;\n }\n const showDecimal = unitType > 0 && value < 9.95; // Since 9.95.toFixed(1) will display '10.0', whereas we want '10'\n const formattedValue = value.toFixed(showDecimal ? 1 : 0);\n const unit = unitTypes[unitType];\n return `${formattedValue} ${unit}`;\n}\n","export function calculateMediaDimensions(content, parentWidth, containerPaddingWidth, windowHeight, maxWidthFraction = 0.8) {\n const ratio = content.height / content.width;\n const availWidth = parentWidth * maxWidthFraction - containerPaddingWidth;\n const availHeight = Math.min((2 * windowHeight) / 3, 400);\n let width = Math.min(availWidth, Math.max(200, content.width));\n let height = width * ratio;\n if (height > availHeight) {\n height = availHeight;\n // Allow the image to be stretched in this rare case\n width = Math.max(90 - containerPaddingWidth, height / ratio);\n }\n return {\n width,\n height,\n };\n}\n","import { dataToBlobUrl } from \"./blob\";\nconst THUMBNAIL_DIMS = dimensions(30, 30);\nexport const MAX_DIMENSIONS = dimensions(1500, 1500);\nexport const FREE_MAX_SIZES = {\n image: 1024 * 1024,\n video: 1024 * 1024 * 5,\n audio: 1024 * 1024,\n file: 1024 * 1024,\n};\nexport const DIAMOND_MAX_SIZES = {\n image: 1024 * 1024 * 5,\n video: 1024 * 1024 * 50,\n audio: 1024 * 1024 * 5,\n file: 1024 * 1024 * 5,\n};\nfunction dimensions(width, height) {\n return { width, height };\n}\nfunction scaleToFit(toScale, maxDimensions) {\n const aspectRatio = toScale.width / toScale.height;\n const maxAspectRatio = maxDimensions.width / maxDimensions.height;\n if (toScale.width <= maxDimensions.width && toScale.height <= maxDimensions.height) {\n return dimensions(toScale.width, toScale.height);\n }\n if (aspectRatio > maxAspectRatio) {\n return dimensions(maxDimensions.width, Math.floor(maxDimensions.width / aspectRatio));\n }\n else {\n return dimensions(Math.floor(maxDimensions.height * aspectRatio), maxDimensions.height);\n }\n}\nexport async function extractImageThumbnail(blobUrl, mimeType) {\n return new Promise((resolve, _) => {\n const img = new Image();\n img.onload = () => resolve(changeDimensions(img, mimeType, dimensions(img.width, img.height)));\n img.src = blobUrl;\n });\n}\nexport async function extractVideoThumbnail(blobUrl, mimeType) {\n return new Promise((resolve, _) => {\n const video = document.createElement(\"video\");\n video.addEventListener(\"loadedmetadata\", () => {\n // if the currentTime is set too early the \"seeked\" event does not fire on iOS\n // Can't find a better way to deal with it than this\n let attempts = 0;\n const loop = window.setInterval(() => {\n if (attempts > 10)\n window.clearInterval(loop);\n video.currentTime = 1;\n attempts += 1;\n }, 100);\n video.addEventListener(\"seeked\", () => {\n window.clearInterval(loop);\n resolve(Promise.all([\n changeDimensions(video, mimeType, dimensions(video.videoWidth, video.videoHeight)),\n changeDimensions(video, mimeType, dimensions(video.videoWidth, video.videoHeight), dimensions(video.videoWidth, video.videoHeight)),\n ]));\n });\n });\n video.src = blobUrl;\n });\n}\nexport function changeDimensions(original, mimeType, originalDimensions, newDimensions = THUMBNAIL_DIMS) {\n const { width, height } = scaleToFit(originalDimensions, newDimensions);\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const context = canvas.getContext(\"2d\");\n context.drawImage(original, 0, 0, canvas.width, canvas.height);\n return new Promise((resolve) => {\n canvas.toBlob((blob) => {\n if (blob) {\n const reader = new FileReader();\n reader.addEventListener(\"loadend\", () => {\n resolve({\n dimensions: originalDimensions,\n url: canvas.toDataURL(mimeType),\n data: reader.result,\n });\n });\n reader.readAsArrayBuffer(blob);\n }\n }, mimeType);\n });\n}\nexport function fillMessage(msg) {\n if (msg.forwarded || msg.content.kind === \"meme_fighter_content\") {\n return false;\n }\n if (msg.content.kind === \"prize_content\") {\n return true;\n }\n if (msg.content.kind === \"image_content\" ||\n msg.content.kind === \"video_content\" ||\n msg.content.kind === \"giphy_content\") {\n return ((msg.content.caption === undefined || msg.content.caption === \"\") &&\n msg.repliesTo === undefined);\n }\n else {\n return false;\n }\n}\nexport function stripMetaDataAndResize(blobUrl, mimeType) {\n // if our image is too big, we'll just create a new version with fixed dimensions\n // there's no very easy way to reduce it to a specific file size\n return new Promise((resolve, _) => {\n const img = new Image();\n img.onload = () => {\n resolve(changeDimensions(img, mimeType, dimensions(img.width, img.height), MAX_DIMENSIONS));\n };\n img.src = blobUrl;\n });\n}\nexport function audioRecordingMimeType() {\n // prefer mp4 since it works on iOS and desktop, fallback to webm just in case\n if (MediaRecorder.isTypeSupported(\"audio/mp4\")) {\n return \"audio/mp4\";\n }\n else if (MediaRecorder.isTypeSupported(\"audio/webm\")) {\n return \"audio/webm\";\n }\n return undefined;\n}\nexport async function messageContentFromFile(file, isDiamond) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsArrayBuffer(file);\n reader.onload = async (e) => {\n if (!e.target)\n return;\n const mimeType = file.type;\n const isImage = /^image/.test(mimeType);\n const isGif = isImage && /gif/.test(mimeType);\n const isVideo = /^video/.test(mimeType);\n const isAudio = /^audio/.test(mimeType);\n const isFile = !(isImage || isVideo);\n let data = e.target.result;\n let content;\n const maxSizes = isDiamond ? DIAMOND_MAX_SIZES : FREE_MAX_SIZES;\n if (isVideo && data.byteLength > maxSizes.video) {\n reject(\"maxVideoSize\");\n return;\n }\n else if (isAudio && data.byteLength > maxSizes.audio) {\n reject(\"maxAudioSize\");\n return;\n }\n else if (isFile && data.byteLength > maxSizes.file) {\n reject(\"maxFileSize\");\n return;\n }\n const blobUrl = dataToBlobUrl(data, mimeType);\n if (isImage) {\n const extract = await extractImageThumbnail(blobUrl, mimeType);\n if (!isGif || data.byteLength > maxSizes.image) {\n data = (await stripMetaDataAndResize(blobUrl, mimeType)).data;\n }\n content = {\n kind: \"image_content\",\n mimeType: mimeType,\n width: extract.dimensions.width,\n height: extract.dimensions.height,\n blobData: new Uint8Array(data),\n thumbnailData: extract.url,\n blobUrl: blobUrl,\n };\n }\n else if (isVideo) {\n const [thumb, image] = await extractVideoThumbnail(blobUrl, mimeType);\n content = {\n kind: \"video_content\",\n mimeType: mimeType,\n width: image.dimensions.width,\n height: image.dimensions.height,\n imageData: {\n blobData: new Uint8Array(image.data),\n blobUrl: image.url,\n },\n videoData: {\n blobData: new Uint8Array(data),\n blobUrl: blobUrl,\n },\n thumbnailData: thumb.url,\n };\n }\n else if (isAudio) {\n content = {\n kind: \"audio_content\",\n mimeType: mimeType,\n blobData: new Uint8Array(data),\n blobUrl: blobUrl,\n };\n }\n else {\n content = {\n kind: \"file_content\",\n name: file.name,\n mimeType: mimeType,\n blobData: new Uint8Array(data),\n blobUrl: blobUrl,\n fileSize: data.byteLength,\n };\n }\n resolve(content);\n };\n });\n}\n/** twitter link */\nexport const twitterLinkRegex = () => /https?:\\/\\/(twitter|x)\\.com\\/[^/]+\\/status(es)?\\/(\\d+)[?^ ]*/i;\n/** Youtube link handling - various formats\n * https://youtu.be/SWgxgpGZerc\n * https://www.youtube.com/watch?v=SWgxgpGZerc\n * https://youtube.com/shorts/u1I0Z8ePtKM?feature=share\n * https://www.youtube.com/shorts/u1I0Z8ePtKM\n */\nexport const youtubeRegex = () => /https:\\/\\/(?:www.youtube.com\\/watch\\?v=([^/\\s]*)|youtu.be\\/([^/\\s]*)|(?:www\\.)?youtube.com\\/shorts\\/([^/\\s]*))/i;\nexport const spotifyRegex = () => /\\/(album|artist|show|episode|track|playlist)\\/(\\w+)/i;\nexport function isYoutubeLink(text) {\n return matchesLink(text, text.match(youtubeRegex()));\n}\nexport function containsYoutubeLink(text) {\n return containsLink(text, text.match(youtubeRegex()));\n}\n/** DSocial link handling - not currently used */\nexport const dsocialRegex = () => /https:\\/\\/(?:dsocial.app|dwqte-viaaa-aaaai-qaufq-cai.ic0.app)\\/([^\\s/]*)(?:[^ ]*)/i;\nexport function isDsocialLink(text) {\n return matchesLink(text, text.match(dsocialRegex()));\n}\nexport function containsDsocialLink(text) {\n return containsLink(text, text.match(dsocialRegex()));\n}\n/** indicates that the message is a video link and nothing else */\nexport function isSocialVideoLink(text) {\n return isYoutubeLink(text);\n}\n/** indicates that the message contains a video link but also has other content */\nexport function containsSocialVideoLink(text) {\n return containsYoutubeLink(text);\n // return containsDsocialLink(text) || containsYoutubeLink(text);\n}\nfunction containsLink(text, match) {\n return match ? match[0] !== text : false;\n}\nfunction matchesLink(text, match) {\n return match ? match[0] === text : false;\n}\n","/* eslint-disable no-case-declarations */\nimport { chatIdentifiersEqual, toBigInt64, } from \"openchat-shared\";\nimport { selectedChatStore } from \"../stores/chat\";\nimport { get } from \"svelte/store\";\nimport { blockedUsers } from \"../stores/blockedUsers\";\nimport { globalStateStore } from \"../stores/global\";\nimport { RemoteVideoCallEndedEvent, RemoteVideoCallStartedEvent } from \"../events\";\nexport function messageIsForSelectedChat(msg) {\n const chat = findChatByChatType(msg);\n if (chat === undefined)\n return false;\n const selectedChat = get(selectedChatStore);\n if (selectedChat === undefined)\n return false;\n if (chat.id !== selectedChat.id)\n return false;\n return true;\n}\nexport function createRemoteVideoEndedEvent(msg) {\n return new RemoteVideoCallEndedEvent(msg.messageId);\n}\nexport function createRemoteVideoStartedEvent(msg) {\n const chat = findChatByChatType(msg);\n if (chat) {\n return new RemoteVideoCallStartedEvent(chat.id, msg.userId, msg.messageId, false, BigInt(Date.now()));\n }\n}\nfunction findChatByChatType(msg) {\n const state = get(globalStateStore);\n switch (msg.id.kind) {\n case \"direct_chat\":\n return state.directChats.get({ kind: \"direct_chat\", userId: msg.userId });\n case \"group_chat\":\n return state.groupChats.get(msg.id);\n case \"channel\":\n const communityId = {\n kind: \"community\",\n communityId: msg.id.communityId,\n };\n const channels = state.communities.get(communityId)?.channels ?? [];\n const channelId = msg.id.channelId;\n return channels.find((c) => c.id.channelId === channelId);\n }\n}\nfunction isDirectChatWith(chat, userId) {\n return chat.kind === \"direct_chat\" && chat.them.userId === userId;\n}\nfunction isBlockedUser(chat) {\n return chat.kind === \"direct_chat\" && get(blockedUsers).has(chat.them.userId);\n}\nexport function filterWebRtcMessage(msg) {\n const fromChat = findChatByChatType(msg);\n const selectedChat = get(selectedChatStore);\n // if the chat can't be found - ignore\n if (fromChat === undefined || selectedChat === undefined) {\n return undefined;\n }\n if (chatIdentifiersEqual(fromChat.id, selectedChat.id) &&\n isDirectChatWith(selectedChat, msg.userId) &&\n isBlockedUser(selectedChat)) {\n console.log(\"ignoring webrtc message from blocked user\");\n return undefined;\n }\n return fromChat.id;\n}\nfunction hydrateBigIntsInContent(content) {\n if (content.kind === \"crypto_content\") {\n if (content.transfer.kind === \"pending\") {\n return {\n ...content,\n transfer: {\n ...content.transfer,\n amountE8s: BigInt(content.transfer.amountE8s),\n feeE8s: content.transfer.feeE8s !== undefined\n ? BigInt(content.transfer.feeE8s)\n : undefined,\n },\n };\n }\n if (content.transfer.kind === \"completed\") {\n return {\n ...content,\n transfer: {\n ...content.transfer,\n amountE8s: BigInt(content.transfer.amountE8s),\n feeE8s: BigInt(content.transfer.feeE8s),\n blockIndex: BigInt(content.transfer.blockIndex),\n },\n };\n }\n }\n return content;\n}\n/**\n * This is just here to cast various bits to bigint - it sucks but it appears to be necessary\n */\nexport function parseWebRtcMessage(chatId, msg) {\n if (msg.kind === \"remote_user_read_message\" ||\n msg.kind === \"remote_user_toggled_reaction\" ||\n msg.kind === \"remote_user_deleted_message\" ||\n msg.kind === \"remote_user_removed_message\") {\n return {\n ...msg,\n id: chatId,\n messageId: toBigInt64(msg.messageId),\n };\n }\n if (msg.kind === \"remote_user_sent_message\") {\n msg.messageEvent.event.content = hydrateBigIntsInContent(msg.messageEvent.event.content);\n if (msg.messageEvent.event.repliesTo?.kind === \"rehydrated_reply_context\") {\n msg.messageEvent.event.repliesTo = {\n ...msg.messageEvent.event.repliesTo,\n messageId: toBigInt64(msg.messageEvent.event.messageId),\n content: hydrateBigIntsInContent(msg.messageEvent.event.repliesTo.content),\n };\n }\n return {\n ...msg,\n id: chatId,\n messageEvent: {\n ...msg.messageEvent,\n event: {\n ...msg.messageEvent.event,\n messageId: toBigInt64(msg.messageEvent.event.messageId),\n },\n timestamp: BigInt(Date.now()),\n },\n };\n }\n return msg;\n}\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\nexport function formatDisappearingMessageTime(milliseconds, formatter) {\n const duration = durationFromMilliseconds(milliseconds);\n if (duration.days > 0)\n return duration.days === 1\n ? formatter(\"oneDay\")\n : formatter(\"durationDays\", { values: { duration: duration.days } });\n if (duration.hours > 0)\n return duration.hours === 1\n ? formatter(\"oneHour\")\n : formatter(\"durationHours\", { values: { duration: duration.hours } });\n return duration.minutes === 1\n ? formatter(\"disappearingMessages.oneMinute\")\n : formatter(\"disappearingMessages.durationMinutes\", {\n values: { duration: duration.minutes },\n });\n}\nexport function startsIn(now, time) {\n return durationFromMilliseconds(time - now);\n}\nexport function durationFromMilliseconds(total) {\n const seconds = Math.floor((total / 1000) % 60);\n const minutes = Math.floor((total / 1000 / 60) % 60);\n const hours = Math.floor((total / (1000 * 60 * 60)) % 24);\n const days = Math.floor((total / (1000 * 60 * 60 * 24)));\n return {\n total,\n days,\n hours,\n minutes,\n seconds,\n };\n}\nfunction pad(num) {\n return num.toString().padStart(2, \"0\");\n}\nexport function formatDuration(ms) {\n const { days, hours, minutes, seconds } = durationFromMilliseconds(ms);\n let result = \"\";\n if (days > 0) {\n result += `${pad(days)}d `;\n }\n if (hours > 0) {\n result += `${hours}h `;\n }\n if (minutes > 0) {\n result += `${minutes}m `;\n }\n if (seconds > 0) {\n result += `${seconds}s `;\n }\n return result;\n}\nexport function formatTimeRemaining(now, deadline, excludeDays = false) {\n const { days, hours, minutes, seconds } = startsIn(now, deadline);\n let text = `${pad(hours)}:${pad(minutes)}:${pad(seconds)}`;\n if (!excludeDays) {\n text = `${pad(days)}:` + text;\n }\n return text;\n}\nconst defaultFormatter = new Intl.RelativeTimeFormat(undefined, { numeric: \"auto\" });\nconst formatters = {\n en: new Intl.RelativeTimeFormat(\"en\", { numeric: \"auto\" }),\n};\nconst timeDivisions = [\n { amount: 60, name: \"seconds\" },\n { amount: 60, name: \"minutes\" },\n { amount: 24, name: \"hours\" },\n { amount: 365.25, name: \"days\" },\n { amount: Number.POSITIVE_INFINITY, name: \"years\" },\n];\nexport function formatRelativeTime(now, locale, expiry) {\n let duration = (Number(expiry) - now) / 1000;\n for (let i = 0; i <= timeDivisions.length; i++) {\n const division = timeDivisions[i];\n if (Math.abs(duration) < division.amount) {\n if (locale && !formatters[locale]) {\n formatters[locale] = new Intl.RelativeTimeFormat(locale, { numeric: \"auto\" });\n }\n const formatter = locale ? formatters[locale] : defaultFormatter;\n //@ts-ignore\n return formatter.format(Math.round(duration), division.name);\n }\n duration /= division.amount;\n }\n}\n","import { Usergeek } from \"usergeek-ic-js\";\nconst shouldTrack = import.meta.env.OC_NODE_ENV === \"production\";\nexport function initialiseTracking({ icUrl, userGeekApiKey }) {\n if (shouldTrack) {\n const apiKey = userGeekApiKey;\n const host = icUrl;\n Usergeek.init({ apiKey, host });\n console.log(\"Usergeek initialised\");\n }\n}\nexport function startTrackingSession(identity) {\n if (shouldTrack) {\n Usergeek.setPrincipal(identity.getPrincipal());\n Usergeek.trackSession();\n }\n}\nexport function endTrackingSession() {\n if (shouldTrack) {\n Usergeek.setPrincipal(undefined);\n }\n}\nexport function trackEvent(eventName) {\n if (shouldTrack) {\n Usergeek.trackEvent(eventName);\n }\n}\n","/**\n * Periodically check whether there is a new service worker available\n */\nimport { Poller } from \"../utils/poller\";\nlet poller = undefined;\nexport async function startSwCheckPoller() {\n if (\"serviceWorker\" in navigator) {\n if (poller === undefined) {\n poller = new Poller(checkServiceWorker, 60000);\n }\n }\n}\nasync function checkServiceWorker() {\n const reg = await navigator.serviceWorker.getRegistration(import.meta.env.OC_SERVICE_WORKER_PATH);\n if (reg) {\n console.log(\"SW: checking for a new root service worker\");\n await reg.update(); // this should get the new service worker and install it if it's available\n }\n}\n","import { selectedAuthProviderStore } from \"./stores/authProviders\";\nimport { serverChatSummariesStore, myServerChatSummariesStore, chatSummariesStore, groupPreviewsStore, selectedChatId, eventsStore, selectedChatStore, selectedServerChatStore, currentChatReplyingTo, chatSummariesListStore, threadsByChatStore, focusMessageIndex, focusThreadMessageIndex, threadEvents, threadsFollowedByMeStore, currentChatUserIds, selectedThreadRootMessageIndex, chatsInitialised, chatsLoading, uninitializedDirectChats, confirmedThreadEventIndexesLoadedStore, selectedMessageContext, allChats, currentChatMembers, currentChatRules, pinnedChatsStore, favouritesStore, currentChatBots, } from \"./stores/chat\";\nimport { remainingStorage } from \"./stores/storage\";\nimport { userCreatedStore } from \"./stores/userCreated\";\nimport { anonUser, currentUser, platformModerator, suspendedUser, userStore } from \"./stores/user\";\nimport { blockedUsers } from \"./stores/blockedUsers\";\nimport { diamondStatus, isDiamond, isLifetimeDiamond } from \"./stores/diamond\";\nimport { communities, communityPreviewsStore, currentCommunityMembers, selectedCommunity, currentCommunityRules, currentCommunityBots, } from \"./stores/community\";\nimport { chatListScopeStore, globalStateStore, chitStateStore, installedDirectBots, } from \"./stores/global\";\nimport { offlineStore } from \"./stores/network\";\nimport { draftMessagesStore } from \"./stores/draftMessages\";\nimport { locale } from \"svelte-i18n\";\nimport { capturePinNumberStore, pinNumberRequiredStore } from \"./stores/pinNumber\";\nimport { walletConfigStore } from \"./stores/crypto\";\nimport { externalBots } from \"./stores\";\n/**\n * Any stores that we reference inside the OpenChat client can be added here so that we always have the up to date current value\n * at hand without having to use svelte.get which will create and destroy a subscription every time\n */\nexport class LiveState {\n constructor() {\n currentChatBots.subscribe((state) => (this.currentChatBots = state));\n currentCommunityBots.subscribe((state) => (this.currentCommunityBots = state));\n installedDirectBots.subscribe((state) => (this.installedDirectBots = state));\n externalBots.subscribe((state) => (this.externalBots = state));\n chitStateStore.subscribe((state) => (this.chitState = state));\n offlineStore.subscribe((offline) => (this.offlineStore = offline));\n currentUser.subscribe((user) => (this.user = user));\n anonUser.subscribe((anon) => (this.anonUser = anon));\n suspendedUser.subscribe((suspended) => (this.suspendedUser = suspended));\n platformModerator.subscribe((mod) => (this.platformModerator = mod));\n confirmedThreadEventIndexesLoadedStore.subscribe((data) => (this.confirmedThreadEventIndexesLoaded = data));\n remainingStorage.subscribe((data) => (this.remainingStorage = data));\n userStore.subscribe((data) => (this.userStore = data));\n userCreatedStore.subscribe((data) => (this.userCreated = data));\n selectedAuthProviderStore.subscribe((data) => (this.selectedAuthProvider = data));\n serverChatSummariesStore.subscribe((data) => (this.serverChatSummaries = data));\n myServerChatSummariesStore.subscribe((data) => (this.myServerChatSummaries = data));\n chatSummariesStore.subscribe((data) => (this.chatSummaries = data));\n uninitializedDirectChats.subscribe((data) => (this.uninitializedDirectChats = data));\n groupPreviewsStore.subscribe((data) => (this.groupPreviews = data));\n communityPreviewsStore.subscribe((data) => (this.communityPreviews = data));\n selectedChatId.subscribe((data) => (this.selectedChatId = data));\n eventsStore.subscribe((data) => (this.events = data));\n selectedChatStore.subscribe((data) => (this.selectedChat = data));\n selectedServerChatStore.subscribe((data) => (this.selectedServerChat = data));\n currentChatReplyingTo.subscribe((data) => (this.currentChatReplyingTo = data));\n chatSummariesListStore.subscribe((data) => (this.chatSummariesList = data));\n threadsByChatStore.subscribe((data) => (this.threadsByChat = data));\n focusMessageIndex.subscribe((data) => (this.focusMessageIndex = data));\n focusThreadMessageIndex.subscribe((data) => (this.focusThreadMessageIndex = data));\n threadEvents.subscribe((data) => (this.threadEvents = data));\n selectedMessageContext.subscribe((data) => (this.selectedMessageContext = data));\n threadsFollowedByMeStore.subscribe((data) => (this.threadsFollowedByMe = data));\n currentChatMembers.subscribe((data) => (this.currentChatMembers = data));\n currentChatRules.subscribe((data) => (this.currentChatRules = data));\n currentChatUserIds.subscribe((data) => (this.currentChatUserIds = data));\n selectedThreadRootMessageIndex.subscribe((data) => (this.selectedThreadRootMessageIndex = data));\n chatsInitialised.subscribe((data) => (this.chatsInitialised = data));\n chatsLoading.subscribe((data) => (this.chatsLoading = data));\n blockedUsers.subscribe((data) => (this.blockedUsers = data));\n diamondStatus.subscribe((data) => (this.diamondStatus = data));\n isDiamond.subscribe((data) => (this.isDiamond = data));\n isLifetimeDiamond.subscribe((data) => (this.isDiamond = data));\n communities.subscribe((data) => (this.communities = data));\n chatListScopeStore.subscribe((scope) => (this.chatListScope = scope));\n globalStateStore.subscribe((data) => (this.globalState = data));\n pinnedChatsStore.subscribe((data) => (this.pinnedChats = data));\n favouritesStore.subscribe((data) => (this.favourites = data));\n allChats.subscribe((data) => (this.allChats = data));\n selectedCommunity.subscribe((data) => (this.selectedCommunity = data));\n currentCommunityMembers.subscribe((data) => (this.currentCommunityMembers = data));\n draftMessagesStore.subscribe((data) => (this.draftMessages = data));\n currentCommunityRules.subscribe((data) => (this.currentCommunityRules = data));\n locale.subscribe((data) => (this.locale = data ?? \"en\"));\n pinNumberRequiredStore.subscribe((data) => (this.pinNumberRequired = data));\n capturePinNumberStore.subscribe((data) => (this.capturePinNumber = data));\n walletConfigStore.subscribe((data) => (this.walletConfig = data));\n }\n}\n","export function indexIsInRanges(index, ranges) {\n for (const range of ranges.subranges()) {\n if (range.low <= index && index <= range.high)\n return true;\n if (range.low > index)\n break;\n }\n return false;\n}\n","export function isDisplayNameValid(displayName) {\n const MIN_DISPLAY_NAME_LENGTH = 3;\n const MAX_DISPLAY_NAME_LENGTH = 25;\n if (displayName.length < MIN_DISPLAY_NAME_LENGTH ||\n displayName.length > MAX_DISPLAY_NAME_LENGTH) {\n return false;\n }\n const invalidChars = \"@<>/\\\\#\\\"'`💎\\f\\n\\r\\t\\v\\u00A0\\u2028\\u2029\";\n for (let i = 0; i < displayName.length; i++) {\n if (invalidChars.includes(displayName[i])) {\n return false;\n }\n }\n if (displayName.startsWith(\" \") || displayName.endsWith(\" \") || displayName.includes(\" \")) {\n return false;\n }\n return true;\n}\nexport function isUsernameValid(displayName) {\n const MIN_USERNAME_LENGTH = 5;\n const MAX_USERNAME_LENGTH = 15;\n if (displayName.length < MIN_USERNAME_LENGTH ||\n displayName.length > MAX_USERNAME_LENGTH) {\n return false;\n }\n const validChars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_\";\n for (let i = 0; i < displayName.length; i++) {\n if (!validChars.includes(displayName[i])) {\n return false;\n }\n }\n if (displayName.startsWith(\"_\") || displayName.endsWith(\"_\") || displayName.includes(\"__\")) {\n return false;\n }\n return true;\n}\n","let reqId = 0;\nlet iiWindow;\nlet eventHandler;\nconst INTERRUPT_CHECK_INTERVAL = 500;\nfunction cleanUp() {\n if (eventHandler !== undefined) {\n window.removeEventListener(\"message\", eventHandler);\n }\n eventHandler = undefined;\n iiWindow?.close();\n iiWindow = undefined;\n}\nfunction getEventHandler(id, principal, issuerOrigin, issuerCanisterId, credentialType, credentialArguments, derivationOrigin, url, onSuccess, _onError) {\n return (ev) => {\n console.debug(\"VC: received message on window: \", ev);\n if (ev.origin === url.origin) {\n console.debug(\"VC: message from correct origin received\", ev.data);\n if (\"method\" in ev.data) {\n if (ev.data.method === \"vc-flow-ready\") {\n const msg = {\n id,\n jsonrpc: \"2.0\",\n method: \"request_credential\",\n params: {\n issuer: {\n origin: issuerOrigin,\n canisterId: issuerCanisterId,\n },\n credentialSubject: principal,\n credentialSpec: {\n credentialType,\n arguments: credentialArguments,\n },\n derivationOrigin,\n },\n };\n console.debug(\"VC: sending request_credential msg: \", msg);\n iiWindow?.postMessage(msg, url.origin);\n }\n }\n if (\"result\" in ev.data && \"verifiablePresentation\" in ev.data.result) {\n if (ev.data.id === id) {\n console.debug(\"VC: verification result received\", ev.data.result.verifiablePresentation);\n onSuccess(ev.data.result.verifiablePresentation);\n }\n else {\n console.warn(`VC: WARNING: received a verified credential correlated with a different request - ignoring`);\n }\n }\n }\n else {\n console.warn(`VC: WARNING: expected origin '${url.origin}', got '${ev.origin}' (ignoring)`);\n }\n };\n}\nfunction onSuccess(resolve) {\n return (result) => {\n cleanUp();\n resolve(result);\n };\n}\nfunction onError(reject) {\n return (err) => {\n cleanUp();\n reject(err);\n };\n}\nfunction checkInterruption(reject) {\n if (iiWindow) {\n if (iiWindow.closed) {\n reject(\"II reason was closed\");\n cleanUp();\n }\n else {\n window.setTimeout(() => checkInterruption(reject), INTERRUPT_CHECK_INTERVAL);\n }\n }\n}\nexport function verifyCredential(iiUrl, principal, issuerOrigin, issuerCanisterId, credentialType, credentialArguments, derivationOrigin) {\n return new Promise((resolve, reject) => {\n cleanUp();\n console.debug(\"VC: about to verify credential\", iiUrl, principal, issuerOrigin, issuerCanisterId, credentialType);\n reqId = reqId + 1;\n const url = new URL(iiUrl);\n url.pathname = \"vc-flow/\";\n console.debug(\"VC: opening II at url\", url.toString());\n eventHandler = getEventHandler(reqId, principal, issuerOrigin, issuerCanisterId, credentialType, credentialArguments, derivationOrigin, url, onSuccess(resolve), onError(reject));\n window.addEventListener(\"message\", eventHandler);\n iiWindow = window.open(url);\n checkInterruption(reject);\n });\n}\n","// Taken from here - https://stackoverflow.com/a/6041965\nconst URL_REGEX = new RegExp((`(https?):\\\\/\\\\/([\\\\w_-]+(?:(?:\\\\.[\\\\w_-]+)+))([\\\\w.,@?^=%&:\\\\/~+#-]*[\\\\w@?^=%&\\\\/~+#-])`), \"g\");\nexport function extractUrls(text) {\n const matches = text.match(URL_REGEX);\n if (!matches)\n return [];\n return [...matches.reduce((set, next) => {\n set.add(next);\n return set;\n }, new Set())];\n}\nexport function addQueryStringParam(name, val) {\n const path = window.location.pathname;\n const qs = new URLSearchParams(window.location.search);\n qs.set(name, val);\n return [...qs.keys()].length > 0 ? `${path}?${qs}` : path;\n}\n","import { extractUrls } from \"./url\";\nconst LINK_REMOVED = \"#LINK_REMOVED\";\nconst LINK_REMOVED_REGEX = new RegExp(LINK_REMOVED, \"g\");\nexport function stripLinkDisabledMarker(text) {\n return text.replace(LINK_REMOVED_REGEX, () => \"\");\n}\nexport function extractEnabledLinks(text) {\n return extractLinkUrls(text)\n .filter(({ url: _, preview }) => preview)\n .map(({ url, preview: _ }) => url);\n}\nexport function extractDisabledLinks(text) {\n return extractLinkUrls(text)\n .filter(({ url: _, preview }) => !preview)\n .map(({ url, preview: _ }) => url);\n}\nexport function disableLinksInText(text, urls) {\n for (const url of urls) {\n if (!url.endsWith(LINK_REMOVED)) {\n text = text.replace(url, url + LINK_REMOVED);\n }\n }\n return text;\n}\nfunction extractLinkUrls(text) {\n const links = [];\n for (const url of extractUrls(text)) {\n if (url.endsWith(LINK_REMOVED)) {\n links.push({ url: url.substring(0, url.length - LINK_REMOVED.length), preview: false });\n }\n else {\n links.push({ url: url, preview: true });\n }\n }\n return links;\n}\n","import { addMessages } from \"svelte-i18n\";\nexport function applyTranslationCorrection(locale, key, value) {\n addMessages(locale, toLocaleDictionary(key, value));\n}\n/**\n * This takes a record where the key is the dotted path e.g. \"a.b.c\" with a value and converts\n * it to a nested dictionary as used by svelte-i18n e.g. { a: { b: { c: value }}}\n */\nfunction toLocaleDictionary(key, value) {\n const expanded = {};\n const keyParts = key.split(\".\");\n let level = expanded;\n keyParts.forEach((nestedKey, i) => {\n if (!level[nestedKey]) {\n if (i === keyParts.length - 1) {\n level[nestedKey] = value;\n }\n else {\n level[nestedKey] = {};\n }\n }\n level = level[nestedKey];\n });\n return expanded;\n}\n","/** For various reasons, we need to (attempt to) figure out roughly where the user is\n */\nconst MAX_RETRIES = 5;\nfunction primaryApi() {\n return fetch(\"https://api.ip.sb/geoip\")\n .then((resp) => {\n if (!resp.ok) {\n console.debug(\"GEO: error getting ip from ip location\");\n throw new Error(`Failed to get location data from the preferred service: ${resp.status}, ${resp.statusText}`);\n }\n return resp.json();\n })\n .then((json) => json.country_code);\n}\nfunction secondaryApi() {\n const BASE_URL = \"https://api.iplocation.net\";\n return fetch(`${BASE_URL}/?cmd=get-ip`)\n .then((resp) => {\n if (!resp.ok) {\n console.debug(\"GEO: error getting ip from ip location\");\n throw new Error(\"Failed to fetch ip from IP Location\");\n }\n return resp.json();\n })\n .then(({ ip }) => fetch(`${BASE_URL}/?ip=${ip}`))\n .then((resp) => {\n if (!resp.ok) {\n console.debug(\"GEO: error getting location from ip location\");\n throw new Error(\"Failed to fetch user location from IP Location\");\n }\n return resp.json();\n })\n .then((json) => json.country_code2);\n}\nexport function getUserCountryCode(retries = 0, delay = 50) {\n return primaryApi().catch((primaryErr) => {\n return secondaryApi().catch((secondaryErr) => {\n // this means that *both* apis have failed\n if (retries >= MAX_RETRIES) {\n throw new Error(`Unable to determine the user's country code: ${primaryErr}, ${secondaryErr}`);\n }\n return new Promise((resolve) => {\n setTimeout(() => {\n getUserCountryCode(retries + 1, delay * 2).then(resolve);\n }, delay);\n });\n });\n });\n}\n","import { WebAuthnIdentity } from \"@dfinity/identity\";\nimport borc from \"borc\";\nimport { DER_COSE_OID, SignIdentity, unwrapDER, } from \"@dfinity/agent\";\nexport async function createWebAuthnIdentity(origin, saveKeyInCacheFn) {\n const opts = webAuthnCreationOptions(origin);\n const credential = (await navigator.credentials.create({\n publicKey: opts,\n }));\n if (credential == null || credential.type !== \"public-key\") {\n throw new Error(\"Failed to create a WebAuthn identity\");\n }\n const response = credential.response;\n const publicKey = response.getPublicKey();\n if (response.attestationObject == null || publicKey == null) {\n throw new Error(\"Invalid attestation response\");\n }\n const attObject = borc.decodeFirst(new Uint8Array(response.attestationObject));\n const authenticatorAttachment = credential.authenticatorAttachment === \"platform\" ? \"platform\" : \"cross-platform\";\n const identity = new WebAuthnIdentity(credential.rawId, authDataToCose(attObject.authData), authenticatorAttachment);\n // A guid identifying the model of the authenticator (eg. fbfc3007-154e-4ecc-8c0b-6e020557d7bd = iCloud Keychain)\n const aaguid = new Uint8Array(response.getAuthenticatorData().slice(37, 53));\n await saveKeyInCacheFn({\n publicKey: new Uint8Array(identity.getPublicKey().toDer()),\n credentialId: new Uint8Array(credential.rawId),\n origin,\n crossPlatform: authenticatorAttachment === \"cross-platform\",\n aaguid,\n });\n return identity;\n}\nexport class MultiWebAuthnIdentity extends SignIdentity {\n constructor(rpId, lookupPubKeyFn) {\n super();\n this.rpId = rpId;\n this.lookupPubKeyFn = lookupPubKeyFn;\n this._actualIdentity = undefined;\n }\n getPublicKey() {\n return this.innerIdentity().getPublicKey();\n }\n innerIdentity() {\n if (this._actualIdentity === undefined) {\n throw new Error(\"cannot use innerIdentity() before a successful sign()\");\n }\n else {\n return this._actualIdentity;\n }\n }\n async sign(blob) {\n if (this._actualIdentity !== undefined) {\n return this._actualIdentity.sign(blob);\n }\n const options = {\n publicKey: {\n challenge: blob,\n userVerification: \"preferred\",\n rpId: this.rpId,\n },\n };\n const result = (await navigator.credentials.get(options));\n if (result == null) {\n throw new Error(\"internal error\");\n }\n const pubkey = await this.lookupPubKeyFn(new Uint8Array(result.rawId));\n this._actualIdentity = new WebAuthnIdentity(result.rawId, unwrapDER(pubkey, DER_COSE_OID), undefined);\n const response = result.response;\n const cbor = borc.encode(new borc.Tagged(55799, {\n authenticator_data: new Uint8Array(response.authenticatorData),\n client_data_json: new TextDecoder().decode(response.clientDataJSON),\n signature: new Uint8Array(response.signature),\n }));\n // eslint-disable-next-line\n if (!cbor) {\n throw new Error(\"failed to encode cbor\");\n }\n return new Uint8Array(cbor).buffer;\n }\n}\nfunction webAuthnCreationOptions(rpId) {\n const now = new Date();\n const year = now.getFullYear().toString().substring(2);\n const month = (now.getMonth() + 1).toString().padStart(2, \"0\");\n const day = now.getDate().toString().padStart(2, \"0\");\n const hour = now.getHours().toString().padStart(2, \"0\");\n const minutes = now.getMinutes().toString().padStart(2, \"0\");\n const suffix = year + month + day + hour + minutes;\n return {\n authenticatorSelection: {\n userVerification: \"preferred\",\n requireResidentKey: true,\n },\n excludeCredentials: [],\n challenge: window.crypto.getRandomValues(new Uint8Array(16)),\n pubKeyCredParams: [\n {\n type: \"public-key\",\n // alg: PubKeyCoseAlgo.ECDSA_WITH_SHA256\n alg: -7,\n },\n {\n type: \"public-key\",\n // alg: PubKeyCoseAlgo.RSA_WITH_SHA256\n alg: -257,\n },\n ],\n rp: {\n name: \"OpenChat\",\n id: rpId,\n },\n user: {\n id: window.crypto.getRandomValues(new Uint8Array(16)),\n name: `OpenChat-${suffix}`,\n displayName: `OpenChat-${suffix}`,\n },\n };\n}\nfunction authDataToCose(authData) {\n const dataView = new DataView(new ArrayBuffer(2));\n const idLenBytes = authData.slice(53, 55);\n [...new Uint8Array(idLenBytes)].forEach((v, i) => dataView.setUint8(i, v));\n const credentialIdLength = dataView.getUint16(0);\n // Get the public key object.\n return authData.slice(55 + credentialIdLength);\n}\n","/* eslint-disable no-case-declarations */\nimport { gaTrack } from \"./utils/ga\";\nimport { DER_COSE_OID, unwrapDER } from \"@dfinity/agent\";\nimport { AuthClient } from \"@dfinity/auth-client\";\nimport { get } from \"svelte/store\";\nimport DRange from \"drange\";\nimport { canChangeRoles as canChangeCommunityRoles, canBlockUsers as canBlockCommunityUsers, canUnblockUsers as canUnblockCommunityUsers, canInviteUsers as canInviteCommunityUsers, canRemoveMembers as canRemoveCommunityMembers, canDeleteCommunity, canEditCommunity, canChangeCommunityPermissions, canCreatePublicChannel, canCreatePrivateChannel, canManageUserGroups, isCommunityLapsed, } from \"./utils/community\";\nimport { buildUserAvatarUrl, canBlockUsers, canAddMembers, canChangePermissions, canChangeRoles, canDeleteGroup, canDeleteOtherUsersMessages, canEditGroupDetails, canForward, canInviteUsers, canLeaveGroup, canChangeVisibility, canPinMessages, canReactToMessages, canRemoveMembers, canMentionAllMembers, canUnblockUsers, containsReaction, createMessage, findMessageById, getMembersString, groupBySender, groupChatFromCandidate, groupEvents, groupMessagesByDate, makeRtcConnections, mergeServerEvents, messageIsReadByThem, metricsEqual, sameUser, isFrozen, isPreviewing, buildTransactionLink, buildTransactionUrlByIndex, buildCryptoTransferText, mergeSendMessageResponse, serialiseMessageForRtc, canConvertToCommunity, canImportToCommunity, buildIdenticonUrl, getMessageText, diffGroupPermissions, canSendDirectMessage, canSendGroupMessage, permittedMessagesInDirectChat, permittedMessagesInGroup, activeUserIdFromEvent, doesMessageFailFilter, canStartVideoCalls, buildBlobUrl, isLapsed, isEventKindHidden, } from \"./utils/chat\";\nimport { buildUsernameList, compareIsNotYouThenUsername, compareUsername, formatLastOnlineDate, nullUser, userAvatarUrl, } from \"./utils/user\";\nimport { rtcConnectionsManager } from \"./utils/rtcConnectionsManager\";\nimport { showTrace } from \"./utils/profiling\";\nimport { CachePrimer } from \"./utils/cachePrimer\";\nimport { Poller } from \"./utils/poller\";\nimport { RecentlyActiveUsersTracker } from \"./utils/recentlyActiveUsersTracker\";\nimport { blockedUsers } from \"./stores/blockedUsers\";\nimport { undeletingMessagesStore } from \"./stores/undeletingMessages\";\nimport { chatsInitialised, chatsLoading, chatStateStore, clearSelectedChat, createDirectChat, nextEventAndMessageIndexes, setSelectedChat, threadServerEventsStore, nextEventAndMessageIndexesForThread, clearServerEvents, confirmedEventIndexesLoaded, addGroupPreview, removeUninitializedDirectChat, removeGroupPreview, groupPreviewsStore, isContiguous, confirmedThreadEventIndexesLoadedStore, isContiguousInThread, selectedMessageContext, } from \"./stores/chat\";\nimport { bitcoinAddress, cryptoBalance, cryptoLookup, exchangeRatesLookupStore, lastCryptoSent, nervousSystemLookup, swappableTokensStore, } from \"./stores/crypto\";\nimport { disableAllProposalFilters, enableAllProposalFilters, toggleProposalFilter, toggleProposalFilterMessageExpansion, } from \"./stores/filteredProposals\";\nimport { lastOnlineDates } from \"./stores/lastOnlineDates\";\nimport { localChatSummaryUpdates } from \"./stores/localChatSummaryUpdates\";\nimport { localMessageUpdates } from \"./stores/localMessageUpdates\";\nimport { messageActivityFeedReadUpToLocally, messagesRead, startMessagesReadTracker, } from \"./stores/markRead\";\nimport { askForNotificationPermission, initNotificationStores, setSoftDisabled, } from \"./stores/notifications\";\nimport { recommendedGroupExclusions } from \"./stores/recommendedGroupExclusions\";\nimport { proposalTallies } from \"./stores/proposalTallies\";\nimport { storageStore, updateStorageLimit } from \"./stores/storage\";\nimport { isTyping, typing } from \"./stores/typing\";\nimport { unconfirmed, unconfirmedReadByThem } from \"./stores/unconfirmed\";\nimport { openChatBotUser, proposalsBotUser, specialUsers, userStore, currentUser, anonymousUserSummary, videoCallBotUser, airdropBotUser, } from \"./stores/user\";\nimport { userCreatedStore } from \"./stores/userCreated\";\nimport { dataToBlobUrl } from \"./utils/blob\";\nimport { formatTokens, validateTokenInput } from \"./utils/cryptoFormatter\";\nimport { formatMessageDate, toDateString, toDatetimeString, toLongDateString, toShortTimeString, toMonthString, } from \"./utils/date\";\nimport formatFileSize from \"./utils/fileSize\";\nimport { calculateMediaDimensions } from \"./utils/layout\";\nimport { groupBy, groupWhile, keepMax, partition, toRecord, toRecord2 } from \"./utils/list\";\nimport { audioRecordingMimeType, containsSocialVideoLink, DIAMOND_MAX_SIZES, fillMessage, FREE_MAX_SIZES, isSocialVideoLink, messageContentFromFile, twitterLinkRegex, youtubeRegex, spotifyRegex, } from \"./utils/media\";\nimport { mergeKeepingOnlyChanged } from \"./utils/object\";\nimport { createRemoteVideoEndedEvent, createRemoteVideoStartedEvent, filterWebRtcMessage, parseWebRtcMessage, } from \"./utils/rtc\";\nimport { durationFromMilliseconds, formatDisappearingMessageTime, formatDuration, formatRelativeTime, formatTimeRemaining, } from \"./utils/time\";\nimport { initialiseTracking, startTrackingSession, trackEvent } from \"./utils/tracking\";\nimport { startSwCheckPoller } from \"./utils/updateSw\";\nimport { AttachGif, ChatsUpdated, ChatUpdated, ChitEarnedEvent, CreatePoll, CreateTestMessages, LoadedMessageWindow, LoadedNewMessages, LoadedPreviousMessages, ReactionSelected, RegisterBot, RemoteVideoCallStartedEvent, RemoveBot, SearchChat, SelectedChatInvalid, SendingMessage, SendMessageFailed, SentMessage, SummonWitch, ThreadClosed, ThreadSelected, TokenTransfer, UpdateBot, UserLoggedIn, UserSuspensionChanged, VideoCallMessageUpdated, } from \"./events\";\nimport { LiveState } from \"./liveState\";\nimport { getTypingString, startTyping, stopTyping } from \"./utils/chat\";\nimport { indexIsInRanges } from \"./utils/range\";\nimport { Stream, AuthProvider, missingUserIds, getTimeUntilSessionExpiryMs, userIdsFromEvents, getContentAsFormattedText, indexRangeForChat, getDisplayDate, userStatus, compareRoles, E8S_PER_TOKEN, ChatMap, chatIdentifiersEqual, chatIdentifierToString, MessageContextMap, messageContextsEqual, communityRoles, isNeuronGate, toTitleCase, CommonResponses, defaultChatRules, userOrUserGroupName, userOrUserGroupId, extractUserIdsFromMentions, isMessageNotification, userIdsFromTransactions, contentTypeToPermission, mapAcceptP2PSwapResponseToStatus, mapCancelP2PSwapResponseToStatus, anonymousUser, ANON_USER_ID, isPaymentGate, ONE_DAY, ONE_MINUTE_MILLIS, ONE_HOUR, LEDGER_CANISTER_CHAT, OPENCHAT_VIDEO_CALL_USER_ID, IdentityStorage, NoMeetingToJoin, featureRestricted, buildDelegationIdentity, toDer, updateCreatedUser, LARGE_GROUP_THRESHOLD, isCompositeGate, shouldPreprocessGate, deletedUser, OPENCHAT_BOT_USER_ID, isEditableContent, isCaptionedContent, parseBigInt, random64, random128, WEBAUTHN_ORIGINATING_CANISTER, } from \"openchat-shared\";\nimport { AIRDROP_BOT_USER_ID } from \"./constants\";\nimport { failedMessagesStore } from \"./stores/failedMessages\";\nimport { diamondDurationToMs } from \"./stores/diamond\";\nimport { addCommunityPreview, communityPreviewsStore, communityStateStore, nextCommunityIndex, removeCommunityPreview, } from \"./stores/community\";\nimport { globalStateStore, setGlobalState, chatListScopeStore, chitStateStore, mergeCombinedUnreadCounts, } from \"./stores/global\";\nimport { localCommunitySummaryUpdates } from \"./stores/localCommunitySummaryUpdates\";\nimport { hasFlag } from \"./stores/flagStore\";\nimport { hasOwnerRights } from \"./utils/permissions\";\nimport { isDisplayNameValid, isUsernameValid } from \"./utils/validation\";\nimport { verifyCredential } from \"./utils/credentials\";\nimport { messageFiltersStore } from \"./stores/messageFilters\";\nimport { draftMessagesStore } from \"./stores/draftMessages\";\nimport { disableLinksInText, extractDisabledLinks, extractEnabledLinks, stripLinkDisabledMarker, } from \"./utils/linkPreviews\";\nimport { applyTranslationCorrection } from \"./stores/i18n\";\nimport { getUserCountryCode } from \"./utils/location\";\nimport { isBalanceGate, isCredentialGate } from \"openchat-shared\";\nimport { DelegationChain, DelegationIdentity, ECDSAKeyIdentity, WebAuthnIdentity, } from \"@dfinity/identity\";\nimport { capturePinNumberStore, pinNumberFailureStore, pinNumberRequiredStore, } from \"./stores/pinNumber\";\nimport { captureRulesAcceptanceStore } from \"./stores/rules\";\nimport { canRetryMessage, isTransfer } from \"openchat-shared\";\nimport { initialiseMostRecentSentMessageTimes, shouldThrottle } from \"./stores/throttling\";\nimport { storeEmailSignInSession } from \"openchat-shared\";\nimport { getEmailSignInSession } from \"openchat-shared\";\nimport { removeEmailSignInSession } from \"openchat-shared\";\nimport { localGlobalUpdates } from \"./stores/localGlobalUpdates\";\nimport { identityState } from \"./stores/identity\";\nimport { addQueryStringParam } from \"./utils/url\";\nimport { setExternalBots } from \"./stores\";\nimport { createWebAuthnIdentity, MultiWebAuthnIdentity } from \"./utils/webAuthn\";\nimport { ephemeralMessages } from \"./stores/ephemeralMessages\";\nimport { minutesOnlineStore } from \"./stores/minutesOnline\";\nexport const DEFAULT_WORKER_TIMEOUT = 1000 * 90;\nconst MARK_ONLINE_INTERVAL = 61 * 1000;\nconst SESSION_TIMEOUT_NANOS = BigInt(30 * 24 * 60 * 60 * 1000 * 1000 * 1000); // 30 days\nconst MAX_TIMEOUT_MS = Math.pow(2, 31) - 1;\nconst CHAT_UPDATE_INTERVAL = 5000;\nconst CHAT_UPDATE_IDLE_INTERVAL = ONE_MINUTE_MILLIS;\nconst BOT_UPDATE_INTERVAL = ONE_MINUTE_MILLIS;\nconst BOT_UPDATE_IDLE_INTERVAL = 5 * ONE_MINUTE_MILLIS;\nconst USER_UPDATE_INTERVAL = ONE_MINUTE_MILLIS;\nconst REGISTRY_UPDATE_INTERVAL = 2 * ONE_MINUTE_MILLIS;\nconst EXCHANGE_RATE_UPDATE_INTERVAL = 5 * ONE_MINUTE_MILLIS;\nconst MAX_USERS_TO_UPDATE_PER_BATCH = 500;\nconst MAX_INT32 = Math.pow(2, 31) - 1;\nexport class OpenChat extends EventTarget {\n #worker;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #pending; // in-flight requests\n #unresolved; // requests that never resolved\n #connectedToWorker;\n #authIdentityStorage;\n #authPrincipal;\n #ocIdentityStorage;\n #authClient;\n #webAuthnKey;\n #ocIdentity;\n #userLocation;\n #liveState;\n #logger;\n #lastOnlineDatesPending;\n #lastOnlineDatesPromise;\n #cachePrimer;\n #membershipCheck;\n #referralCode;\n #userLookupForMentions;\n #chatsPoller;\n #botsPoller;\n #registryPoller;\n #userUpdatePoller;\n #exchangeRatePoller;\n #recentlyActiveUsersTracker;\n #inflightMessagePromises;\n constructor(config) {\n super();\n this.config = config;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.#pending = new Map(); // in-flight requests\n this.#unresolved = new Map(); // requests that never resolved\n this.#connectedToWorker = false;\n this.#webAuthnKey = undefined;\n this.#lastOnlineDatesPending = new Set();\n this.#cachePrimer = undefined;\n this.#referralCode = undefined;\n this.#userLookupForMentions = undefined;\n this.#chatsPoller = undefined;\n this.#botsPoller = undefined;\n this.#registryPoller = undefined;\n this.#userUpdatePoller = undefined;\n this.#exchangeRatePoller = undefined;\n this.#recentlyActiveUsersTracker = new RecentlyActiveUsersTracker();\n this.#inflightMessagePromises = new Map();\n this.currentAirdropChannel = undefined;\n /**\n * Wrap a bunch of pure utility functions\n */\n this.showTrace = showTrace;\n this.userAvatarUrl = userAvatarUrl;\n this.updateStorageLimit = updateStorageLimit;\n this.formatTokens = formatTokens;\n this.validateTokenInput = validateTokenInput;\n this.parseBigInt = parseBigInt;\n this.userIdsFromEvents = userIdsFromEvents;\n this.missingUserIds = missingUserIds;\n this.userOrUserGroupName = userOrUserGroupName;\n this.userOrUserGroupId = userOrUserGroupId;\n this.extractUserIdsFromMentions = extractUserIdsFromMentions;\n this.toRecord2 = toRecord2;\n this.toRecord = toRecord;\n this.partition = partition;\n this.groupBySender = groupBySender;\n this.groupBy = groupBy;\n this.getTypingString = getTypingString;\n this.getMessageText = getMessageText;\n this.contentTypeToPermission = contentTypeToPermission;\n this.stripLinkDisabledMarker = stripLinkDisabledMarker;\n this.extractEnabledLinks = extractEnabledLinks;\n this.disableLinksInText = disableLinksInText;\n this.canChangeVisibility = canChangeVisibility;\n this.hasOwnerRights = hasOwnerRights;\n this.#createMessage = createMessage;\n this.#findMessageById = findMessageById;\n this.canForward = canForward;\n this.containsReaction = containsReaction;\n this.groupEvents = groupEvents;\n this.startTyping = startTyping;\n this.stopTyping = stopTyping;\n this.isTyping = isTyping;\n this.trackEvent = trackEvent;\n this.twitterLinkRegex = twitterLinkRegex;\n this.youtubeRegex = youtubeRegex;\n this.spotifyRegex = spotifyRegex;\n this.metricsEqual = metricsEqual;\n this.getMembersString = getMembersString;\n this.compareIsNotYouThenUsername = compareIsNotYouThenUsername;\n this.compareUsername = compareUsername;\n this.formatDuration = formatDuration;\n this.durationFromMilliseconds = durationFromMilliseconds;\n this.nullUser = nullUser;\n this.toTitleCase = toTitleCase;\n this.enableAllProposalFilters = enableAllProposalFilters;\n this.disableAllProposalFilters = disableAllProposalFilters;\n this.toggleProposalFilter = toggleProposalFilter;\n this.formatTimeRemaining = formatTimeRemaining;\n this.formatLastOnlineDate = formatLastOnlineDate;\n this.buildUserAvatarUrl = buildUserAvatarUrl;\n this.buildUsernameList = buildUsernameList;\n this.groupMessagesByDate = groupMessagesByDate;\n this.fillMessage = fillMessage;\n this.audioRecordingMimeType = audioRecordingMimeType;\n this.isDisplayNameValid = isDisplayNameValid;\n this.isUsernameValid = isUsernameValid;\n this.clearSelectedChat = clearSelectedChat;\n this.diffGroupPermissions = diffGroupPermissions;\n this.formatFileSize = formatFileSize;\n this.toggleProposalFilterMessageExpansion = toggleProposalFilterMessageExpansion;\n this.groupWhile = groupWhile;\n this.sameUser = sameUser;\n this.getDisplayDate = getDisplayDate;\n this.isSocialVideoLink = isSocialVideoLink;\n this.containsSocialVideoLink = containsSocialVideoLink;\n this.calculateMediaDimensions = calculateMediaDimensions;\n this.dataToBlobUrl = dataToBlobUrl;\n this.askForNotificationPermission = askForNotificationPermission;\n this.setSoftDisabled = setSoftDisabled;\n this.gaTrack = gaTrack;\n this.#botsLoaded = false;\n // **** End of Communities stuff\n this.diamondDurationToMs = diamondDurationToMs;\n this.isEventKindHidden = isEventKindHidden;\n this.mergeCombinedUnreadCounts = mergeCombinedUnreadCounts;\n this.#logger = config.logger;\n this.#liveState = new LiveState();\n console.log(\"OpenChatConfig: \", config);\n specialUsers.set(new Map([\n [OPENCHAT_BOT_USER_ID, openChatBotUser],\n [OPENCHAT_VIDEO_CALL_USER_ID, videoCallBotUser],\n [AIRDROP_BOT_USER_ID, airdropBotUser],\n [ANON_USER_ID, anonymousUserSummary],\n [config.proposalBotCanister, proposalsBotUser(config.proposalBotCanister)],\n ]));\n initialiseTracking(config);\n this.#authIdentityStorage = IdentityStorage.createForAuthIdentity();\n this.#ocIdentityStorage = IdentityStorage.createForOcIdentity();\n this.#authClient = AuthClient.create({\n idleOptions: {\n disableIdle: true,\n disableDefaultIdleCallback: true,\n },\n storage: this.#authIdentityStorage.storage,\n });\n this.#authClient\n .then((c) => c.getIdentity())\n .then((authIdentity) => this.#loadedAuthenticationIdentity(authIdentity, undefined));\n }\n get AuthPrincipal() {\n if (this.#authPrincipal === undefined) {\n throw new Error(\"Trying to access the _authPrincipal before it has been set up\");\n }\n return this.#authPrincipal;\n }\n clearCachedData() {\n return this.#sendRequest({\n kind: \"clearCachedData\",\n });\n }\n deleteCurrentUser(delegation) {\n if (!this.#liveState.anonUser) {\n return this.#sendRequest({\n kind: \"deleteUser\",\n userId: this.#liveState.user.userId,\n delegation,\n }).then((success) => {\n if (success) {\n this.clearCachedData().finally(() => this.logout());\n }\n return success;\n });\n }\n else {\n return Promise.resolve(false);\n }\n }\n #chatUpdated(chatId, updatedEvents) {\n if (this.#liveState.selectedChatId === undefined ||\n !chatIdentifiersEqual(chatId, this.#liveState.selectedChatId)) {\n return;\n }\n const serverChat = this.#liveState.selectedServerChat;\n if (serverChat === undefined)\n return;\n // The chat summary has been updated which means the latest message may be new\n const latestMessage = serverChat.latestMessage;\n if (latestMessage !== undefined &&\n latestMessage.event.sender !== this.#liveState.user.userId) {\n this.#handleConfirmedMessageSentByOther(serverChat, latestMessage, undefined);\n }\n this.#refreshUpdatedEvents(serverChat, updatedEvents);\n this.#loadChatDetails(serverChat);\n this.dispatchEvent(new ChatUpdated({ chatId, threadRootMessageIndex: undefined }));\n }\n clearPostLoginState() {\n identityState.update((state) => ({ ...state, postLogin: undefined }));\n }\n updateIdentityState(newState) {\n identityState.update((previous) => {\n return {\n ...newState,\n postLogin: newState.postLogin ?? previous.postLogin,\n };\n });\n }\n async #loadedAuthenticationIdentity(id, authProvider) {\n currentUser.set(anonymousUser());\n chatsInitialised.set(false);\n const anon = id.getPrincipal().isAnonymous();\n const authPrincipal = id.getPrincipal().toString();\n this.#authPrincipal = anon ? undefined : authPrincipal;\n this.updateIdentityState(anon ? { kind: \"anon\" } : { kind: \"loading_user\" });\n const connectToWorkerResponse = await this.#connectToWorker(authPrincipal, authProvider);\n if (!anon) {\n if (connectToWorkerResponse === \"oc_identity_not_found\") {\n if (authProvider !== AuthProvider.II &&\n authProvider !== AuthProvider.EMAIL &&\n authProvider !== AuthProvider.PASSKEY) {\n this.updateIdentityState({ kind: \"challenging\" });\n return;\n }\n await this.#sendRequest({\n kind: \"createOpenChatIdentity\",\n webAuthnCredentialId: this.#webAuthnKey?.credentialId,\n challengeAttempt: undefined,\n });\n }\n this.#ocIdentity = await this.#ocIdentityStorage.get(authPrincipal);\n }\n else {\n await this.#ocIdentityStorage.remove();\n }\n this.#loadUser();\n }\n logError(message, error, ...optionalParams) {\n this.#logger.error(message, error, ...optionalParams);\n }\n logMessage(message, ...optionalParams) {\n this.#logger.log(message, ...optionalParams);\n }\n logDebug(message, ...optionalParams) {\n this.#logger.debug(message, ...optionalParams);\n }\n getAuthClientOptions(provider) {\n return {\n identityProvider: this.buildAuthProviderUrl(provider),\n maxTimeToLive: SESSION_TIMEOUT_NANOS,\n derivationOrigin: this.config.iiDerivationOrigin,\n };\n }\n login() {\n this.updateIdentityState({ kind: \"logging_in\" });\n const authProvider = this.#liveState.selectedAuthProvider;\n this.#authClient.then((c) => {\n c.login({\n ...this.getAuthClientOptions(authProvider),\n onSuccess: () => this.#loadedAuthenticationIdentity(c.getIdentity(), authProvider),\n onError: (err) => {\n this.updateIdentityState({ kind: \"anon\" });\n console.warn(\"Login error from auth client: \", err);\n },\n });\n });\n }\n buildAuthProviderUrl(authProvider) {\n switch (authProvider) {\n case AuthProvider.II:\n return this.config.internetIdentityUrl;\n case AuthProvider.NFID:\n return (this.config.nfidUrl +\n \"&applicationLogo=\" +\n encodeURIComponent(\"https://oc.app/apple-touch-icon.png\") +\n \"#authorize\");\n }\n }\n // function buildWindowOpenerFeatures(authProvider: AuthProvider): string {\n // const isII = authProvider === AuthProvider.II;\n // const screenWidth = window.innerWidth;\n // const screenHeight = window.innerHeight;\n // const width = Math.min(screenWidth, isII ? 525 : 465);\n // const height = Math.min(screenHeight, isII ? 800 : 705);\n // const left = (screenWidth - width) / 2;\n // const top = (screenHeight - height) / 2;\n // return `popup=1,toolbar=0,location=0,menubar=0,width=${width},height=${height},left=${left},top=${top}`;\n // }\n #startSession(identity) {\n if (this.#liveState.anonUser) {\n return new Promise((_) => {\n console.debug(\"ANON: creating an anon session which will never expire\");\n });\n }\n startTrackingSession(identity);\n return new Promise((resolve) => {\n const durationUntilSessionExpireMS = getTimeUntilSessionExpiryMs(identity);\n const durationUntilLogoutMs = durationUntilSessionExpireMS - ONE_MINUTE_MILLIS;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n function timeout() {\n console.debug(\"SESSION: session has timed out after \", durationUntilLogoutMs, \" based on expiry after \", durationUntilSessionExpireMS);\n self.logout().then(resolve);\n }\n if (durationUntilLogoutMs <= 5 * ONE_MINUTE_MILLIS) {\n timeout();\n }\n else {\n console.debug(\"SESSION: session started and set to expire in \", durationUntilLogoutMs, \" based on expiry in \", durationUntilSessionExpireMS);\n window.setTimeout(timeout, Math.min(MAX_TIMEOUT_MS, durationUntilLogoutMs));\n }\n });\n }\n async submitChallenge(challengeAttempt) {\n if (this.#authPrincipal === undefined) {\n return false;\n }\n const resp = await this.#sendRequest({\n kind: \"createOpenChatIdentity\",\n webAuthnCredentialId: undefined,\n challengeAttempt,\n }).catch(() => \"challenge_failed\");\n if (resp !== \"success\") {\n return false;\n }\n this.#ocIdentity = await this.#ocIdentityStorage\n .get(this.#authPrincipal)\n .catch(() => undefined);\n this.#loadUser();\n return true;\n }\n async #loadUser() {\n this.#startRegistryPoller();\n if (this.#ocIdentity === undefined) {\n // short-circuit if we *know* that the user is anonymous\n this.onCreatedUser(anonymousUser());\n return;\n }\n this.#sendRequest({ kind: \"loadFailedMessages\" }).then((res) => failedMessagesStore.initialise(MessageContextMap.fromMap(res)));\n this.getCurrentUser()\n .then((user) => {\n switch (user.kind) {\n case \"unknown_user\":\n this.onCreatedUser(anonymousUser());\n this.updateIdentityState({ kind: \"registering\" });\n break;\n case \"created_user\":\n this.onCreatedUser(user);\n break;\n }\n })\n .catch((e) => {\n if (e.code === 403) {\n // This happens locally if you run a new instance of the IC and have an identity based on the\n // previous version's root key in the cache\n this.logout();\n }\n });\n this.#sendRequest({ kind: \"getAllCachedUsers\" }).then((users) => userStore.set(users));\n }\n userIsDiamond(userId) {\n const user = this.#liveState.userStore.get(userId);\n if (user === undefined || user.kind === \"bot\")\n return false;\n if (userId === this.#liveState.user.userId)\n return this.#liveState.isDiamond;\n return user.diamondStatus !== \"inactive\";\n }\n userIsLifetimeDiamond(userId) {\n const user = this.#liveState.userStore.get(userId);\n if (user === undefined || user.kind === \"bot\")\n return false;\n if (userId === this.#liveState.user.userId)\n return this.#liveState.isLifetimeDiamond;\n return user.diamondStatus === \"lifetime\";\n }\n diamondExpiresIn(now, locale) {\n if (this.#liveState.diamondStatus.kind === \"active\") {\n return formatRelativeTime(now, locale, this.#liveState.diamondStatus.expiresAt);\n }\n }\n listNervousSystemFunctions(governanceCanisterId) {\n return this.#sendRequest({\n kind: \"listNervousSystemFunctions\",\n snsGovernanceCanisterId: governanceCanisterId,\n });\n }\n sendMarkReadRequest(req) {\n return this.#sendRequest({ kind: \"markMessagesRead\", payload: req });\n }\n chatEventsBatch(localUserIndex, requests) {\n return this.#sendRequest({\n kind: \"chatEventsBatch\",\n localUserIndex,\n requests,\n cachePrimer: true,\n });\n }\n maxMediaSizes() {\n return this.#liveState.isDiamond ? DIAMOND_MAX_SIZES : FREE_MAX_SIZES;\n }\n onRegisteredUser(user) {\n this.onCreatedUser(user);\n userStore.add({\n kind: user.isBot ? \"bot\" : \"user\",\n userId: user.userId,\n username: user.username,\n displayName: user.displayName,\n updated: user.updated,\n suspended: user.suspensionDetails !== undefined,\n diamondStatus: user.diamondStatus.kind,\n chitBalance: 0,\n totalChitEarned: 0,\n streak: 0,\n blobReference: user.blobReference,\n blobData: user.blobData,\n blobUrl: buildUserAvatarUrl(this.config.blobUrlPattern, user.userId, user.blobReference?.blobId ?? undefined),\n isUniquePerson: user.isUniquePerson,\n });\n }\n onCreatedUser(user) {\n currentUser.set(user);\n this.#setDiamondStatus(user.diamondStatus);\n initialiseMostRecentSentMessageTimes(this.#liveState.isDiamond);\n const id = this.#ocIdentity;\n this.#sendRequest({ kind: \"createUserClient\", userId: user.userId });\n startSwCheckPoller();\n if (id !== undefined) {\n this.#startSession(id).then(() => this.logout());\n }\n this.#startChatsPoller();\n this.#startBotsPoller();\n this.#startUserUpdatePoller();\n initNotificationStores();\n if (!this.#liveState.anonUser) {\n this.#startOnlinePoller();\n this.#startBtcBalanceUpdateJob();\n this.#sendRequest({ kind: \"getUserStorageLimits\" })\n .then(storageStore.set)\n .catch((err) => {\n console.warn(\"Unable to retrieve user storage limits\", err);\n });\n this.updateIdentityState({ kind: \"logged_in\" });\n this.dispatchEvent(new UserLoggedIn(user.userId));\n }\n }\n #startUserUpdatePoller() {\n this.#userUpdatePoller?.stop();\n this.#userUpdatePoller = new Poller(() => this.#updateUsers(), USER_UPDATE_INTERVAL, USER_UPDATE_INTERVAL);\n }\n pauseEventLoop() {\n this.#chatsPoller?.stop();\n }\n resumeEventLoop() {\n this.#startChatsPoller();\n }\n #startBotsPoller() {\n this.#botsPoller?.stop();\n this.#botsPoller = new Poller(() => this.#loadBots(), BOT_UPDATE_INTERVAL, BOT_UPDATE_IDLE_INTERVAL, true);\n }\n #startChatsPoller() {\n this.#chatsPoller?.stop();\n this.#chatsPoller = new Poller(() => this.#loadChats(), CHAT_UPDATE_INTERVAL, CHAT_UPDATE_IDLE_INTERVAL, true);\n // we need to load chats at least once if we are completely offline\n if (this.#liveState.offlineStore) {\n this.#loadChats();\n }\n }\n #startOnlinePoller() {\n if (!this.#liveState.anonUser) {\n new Poller(() => (this.#sendRequest({ kind: \"markAsOnline\" }) ?? Promise.resolve()).then((minutesOnline) => minutesOnlineStore.set(minutesOnline)), MARK_ONLINE_INTERVAL, undefined, true);\n }\n }\n #startRegistryPoller() {\n this.#registryPoller?.stop();\n this.#registryPoller = new Poller(() => this.#updateRegistry(), REGISTRY_UPDATE_INTERVAL, REGISTRY_UPDATE_INTERVAL, false);\n }\n #startExchangeRatePoller() {\n this.#exchangeRatePoller?.stop();\n this.#exchangeRatePoller = new Poller(() => this.#updateExchangeRates(), EXCHANGE_RATE_UPDATE_INTERVAL, EXCHANGE_RATE_UPDATE_INTERVAL, true);\n }\n async logout() {\n await Promise.all([\n this.#authClient.then((c) => c.logout()),\n this.#ocIdentityStorage.remove(),\n ]).then(() => window.location.replace(\"/\"));\n }\n async previouslySignedIn() {\n const KEY_STORAGE_IDENTITY = \"identity\";\n const identity = await this.#authIdentityStorage.storage.get(KEY_STORAGE_IDENTITY);\n return this.#liveState.userCreated && identity !== null;\n }\n generateIdentityChallenge() {\n return this.#sendRequest({\n kind: \"generateIdentityChallenge\",\n identityCanister: this.config.identityCanister,\n icUrl: this.config.icUrl ?? window.location.origin,\n }).catch(() => ({ kind: \"failed\" }));\n }\n unreadThreadMessageCount(chatId, threadRootMessageIndex, latestMessageIndex) {\n return messagesRead.unreadThreadMessageCount(chatId, threadRootMessageIndex, latestMessageIndex);\n }\n unreadMessageCount(chatId, latestMessageIndex) {\n return messagesRead.unreadMessageCount(chatId, latestMessageIndex);\n }\n unreadPinned(chatId, dateLastPinned) {\n return messagesRead.unreadPinned(chatId, dateLastPinned);\n }\n markThreadRead(chatId, threadRootMessageIndex, readUpTo) {\n messagesRead.markReadUpTo({ chatId, threadRootMessageIndex }, readUpTo);\n }\n markMessageRead(context, messageIndex, messageId) {\n if (messagesRead.isRead(context, messageIndex, messageId)) {\n return;\n }\n messagesRead.markMessageRead(context, messageIndex, messageId);\n const selectedChat = this.#liveState.selectedChat;\n if (selectedChat?.id === context.chatId &&\n messageId !== undefined &&\n selectedChat.kind === \"direct_chat\") {\n const rtc = {\n kind: \"remote_user_read_message\",\n messageId: messageId,\n id: selectedChat.id,\n userId: this.#liveState.user.userId,\n };\n this.#sendRtcMessage([selectedChat.id.userId], rtc);\n }\n }\n markPinnedMessagesRead(chatId, dateLastPinned) {\n messagesRead.markPinnedMessagesRead(chatId, dateLastPinned);\n }\n isMessageRead(context, messageIndex, messageId) {\n return messagesRead.isRead(context, messageIndex, messageId);\n }\n #sendRtcMessage(userIds, message) {\n rtcConnectionsManager.sendMessage(userIds, message);\n }\n #initWebRtc() {\n rtcConnectionsManager\n .init(this.#liveState.user.userId, this.config.meteredApiKey)\n .then((_) => {\n rtcConnectionsManager.subscribe((msg) => this.#handleWebRtcMessage(msg));\n });\n }\n previewChat(chatId) {\n switch (chatId.kind) {\n case \"group_chat\":\n return this.#sendRequest({ kind: \"getPublicGroupSummary\", chatId })\n .then((resp) => {\n if (resp.kind === \"success\" && !resp.group.frozen) {\n addGroupPreview(resp.group);\n return CommonResponses.success();\n }\n else if (resp.kind === \"group_moved\") {\n return resp;\n }\n return CommonResponses.failure();\n })\n .catch(() => {\n return CommonResponses.failure();\n });\n case \"channel\":\n return this.#sendRequest({ kind: \"getChannelSummary\", chatId })\n .then((resp) => {\n if (resp.kind === \"channel\") {\n addGroupPreview(resp);\n return CommonResponses.success();\n }\n return CommonResponses.failure();\n })\n .catch(() => CommonResponses.failure());\n }\n }\n toggleMuteNotifications(chatId, muted) {\n localChatSummaryUpdates.markUpdated(chatId, { notificationsMuted: muted });\n return this.#sendRequest({ kind: \"toggleMuteNotifications\", id: chatId, muted })\n .then((resp) => {\n if (resp !== \"success\") {\n localChatSummaryUpdates.markUpdated(chatId, { notificationsMuted: undefined });\n }\n return resp === \"success\";\n })\n .catch(() => {\n localChatSummaryUpdates.markUpdated(chatId, { notificationsMuted: undefined });\n return false;\n });\n }\n muteAllChannels(communityId) {\n const community = this.#liveState.communities.get(communityId);\n if (community === undefined) {\n return Promise.resolve(false);\n }\n community.channels.forEach((c) => localChatSummaryUpdates.markUpdated(c.id, { notificationsMuted: true }));\n return this.#sendRequest({ kind: \"toggleMuteNotifications\", id: communityId, muted: true })\n .then((resp) => {\n if (resp !== \"success\") {\n community.channels.forEach((c) => localChatSummaryUpdates.markUpdated(c.id, {\n notificationsMuted: undefined,\n }));\n }\n return resp === \"success\";\n })\n .catch(() => {\n community.channels.forEach((c) => localChatSummaryUpdates.markUpdated(c.id, { notificationsMuted: undefined }));\n return false;\n });\n }\n archiveChat(chatId) {\n localChatSummaryUpdates.markUpdated(chatId, { archived: true });\n return this.#sendRequest({ kind: \"archiveChat\", chatId })\n .then((resp) => {\n return resp === \"success\";\n })\n .catch(() => {\n localChatSummaryUpdates.markUpdated(chatId, { archived: undefined });\n return false;\n });\n }\n unarchiveChat(chatId) {\n localChatSummaryUpdates.markUpdated(chatId, { archived: false });\n return this.#sendRequest({ kind: \"unarchiveChat\", chatId })\n .then((resp) => resp === \"success\")\n .catch(() => {\n localChatSummaryUpdates.markUpdated(chatId, { archived: undefined });\n return false;\n });\n }\n pinned(scope, chatId) {\n const pinned = this.#liveState.pinnedChats;\n return pinned.get(scope)?.find((id) => chatIdentifiersEqual(id, chatId)) !== undefined;\n }\n pinChat(chatId) {\n const scope = this.#liveState.chatListScope.kind;\n localChatSummaryUpdates.pin(chatId, scope);\n return this.#sendRequest({\n kind: \"pinChat\",\n chatId,\n favourite: scope === \"favourite\",\n })\n .then((resp) => {\n if (resp !== \"success\") {\n localChatSummaryUpdates.unpin(chatId, scope);\n }\n return resp === \"success\";\n })\n .catch(() => {\n localChatSummaryUpdates.unpin(chatId, scope);\n return false;\n });\n }\n unpinChat(chatId) {\n const scope = this.#liveState.chatListScope.kind;\n localChatSummaryUpdates.unpin(chatId, scope);\n return this.#sendRequest({\n kind: \"unpinChat\",\n chatId,\n favourite: scope === \"favourite\",\n })\n .then((resp) => {\n if (resp !== \"success\") {\n localChatSummaryUpdates.pin(chatId, scope);\n }\n return resp === \"success\";\n })\n .catch(() => {\n localChatSummaryUpdates.pin(chatId, scope);\n return false;\n });\n }\n blockUserFromDirectChat(userId) {\n blockedUsers.add(userId);\n rtcConnectionsManager.disconnectFromUser(userId);\n return this.#sendRequest({ kind: \"blockUserFromDirectChat\", userId })\n .then((resp) => {\n return resp === \"success\";\n })\n .catch(() => {\n blockedUsers.delete(userId);\n return false;\n });\n }\n unblockUserFromDirectChat(userId) {\n blockedUsers.delete(userId);\n return this.#sendRequest({ kind: \"unblockUserFromDirectChat\", userId })\n .then((resp) => {\n return resp === \"success\";\n })\n .catch(() => {\n blockedUsers.add(userId);\n return false;\n });\n }\n setUserAvatar(data, url) {\n const partialUser = this.#liveState.userStore.get(this.#liveState.user.userId);\n if (partialUser) {\n userStore.add({\n ...partialUser,\n blobData: data,\n blobUrl: url,\n });\n }\n return this.#sendRequest({ kind: \"setUserAvatar\", data })\n .then((_resp) => true)\n .catch(() => false);\n }\n deleteGroup(chatId) {\n // TODO we don't use the local updates mechanism here at the moment for some reason. Probably should.\n return this.#sendRequest({ kind: \"deleteGroup\", chatId })\n .then((resp) => {\n if (resp === \"success\") {\n this.removeChat(chatId);\n return true;\n }\n else {\n return false;\n }\n })\n .catch(() => false);\n }\n deleteDirectChat(userId, blockUser) {\n const chatId = { kind: \"direct_chat\", userId };\n localChatSummaryUpdates.markRemoved(chatId);\n return this.#sendRequest({ kind: \"deleteDirectChat\", userId, blockUser })\n .then((success) => {\n if (!success) {\n const chat = this.#liveState.chatSummaries.get(chatId);\n if (chat !== undefined) {\n localChatSummaryUpdates.markAdded(chat);\n }\n }\n return success;\n })\n .catch(() => false);\n }\n leaveGroup(chatId) {\n localChatSummaryUpdates.markRemoved(chatId);\n return this.#sendRequest({ kind: \"leaveGroup\", chatId })\n .then((resp) => {\n if (resp === \"success\") {\n return \"success\";\n }\n else {\n const chat = this.#liveState.chatSummaries.get(chatId);\n if (chat) {\n localChatSummaryUpdates.markAdded(chat);\n }\n if (resp === \"owner_cannot_leave\") {\n return \"owner_cannot_leave\";\n }\n else {\n return \"failure\";\n }\n }\n })\n .catch(() => \"failure\");\n }\n #addCommunityLocally(community) {\n localCommunitySummaryUpdates.markAdded(community);\n community.channels.forEach((c) => localChatSummaryUpdates.markAdded(c));\n }\n #removeCommunityLocally(id) {\n if (this.#liveState.communityPreviews.has(id)) {\n removeCommunityPreview(id);\n }\n localCommunitySummaryUpdates.markRemoved(id);\n const community = this.#liveState.communities.get(id);\n if (community !== undefined) {\n community.channels.forEach((c) => localChatSummaryUpdates.markRemoved(c.id));\n }\n }\n verifyAccessGate(gate, iiPrincipal) {\n if (gate.kind !== \"credential_gate\" || this.#authPrincipal === undefined) {\n return Promise.resolve(undefined);\n }\n return verifyCredential(this.config.internetIdentityUrl, iiPrincipal, gate.credential.issuerOrigin, gate.credential.issuerCanisterId, gate.credential.credentialType, gate.credential.credentialArguments, this.config.iiDerivationOrigin);\n }\n async approveAccessGatePayments(entity, approvals) {\n if (approvals.size === 0)\n return CommonResponses.success();\n let pin = undefined;\n if (this.#liveState.pinNumberRequired) {\n pin = await this.#promptForCurrentPin(\"pinNumber.enterPinInfo\");\n }\n const spender = entity.kind === \"group_chat\" ? entity.id.groupId : entity.id.communityId;\n const results = await Promise.all([...approvals.entries()].map(([ledger, approval]) => this.approveAccessGatePayment(spender, ledger, approval, pin)));\n if (results.every((r) => r.kind === \"success\")) {\n return CommonResponses.success();\n }\n // TODO - this might be a bit shit\n return results[0];\n }\n markActivityFeedRead(readUpTo) {\n messageActivityFeedReadUpToLocally.set(readUpTo);\n return this.#sendRequest({\n kind: \"markActivityFeedRead\",\n readUpTo,\n });\n }\n subscribeToMessageActivityFeed(subscribeFn) {\n this.#sendStreamRequest({\n kind: \"messageActivityFeed\",\n since: this.#liveState.globalState.messageActivitySummary.readUpToTimestamp,\n }).subscribe({\n onResult: (response, final) => {\n const userIds = new Set();\n for (const event of response.events) {\n if (event.userId !== undefined) {\n userIds.add(event.userId);\n }\n }\n this.getMissingUsers(userIds);\n subscribeFn(response, final);\n },\n });\n }\n async approveTransfer(spender, ledger, amount, expiresIn) {\n let pin = undefined;\n if (this.#liveState.pinNumberRequired) {\n pin = await this.#promptForCurrentPin(\"pinNumber.enterPinInfo\");\n }\n return this.#sendRequest({\n kind: \"approveTransfer\",\n spender,\n ledger,\n amount,\n expiresIn,\n pin,\n })\n .then((response) => {\n if (response.kind === \"approve_error\" || response.kind === \"internal_error\") {\n this.#logger.error(\"Unable to approve transfer\", response.error);\n }\n else if (response.kind === \"pin_incorrect\" ||\n response.kind === \"pin_required\" ||\n response.kind === \"too_main_failed_pin_attempts\") {\n pinNumberFailureStore.set(response);\n }\n return response;\n })\n .catch((error) => {\n this.#logger.error(\"Error calling approveTransfer\", error);\n return CommonResponses.internalError(error.toString());\n });\n }\n async approveAccessGatePayment(spender, ledger, { amount, approvalFee }, pin) {\n return this.#sendRequest({\n kind: \"approveTransfer\",\n spender,\n ledger,\n amount: amount - approvalFee, // The user should pay only the amount not amount+fee so it is a round number\n expiresIn: BigInt(5 * 60 * 1000), // Allow 5 mins for the join_group call before the approval expires\n pin,\n })\n .then((response) => {\n if (response.kind === \"approve_error\" || response.kind === \"internal_error\") {\n this.#logger.error(\"Unable to approve transfer\", response.error);\n return CommonResponses.failure();\n }\n else if (response.kind === \"pin_incorrect\" ||\n response.kind === \"pin_required\" ||\n response.kind === \"too_main_failed_pin_attempts\") {\n pinNumberFailureStore.set(response);\n }\n return response;\n })\n .catch(() => CommonResponses.failure());\n }\n async joinGroup(chat, credentials, paymentApprovals) {\n const approveResponse = await this.approveAccessGatePayments(chat, paymentApprovals);\n if (approveResponse.kind !== \"success\") {\n return approveResponse;\n }\n return this.#sendRequest({\n kind: \"joinGroup\",\n chatId: chat.id,\n credentialArgs: this.#buildVerifiedCredentialArgs(credentials),\n })\n .then((resp) => {\n if (resp.kind === \"success\") {\n localChatSummaryUpdates.markAdded(resp.group);\n this.#loadChatDetails(resp.group);\n messagesRead.syncWithServer(resp.group.id, resp.group.membership?.readByMeUpTo, [], undefined);\n }\n else if (resp.kind === \"success_joined_community\") {\n this.#addCommunityLocally(resp.community);\n messagesRead.batchUpdate(() => resp.community.channels.forEach((c) => {\n if (chatIdentifiersEqual(c.id, chat.id)) {\n localChatSummaryUpdates.markAdded(c);\n this.#loadChatDetails(c);\n }\n if (c.latestMessage) {\n messagesRead.markReadUpTo({ chatId: c.id }, c.latestMessage.event.messageIndex);\n }\n }));\n if (this.#liveState.communityPreviews.has(resp.community.id)) {\n removeCommunityPreview(resp.community.id);\n }\n }\n else {\n if (resp.kind === \"user_blocked\") {\n return CommonResponses.blocked();\n }\n else if (resp.kind === \"gate_check_failed\") {\n return resp;\n }\n return CommonResponses.failure();\n }\n return CommonResponses.success();\n })\n .then((resp) => {\n if (resp.kind === \"success\") {\n if (this.#liveState.groupPreviews.has(chat.id)) {\n removeGroupPreview(chat.id);\n }\n }\n return resp;\n })\n .catch(() => CommonResponses.failure());\n }\n #buildVerifiedCredentialArgs(credentials) {\n if (credentials.length === 0)\n return undefined;\n if (this.#authPrincipal === undefined)\n throw new Error(\"Cannot construct a VerifiedCredentialArg because the _authPrincipal is undefined\");\n return {\n userIIPrincipal: this.#authPrincipal,\n iiOrigin: new URL(this.config.internetIdentityUrl).origin,\n credentialJwts: credentials,\n };\n }\n setMemberDisplayName(id, displayName) {\n const newAchievement = !this.#liveState.globalState.achievements.has(\"set_community_display_name\");\n return this.#sendRequest({\n kind: \"setMemberDisplayName\",\n communityId: id.communityId,\n displayName,\n newAchievement,\n }).then((resp) => {\n if (resp === \"success\") {\n communityStateStore.updateProp(id, \"members\", (ms) => {\n const userId = this.#liveState.user.userId;\n if (userId !== undefined) {\n const m = ms.get(userId);\n if (m !== undefined) {\n ms.set(userId, { ...m, displayName });\n return new Map(ms);\n }\n }\n return ms;\n });\n localCommunitySummaryUpdates.updateDisplayName(id, displayName);\n }\n return resp;\n });\n }\n followThread(chatId, message, follow) {\n const threadRootMessageIndex = message.messageIndex;\n // Assume it will succeed\n localMessageUpdates.markThreadSummaryUpdated(message.messageId, {\n followedByMe: follow,\n });\n const newAchievement = !this.#liveState.globalState.achievements.has(\"followed_thread\");\n return this.#sendRequest({\n kind: \"followThread\",\n chatId,\n threadRootMessageIndex,\n follow,\n newAchievement,\n })\n .then((resp) => {\n if (resp === \"failed\") {\n localMessageUpdates.markThreadSummaryUpdated(message.messageId, {\n followedByMe: !follow,\n });\n return false;\n }\n if (message.thread !== undefined && message.thread.numberOfReplies > 0) {\n const readUpTo = message.thread.numberOfReplies - 1;\n this.markThreadRead(chatId, threadRootMessageIndex, readUpTo);\n }\n return true;\n })\n .catch(() => false);\n }\n getContentAsText(formatter, content) {\n return getContentAsFormattedText(formatter, content, get(cryptoLookup));\n }\n groupAvatarUrl(chat, community) {\n if (chat?.blobUrl !== undefined) {\n return chat.blobUrl;\n }\n else if (chat?.subtype?.kind === \"governance_proposals\") {\n // If this is a governance proposals chat and no avatar has been set, use the default one for the SNS\n const snsLogo = this.#getSnsLogo(chat.subtype.governanceCanisterId);\n if (snsLogo !== undefined) {\n return snsLogo;\n }\n }\n else if (chat?.id?.kind === \"channel\") {\n community = this.getCommunityForChannel(chat?.id) ?? community;\n if (community !== undefined) {\n return this.communityAvatarUrl(community.id.communityId, community.avatar);\n }\n }\n return \"/assets/group.svg\";\n }\n toShortTimeString(date) {\n return toShortTimeString(date, this.#liveState.locale);\n }\n toMonthString(date) {\n return toMonthString(date, this.#liveState.locale);\n }\n formatMessageDate(timestamp, today, yesterday, timeIfToday = false, short = false) {\n return formatMessageDate(timestamp, today, yesterday, this.#liveState.locale, timeIfToday, short);\n }\n toDatetimeString(date) {\n return toDatetimeString(date, this.#liveState.locale);\n }\n toDateString(date) {\n return toDateString(date, this.#liveState.locale);\n }\n toLongDateString(date) {\n return toLongDateString(date, this.#liveState.locale);\n }\n communityAvatarUrl(id, avatar) {\n return avatar?.blobUrl ?? buildIdenticonUrl(id);\n }\n communityBannerUrl(dataContent) {\n return dataContent?.blobUrl ?? \"/assets/landscape.png\";\n }\n canBlockUsers(chatId) {\n switch (chatId.kind) {\n case \"community\":\n return this.#communityPredicate(chatId, canBlockCommunityUsers);\n case \"channel\":\n return false;\n default:\n return this.#chatPredicate(chatId, canBlockUsers);\n }\n }\n canSendMessage(chatId, mode, permission) {\n return this.#chatPredicate(chatId, (chat) => {\n if (chat.kind === \"direct_chat\") {\n const recipient = this.#liveState.userStore.get(chat.them.userId);\n if (recipient !== undefined) {\n return canSendDirectMessage(recipient, mode, this.config.proposalBotCanister, permission);\n }\n else {\n return false;\n }\n }\n else {\n return canSendGroupMessage(this.#liveState.user, chat, mode, permission);\n }\n });\n }\n // TODO this is now available as a store so we *probably* don't need this now\n permittedMessages(chatId, mode) {\n const chat = this.#liveState.allChats.get(chatId);\n if (chat !== undefined) {\n if (chat.kind === \"direct_chat\") {\n const recipient = this.#liveState.userStore.get(chat.them.userId);\n if (recipient !== undefined) {\n return permittedMessagesInDirectChat(recipient, mode, this.config.proposalBotCanister);\n }\n }\n else {\n return permittedMessagesInGroup(this.#liveState.user, chat, mode);\n }\n }\n return new Map();\n }\n canDeleteOtherUsersMessages(chatId) {\n return this.#chatPredicate(chatId, canDeleteOtherUsersMessages);\n }\n canStartVideoCalls(chatId) {\n return this.#chatPredicate(chatId, (chat) => canStartVideoCalls(chat, this.#liveState.userStore));\n }\n isChatPrivate(chat) {\n switch (chat.kind) {\n case \"channel\": {\n const community = this.getCommunityForChannel(chat.id);\n return !(community?.public ?? true) || !chat.public;\n }\n case \"group_chat\":\n return !chat.public;\n default:\n return true;\n }\n }\n isChatOrCommunityFrozen(chat, community) {\n if (chat.kind === \"direct_chat\")\n return false;\n return chat.frozen || (community?.frozen ?? false);\n }\n canPinMessages(chatId) {\n return this.#chatPredicate(chatId, canPinMessages);\n }\n canReactToMessages(chatId) {\n return this.#chatPredicate(chatId, canReactToMessages);\n }\n canMentionAllMembers(chatId) {\n return this.#chatPredicate(chatId, canMentionAllMembers);\n }\n canChangeRoles(id, currentRole, newRole) {\n switch (id.kind) {\n case \"community\":\n const found = communityRoles.find((r) => r === newRole);\n if (!found)\n return false;\n return this.#communityPredicate(id, (community) => canChangeCommunityRoles(community, currentRole, newRole));\n default:\n return this.#chatPredicate(id, (chat) => canChangeRoles(chat, currentRole, newRole));\n }\n }\n canPromote(chatId, currentRole, newRole) {\n return (compareRoles(newRole, currentRole) > 0 &&\n this.canChangeRoles(chatId, currentRole, newRole));\n }\n canDemote(chatId, currentRole, newRole) {\n return (compareRoles(newRole, currentRole) < 0 &&\n this.canChangeRoles(chatId, currentRole, newRole));\n }\n canUnblockUsers(identifier) {\n switch (identifier.kind) {\n case \"community\":\n return this.#communityPredicate(identifier, canUnblockCommunityUsers);\n default:\n return this.#chatPredicate(identifier, canUnblockUsers);\n }\n }\n canRemoveMembers(id) {\n switch (id.kind) {\n case \"community\":\n return this.#communityPredicate(id, canRemoveCommunityMembers);\n default:\n return this.#chatPredicate(id, canRemoveMembers);\n }\n }\n canEditGroupDetails(chatId) {\n return this.#chatPredicate(chatId, canEditGroupDetails);\n }\n canImportToCommunity(chatId) {\n return this.#chatPredicate(chatId, canImportToCommunity);\n }\n canChangePermissions(chatId) {\n return this.#chatPredicate(chatId, canChangePermissions);\n }\n canInviteUsers(id) {\n switch (id.kind) {\n case \"community\":\n return this.#communityPredicate(id, canInviteCommunityUsers);\n default:\n return this.#chatPredicate(id, canInviteUsers);\n }\n }\n canManageBots(id) {\n switch (id.kind) {\n case \"community\":\n return this.#communityPredicate(id, ({ membership: { role } }) => hasOwnerRights(role));\n default:\n return this.#chatPredicate(id, ({ membership: { role } }) => hasOwnerRights(role));\n }\n }\n canAddMembers(id) {\n return this.#chatPredicate(id, canAddMembers);\n }\n canCreateChannel(id) {\n return this.canCreatePrivateChannel(id) || this.canCreatePublicChannel(id);\n }\n canCreatePublicChannel(id) {\n return this.#communityPredicate(id, canCreatePublicChannel);\n }\n canCreatePrivateChannel(id) {\n return this.#communityPredicate(id, canCreatePrivateChannel);\n }\n canManageUserGroups(id) {\n return this.#communityPredicate(id, canManageUserGroups);\n }\n canChangeCommunityPermissions(id) {\n return this.#communityPredicate(id, canChangeCommunityPermissions);\n }\n canEditCommunity(id) {\n return this.#communityPredicate(id, canEditCommunity);\n }\n canDeleteCommunity(id) {\n return this.#communityPredicate(id, canDeleteCommunity);\n }\n canDeleteChannel(id) {\n return (this.#communityPredicate({ kind: \"community\", communityId: id.communityId }, canDeleteGroup) || this.#multiUserChatPredicate(id, canDeleteGroup));\n }\n canDeleteGroup(chatId) {\n if (chatId.kind === \"channel\") {\n return this.canDeleteChannel(chatId);\n }\n else {\n return this.#multiUserChatPredicate(chatId, canDeleteGroup);\n }\n }\n canConvertGroupToCommunity(chatId) {\n return this.#multiUserChatPredicate(chatId, canConvertToCommunity);\n }\n canLeaveGroup(chatId) {\n return this.#multiUserChatPredicate(chatId, canLeaveGroup);\n }\n isPreviewing(chatId) {\n if (chatId.kind === \"direct_chat\")\n return false;\n return this.#multiUserChatPredicate(chatId, isPreviewing);\n }\n isLapsed(id) {\n if (id.kind === \"direct_chat\") {\n return false;\n }\n else if (id.kind === \"channel\") {\n return (this.#communityPredicate({ kind: \"community\", communityId: id.communityId }, isCommunityLapsed) || this.#multiUserChatPredicate(id, isLapsed));\n }\n else if (id.kind === \"community\") {\n return this.#communityPredicate(id, isCommunityLapsed);\n }\n else {\n return this.#multiUserChatPredicate(id, isLapsed);\n }\n }\n isChatFrozen(chatId) {\n if (chatId.kind === \"direct_chat\")\n return false;\n return this.#multiUserChatPredicate(chatId, isFrozen);\n }\n isCommunityFrozen(id) {\n if (id === undefined)\n return false;\n return this.#communityPredicate(id, isFrozen);\n }\n isOpenChatBot(userId) {\n return userId === OPENCHAT_BOT_USER_ID;\n }\n isVideoCallBot(userId) {\n return userId === OPENCHAT_VIDEO_CALL_USER_ID;\n }\n isChatReadOnly(chatId) {\n if (chatId.kind === \"direct_chat\")\n return false;\n return this.#liveState.suspendedUser || this.isPreviewing(chatId);\n }\n #chatPredicate(chatId, predicate) {\n const chat = this.#liveState.allChats.get(chatId);\n return chat !== undefined && predicate(chat);\n }\n #communityPredicate(communityId, predicate) {\n const community = this.#liveState.communities.get(communityId);\n return community !== undefined && predicate(community);\n }\n #multiUserChatPredicate(chatId, predicate) {\n const chat = this.#liveState.chatSummaries.get(chatId);\n return (chat !== undefined &&\n (chat.kind === \"group_chat\" || chat.kind === \"channel\") &&\n predicate(chat));\n }\n #createMessage;\n #findMessageById;\n registerPollVote(chatId, threadRootMessageIndex, messageId, messageIdx, answerIdx, type) {\n const userId = this.#liveState.user.userId;\n localMessageUpdates.markPollVote(messageId, {\n answerIndex: answerIdx,\n type,\n userId,\n });\n const newAchievement = !this.#liveState.globalState.achievements.has(\"voted_on_poll\");\n return this.#sendRequest({\n kind: \"registerPollVote\",\n chatId,\n messageIdx,\n answerIdx,\n voteType: type,\n threadRootMessageIndex,\n newAchievement,\n })\n .then((resp) => resp === \"success\")\n .catch(() => false);\n }\n deleteMessage(id, threadRootMessageIndex, messageId, asPlatformModerator) {\n const chat = this.#liveState.chatSummaries.get(id);\n if (chat === undefined) {\n return Promise.resolve(false);\n }\n const userId = this.#liveState.user.userId;\n localMessageUpdates.markDeleted(messageId, userId);\n undeletingMessagesStore.delete(messageId);\n const recipients = [...chatStateStore.getProp(id, \"userIds\")];\n rtcConnectionsManager.sendMessage(recipients, {\n kind: \"remote_user_deleted_message\",\n id,\n messageId,\n userId,\n threadRootMessageIndex,\n });\n function _undelete() {\n rtcConnectionsManager.sendMessage(recipients, {\n kind: \"remote_user_undeleted_message\",\n id,\n messageId,\n userId,\n threadRootMessageIndex,\n });\n localMessageUpdates.markUndeleted(messageId);\n }\n const newAchievement = !this.#liveState.globalState.achievements.has(\"deleted_message\");\n return this.#sendRequest({\n kind: \"deleteMessage\",\n chatId: id,\n messageId,\n threadRootMessageIndex,\n asPlatformModerator,\n newAchievement,\n })\n .then((resp) => {\n const success = resp === \"success\";\n if (!success) {\n _undelete();\n }\n return success;\n })\n .catch(() => {\n _undelete();\n return false;\n });\n }\n directChatWithBot(chat) {\n if (chat.kind !== \"direct_chat\")\n return undefined;\n const them = this.#liveState.userStore.get(chat.them.userId);\n return them?.kind === \"bot\" ? them.userId : undefined;\n }\n undeleteMessage(chatId, threadRootMessageIndex, msg) {\n const chat = this.#liveState.chatSummaries.get(chatId);\n if (chat === undefined || !msg.deleted) {\n return Promise.resolve(false);\n }\n undeletingMessagesStore.add(msg.messageId);\n return this.#sendRequest({\n kind: \"undeleteMessage\",\n chatType: chat.kind,\n chatId,\n messageId: msg.messageId,\n threadRootMessageIndex,\n })\n .then((resp) => {\n const success = resp.kind === \"success\";\n if (success) {\n localMessageUpdates.markUndeleted(msg.messageId, resp.message.content);\n }\n return success;\n })\n .catch(() => false)\n .finally(() => {\n undeletingMessagesStore.delete(msg.messageId);\n });\n }\n revealDeletedMessage(chatId, messageId, threadRootMessageIndex) {\n const chat = this.#liveState.chatSummaries.get(chatId);\n if (chat === undefined) {\n return Promise.resolve(false);\n }\n const result = chatId.kind === \"group_chat\" || chatId.kind === \"channel\"\n ? this.#sendRequest({\n kind: \"getDeletedGroupMessage\",\n chatId,\n messageId,\n threadRootMessageIndex,\n })\n : this.#sendRequest({\n kind: \"getDeletedDirectMessage\",\n userId: chatId.userId,\n messageId,\n });\n return result\n .then((resp) => {\n const success = resp.kind === \"success\";\n if (success) {\n localMessageUpdates.markContentRevealed(messageId, resp.content);\n }\n return success;\n })\n .catch(() => false);\n }\n revealBlockedMessage(messageId) {\n localMessageUpdates.markBlockedMessageRevealed(messageId);\n }\n selectReaction(chatId, userId, threadRootMessageIndex, messageId, reaction, username, displayName, kind) {\n const chat = this.#liveState.chatSummaries.get(chatId);\n if (chat === undefined) {\n return Promise.resolve(false);\n }\n localMessageUpdates.markReaction(messageId, {\n reaction,\n kind,\n userId,\n });\n function undoLocally() {\n localMessageUpdates.markReaction(messageId, {\n reaction,\n kind: kind === \"add\" ? \"remove\" : \"add\",\n userId,\n });\n }\n this.dispatchEvent(new ReactionSelected(messageId, kind));\n const newAchievement = !this.#liveState.globalState.achievements.has(\"reacted_to_message\");\n const result = (kind == \"add\"\n ? this.#sendRequest({\n kind: \"addReaction\",\n chatId,\n messageId,\n reaction,\n username,\n displayName,\n threadRootMessageIndex,\n newAchievement,\n })\n : this.#sendRequest({\n kind: \"removeReaction\",\n chatId,\n messageId,\n reaction,\n threadRootMessageIndex,\n }))\n .then((resp) => {\n if (resp.kind !== \"success\") {\n undoLocally();\n return false;\n }\n return true;\n })\n .catch((_) => {\n undoLocally();\n return false;\n });\n this.#sendRtcMessage([...this.#liveState.currentChatUserIds], {\n kind: \"remote_user_toggled_reaction\",\n id: chatId,\n messageId: messageId,\n reaction,\n userId,\n added: kind === \"add\",\n threadRootMessageIndex,\n });\n return result;\n }\n async #loadThreadEventWindow(chat, messageIndex, threadRootEvent, initialLoad = false) {\n if (threadRootEvent.event.thread === undefined)\n return undefined;\n const chatId = chat.id;\n const threadRootMessageIndex = threadRootEvent.event.messageIndex;\n const eventsResponse = await this.#sendRequest({\n kind: \"chatEventsWindow\",\n eventIndexRange: [0, threadRootEvent.event.thread.latestEventIndex],\n chatId,\n messageIndex,\n threadRootMessageIndex: threadRootEvent.event.messageIndex,\n latestKnownUpdate: chat.lastUpdated,\n }).catch(() => \"events_failed\");\n if (eventsResponse === undefined || eventsResponse === \"events_failed\") {\n return undefined;\n }\n this.clearThreadEvents();\n await this.#handleThreadEventsResponse(chatId, threadRootMessageIndex, eventsResponse);\n this.dispatchEvent(new LoadedMessageWindow({ chatId, threadRootMessageIndex: threadRootEvent.event.messageIndex }, messageIndex, initialLoad));\n return messageIndex;\n }\n async loadEventWindow(chatId, messageIndex, threadRootEvent, initialLoad = false) {\n const clientChat = this.#liveState.chatSummaries.get(chatId);\n const serverChat = this.#liveState.serverChatSummaries.get(chatId);\n if (clientChat === undefined || this.#isPrivatePreview(clientChat)) {\n return Promise.resolve(undefined);\n }\n if (messageIndex >= 0) {\n if (threadRootEvent !== undefined && threadRootEvent.event.thread !== undefined) {\n return this.#loadThreadEventWindow(serverChat ?? clientChat, messageIndex, threadRootEvent, initialLoad);\n }\n const latestMessageIndex = clientChat.latestMessage?.event.messageIndex ?? 0;\n if (messageIndex > latestMessageIndex) {\n messageIndex = latestMessageIndex;\n }\n const range = indexRangeForChat(clientChat);\n const eventsResponse = await this.#sendRequest({\n kind: \"chatEventsWindow\",\n eventIndexRange: range,\n chatId,\n messageIndex,\n threadRootMessageIndex: undefined,\n latestKnownUpdate: serverChat?.lastUpdated,\n }).catch(() => \"events_failed\");\n if (eventsResponse === undefined || eventsResponse === \"events_failed\") {\n return undefined;\n }\n if (await this.#handleEventsResponse(clientChat, eventsResponse, false)) {\n this.dispatchEvent(new LoadedMessageWindow({\n chatId: clientChat.id,\n threadRootMessageIndex: threadRootEvent?.event.messageIndex,\n }, messageIndex, initialLoad));\n }\n return messageIndex;\n }\n }\n async #handleEventsResponse(chat, resp, keepCurrentEvents = true) {\n if (resp === \"events_failed\")\n return false;\n if (!keepCurrentEvents) {\n clearServerEvents(chat.id);\n chatStateStore.setProp(chat.id, \"userGroupKeys\", new Set());\n }\n await this.#updateUserStoreFromEvents(chat.id, resp.events);\n this.#addServerEventsToStores(chat.id, resp.events, undefined, resp.expiredEventRanges);\n if (!this.#liveState.offlineStore) {\n makeRtcConnections(this.#liveState.user.userId, chat, resp.events, this.#liveState.userStore, this.#liveState.blockedUsers, this.config.meteredApiKey);\n }\n return true;\n }\n async #updateUserStoreFromCommunityState(id) {\n const allUserIds = new Set();\n this.#getTruncatedUserIdsFromMembers([\n ...communityStateStore.getProp(id, \"members\").values(),\n ]).forEach((m) => allUserIds.add(m.userId));\n communityStateStore.getProp(id, \"blockedUsers\").forEach((u) => allUserIds.add(u));\n communityStateStore.getProp(id, \"invitedUsers\").forEach((u) => allUserIds.add(u));\n communityStateStore.getProp(id, \"referrals\").forEach((u) => allUserIds.add(u));\n await this.getMissingUsers(allUserIds);\n }\n // We create add a limited subset of the members to the userstore for performance reasons.\n // We will already be adding users from events so it's not critical that we get all members\n // at this point\n #getTruncatedUserIdsFromMembers(members) {\n const elevated = members.filter((m) => m.role !== \"none\" && m.role !== \"member\");\n const rest = members.slice(0, LARGE_GROUP_THRESHOLD);\n return [...elevated, ...rest];\n }\n async #updateUserStoreFromEvents(chatId, events) {\n const userId = this.#liveState.user.userId;\n const allUserIds = new Set();\n this.#getTruncatedUserIdsFromMembers(chatStateStore.getProp(chatId, \"members\")).forEach((m) => allUserIds.add(m.userId));\n chatStateStore.getProp(chatId, \"blockedUsers\").forEach((u) => allUserIds.add(u));\n chatStateStore.getProp(chatId, \"invitedUsers\").forEach((u) => allUserIds.add(u));\n for (const u of userIdsFromEvents(events)) {\n allUserIds.add(u);\n }\n chatStateStore.updateProp(chatId, \"userIds\", (userIds) => {\n allUserIds.forEach((u) => {\n if (u !== userId) {\n userIds.add(u);\n }\n });\n return userIds;\n });\n await this.getMissingUsers(allUserIds);\n }\n #blockCommunityUserLocally(id, userId) {\n communityStateStore.updateProp(id, \"blockedUsers\", (b) => new Set([...b, userId]));\n communityStateStore.updateProp(id, \"members\", (ms) => {\n ms.delete(userId);\n return new Map(ms);\n });\n }\n #unblockCommunityUserLocally(id, userId, addToMembers) {\n communityStateStore.updateProp(id, \"blockedUsers\", (b) => {\n return new Set([...b].filter((u) => u !== userId));\n });\n if (addToMembers) {\n communityStateStore.updateProp(id, \"members\", (ms) => {\n ms.set(userId, {\n role: \"member\",\n userId,\n displayName: undefined,\n lapsed: false,\n });\n return new Map(ms);\n return ms;\n });\n }\n }\n #blockUserLocally(chatId, userId) {\n chatStateStore.updateProp(chatId, \"blockedUsers\", (b) => new Set([...b, userId]));\n chatStateStore.updateProp(chatId, \"members\", (p) => p.filter((p) => p.userId !== userId));\n }\n #unblockUserLocally(chatId, userId, addToMembers) {\n chatStateStore.updateProp(chatId, \"blockedUsers\", (b) => {\n return new Set([...b].filter((u) => u !== userId));\n });\n if (addToMembers) {\n chatStateStore.updateProp(chatId, \"members\", (p) => [\n ...p,\n {\n role: \"member\",\n userId,\n displayName: undefined,\n lapsed: false,\n },\n ]);\n }\n }\n blockCommunityUser(id, userId) {\n this.#blockCommunityUserLocally(id, userId);\n return this.#sendRequest({ kind: \"blockCommunityUser\", id, userId })\n .then((resp) => {\n if (resp.kind !== \"success\") {\n this.#unblockCommunityUserLocally(id, userId, true);\n return false;\n }\n return true;\n })\n .catch(() => {\n this.#unblockCommunityUserLocally(id, userId, true);\n return false;\n });\n }\n unblockCommunityUser(id, userId) {\n this.#unblockCommunityUserLocally(id, userId, false);\n return this.#sendRequest({ kind: \"unblockCommunityUser\", id, userId })\n .then((resp) => {\n if (resp.kind !== \"success\") {\n this.#blockCommunityUserLocally(id, userId);\n return false;\n }\n return true;\n })\n .catch(() => {\n this.#blockCommunityUserLocally(id, userId);\n return false;\n });\n }\n blockUser(chatId, userId) {\n this.#blockUserLocally(chatId, userId);\n return this.#sendRequest({ kind: \"blockUserFromGroupChat\", chatId, userId })\n .then((resp) => {\n if (resp !== \"success\") {\n this.#unblockUserLocally(chatId, userId, true);\n return false;\n }\n return true;\n })\n .catch(() => {\n this.#unblockUserLocally(chatId, userId, true);\n return false;\n });\n }\n unblockUser(chatId, userId) {\n this.#unblockUserLocally(chatId, userId, false);\n return this.#sendRequest({ kind: \"unblockUserFromGroupChat\", chatId, userId })\n .then((resp) => {\n if (resp !== \"success\") {\n this.#blockUserLocally(chatId, userId);\n return false;\n }\n return true;\n })\n .catch(() => {\n this.#blockUserLocally(chatId, userId);\n return false;\n });\n }\n formatDisappearingMessageTime(milliseconds, formatter = this.config.i18nFormatter) {\n return formatDisappearingMessageTime(milliseconds, formatter);\n }\n async createDirectChat(chatId) {\n if (!this.#liveState.userStore.has(chatId.userId)) {\n const user = await this.getUser(chatId.userId);\n if (user === undefined) {\n return false;\n }\n }\n createDirectChat(chatId);\n return true;\n }\n #isPrivatePreview(chat) {\n return chat.kind === \"group_chat\" && chat.membership === undefined && !chat.public;\n }\n #uninstalledBotChat(chat) {\n if (chat.kind !== \"direct_chat\")\n return false;\n const botId = chat.them.userId;\n const bot = this.#liveState.externalBots.get(botId);\n return bot !== undefined && this.#liveState.installedDirectBots.get(botId) === undefined;\n }\n setSelectedChat(chatId, messageIndex, threadMessageIndex) {\n const clientChat = this.#liveState.chatSummaries.get(chatId);\n const serverChat = this.#liveState.serverChatSummaries.get(chatId);\n if (clientChat === undefined) {\n return;\n }\n setSelectedChat(this, clientChat, serverChat, messageIndex, threadMessageIndex);\n this.#userLookupForMentions = undefined;\n const { selectedChat, focusMessageIndex } = this.#liveState;\n if (selectedChat !== undefined) {\n if (!this.#uninstalledBotChat(selectedChat)) {\n if (focusMessageIndex !== undefined) {\n this.loadEventWindow(chatId, focusMessageIndex, undefined, true).then(() => {\n if (serverChat !== undefined) {\n this.#loadChatDetails(serverChat);\n }\n });\n }\n else {\n this.loadPreviousMessages(chatId, undefined, true).then(() => {\n if (serverChat !== undefined) {\n this.#loadChatDetails(serverChat);\n }\n });\n }\n }\n if (selectedChat.kind === \"direct_chat\") {\n const them = this.#liveState.userStore.get(selectedChat.them.userId);\n // Refresh user details if they are more than 5 minutes out of date\n if (them === undefined ||\n Date.now() - Number(them.updated) > 5 * ONE_MINUTE_MILLIS) {\n this.getUser(selectedChat.them.userId);\n }\n }\n }\n }\n openThreadFromMessageIndex(_chatId, messageIndex) {\n const event = this.#liveState.events.find((ev) => ev.event.kind === \"message\" && ev.event.messageIndex === messageIndex);\n if (event !== undefined) {\n this.openThread(event, event.event.thread === undefined);\n }\n }\n openThread(threadRootEvent, initiating) {\n this.clearThreadEvents();\n selectedMessageContext.update((context) => {\n if (context) {\n return {\n ...context,\n threadRootMessageIndex: threadRootEvent.event.messageIndex,\n };\n }\n return context;\n });\n const context = this.#liveState.selectedMessageContext;\n if (context) {\n if (!initiating) {\n if (this.#liveState.focusThreadMessageIndex !== undefined) {\n this.loadEventWindow(context.chatId, this.#liveState.focusThreadMessageIndex, threadRootEvent, true);\n }\n else {\n this.loadPreviousMessages(context.chatId, threadRootEvent, true);\n }\n }\n this.dispatchEvent(new ThreadSelected(threadRootEvent, initiating));\n }\n }\n closeThread() {\n selectedMessageContext.update((context) => {\n if (context) {\n return { chatId: context.chatId };\n }\n });\n this.dispatchEvent(new ThreadClosed());\n }\n clearThreadEvents() {\n threadServerEventsStore.set([]);\n }\n async loadThreadMessages(chatId, range, startIndex, ascending, threadRootMessageIndex, clearEvents, initialLoad = false) {\n const chat = this.#liveState.chatSummaries.get(chatId);\n if (chat === undefined) {\n return Promise.resolve();\n }\n const context = { chatId, threadRootMessageIndex };\n if (!messageContextsEqual(context, this.#liveState.selectedMessageContext))\n return;\n const eventsResponse = await this.#sendRequest({\n kind: \"chatEvents\",\n chatType: chat.kind,\n chatId,\n eventIndexRange: range,\n startIndex,\n ascending,\n threadRootMessageIndex,\n latestKnownUpdate: chat.lastUpdated,\n }).catch(() => \"events_failed\");\n if (!messageContextsEqual(context, this.#liveState.selectedMessageContext)) {\n // the selected thread has changed while we were loading the messages\n return;\n }\n if (eventsResponse !== undefined && eventsResponse !== \"events_failed\") {\n if (clearEvents) {\n threadServerEventsStore.set([]);\n }\n await this.#handleThreadEventsResponse(chatId, threadRootMessageIndex, eventsResponse);\n if (!this.#liveState.offlineStore) {\n makeRtcConnections(this.#liveState.user.userId, chat, this.#liveState.threadEvents, this.#liveState.userStore, this.#liveState.blockedUsers, this.config.meteredApiKey);\n }\n if (ascending) {\n this.dispatchEvent(new LoadedNewMessages({ chatId, threadRootMessageIndex }));\n }\n else {\n this.dispatchEvent(new LoadedPreviousMessages({ chatId, threadRootMessageIndex }, initialLoad));\n }\n }\n }\n async #handleThreadEventsResponse(chatId, threadRootMessageIndex, resp) {\n if (resp === \"events_failed\")\n return [];\n const context = { chatId, threadRootMessageIndex };\n // make sure that the message context (chatId or threadRootMessageIndex) has not changed\n if (!messageContextsEqual(context, this.#liveState.selectedMessageContext))\n return [];\n await this.#updateUserStoreFromEvents(chatId, resp.events);\n this.#addServerEventsToStores(chatId, resp.events, threadRootMessageIndex, []);\n return resp.events;\n }\n removeChat(chatId) {\n if (this.#liveState.uninitializedDirectChats.has(chatId)) {\n removeUninitializedDirectChat(chatId);\n }\n if (this.#liveState.groupPreviews.has(chatId)) {\n removeGroupPreview(chatId);\n }\n if (this.#liveState.chatSummaries.has(chatId)) {\n localChatSummaryUpdates.markRemoved(chatId);\n }\n }\n removeCommunity(id) {\n this.#removeCommunityLocally(id);\n }\n messageContentFromFile(file) {\n return messageContentFromFile(file, this.#liveState.isDiamond);\n }\n haveCommunityPermissionsChanged(p1, p2) {\n const args = mergeKeepingOnlyChanged(p1, p2);\n return Object.keys(args).length > 0;\n }\n haveGroupPermissionsChanged(p1, p2) {\n return this.diffGroupPermissions(p1, p2) !== undefined;\n }\n hasAccessGateChanged(currentConfig, originalConfig) {\n if (currentConfig === originalConfig)\n return false;\n const current = currentConfig.gate;\n const original = originalConfig.gate;\n if (current.kind !== original.kind)\n return true;\n if (currentConfig.expiry !== originalConfig.expiry)\n return true;\n if (isNeuronGate(current) && isNeuronGate(original)) {\n return (current.governanceCanister !== original.governanceCanister ||\n current.minDissolveDelay !== original.minDissolveDelay ||\n current.minStakeE8s !== original.minStakeE8s);\n }\n if (isPaymentGate(current) && isPaymentGate(original)) {\n return (current.ledgerCanister !== original.ledgerCanister ||\n current.amount !== original.amount);\n }\n if (isBalanceGate(current) && isBalanceGate(original)) {\n return (current.ledgerCanister !== original.ledgerCanister ||\n current.minBalance !== original.minBalance);\n }\n if (isCredentialGate(current) && isCredentialGate(original)) {\n return JSON.stringify(current.credential) !== JSON.stringify(original.credential);\n }\n if (isCompositeGate(current) && isCompositeGate(original)) {\n return JSON.stringify(current) !== JSON.stringify(original);\n }\n return false;\n }\n getTokenDetailsForAccessGate(gate) {\n if (gate.kind === \"neuron_gate\") {\n return this.tryGetNervousSystem(gate.governanceCanister)?.token;\n }\n else if (gate.kind === \"payment_gate\" || gate.kind === \"token_balance_gate\") {\n return this.tryGetCryptocurrency(gate.ledgerCanister);\n }\n }\n getMinDissolveDelayDays(gate) {\n if (isNeuronGate(gate)) {\n return gate.minDissolveDelay\n ? gate.minDissolveDelay / (24 * 60 * 60 * 1000)\n : undefined;\n }\n }\n getPaymentAmount(gate) {\n return isPaymentGate(gate) ? gate.amount : undefined;\n }\n getMinStakeInTokens(gate) {\n if (isNeuronGate(gate)) {\n return gate.minStakeE8s ? gate.minStakeE8s / E8S_PER_TOKEN : undefined;\n }\n }\n earliestLoadedThreadIndex() {\n return this.#liveState.threadEvents.length === 0\n ? undefined\n : this.#liveState.threadEvents[0].index;\n }\n previousThreadMessagesCriteria(thread) {\n const minLoadedEventIndex = this.earliestLoadedThreadIndex();\n if (minLoadedEventIndex === undefined) {\n return [thread.latestEventIndex, false];\n }\n return [minLoadedEventIndex - 1, false];\n }\n async loadPreviousMessages(chatId, threadRootEvent, initialLoad = false) {\n const serverChat = this.#liveState.serverChatSummaries.get(chatId);\n if (serverChat === undefined || this.#isPrivatePreview(serverChat)) {\n return Promise.resolve();\n }\n if (threadRootEvent !== undefined && threadRootEvent.event.thread !== undefined) {\n const thread = threadRootEvent.event.thread;\n const [index, ascending] = this.previousThreadMessagesCriteria(thread);\n return this.loadThreadMessages(chatId, [0, thread.latestEventIndex], index, ascending, threadRootEvent.event.messageIndex, false, initialLoad);\n }\n const criteria = this.#previousMessagesCriteria(serverChat);\n const eventsResponse = criteria\n ? await this.#loadEvents(serverChat, criteria[0], criteria[1])\n : undefined;\n if (eventsResponse === undefined || eventsResponse === \"events_failed\") {\n return;\n }\n if (await this.#handleEventsResponse(serverChat, eventsResponse)) {\n this.dispatchEvent(new LoadedPreviousMessages({ chatId, threadRootMessageIndex: threadRootEvent?.event.messageIndex }, initialLoad));\n }\n }\n #loadEvents(serverChat, startIndex, ascending) {\n return this.#sendRequest({\n kind: \"chatEvents\",\n chatType: serverChat.kind,\n chatId: serverChat.id,\n eventIndexRange: indexRangeForChat(serverChat),\n startIndex,\n ascending,\n threadRootMessageIndex: undefined,\n latestKnownUpdate: serverChat.lastUpdated,\n }).catch(() => \"events_failed\");\n }\n #previousMessagesCriteria(serverChat) {\n if (serverChat.latestEventIndex < 0) {\n return undefined;\n }\n const minLoadedEventIndex = this.#earliestLoadedIndex(serverChat.id);\n if (minLoadedEventIndex === undefined) {\n return [serverChat.latestEventIndex, false];\n }\n const minVisibleEventIndex = this.earliestAvailableEventIndex(serverChat);\n return minLoadedEventIndex !== undefined && minLoadedEventIndex > minVisibleEventIndex\n ? [minLoadedEventIndex - 1, false]\n : undefined;\n }\n earliestAvailableEventIndex(chat) {\n return chat.kind === \"direct_chat\" ? 0 : chat.minVisibleEventIndex;\n }\n #earliestLoadedIndex(chatId) {\n const confirmedLoaded = confirmedEventIndexesLoaded(chatId);\n return confirmedLoaded.length > 0 ? confirmedLoaded.index(0) : undefined;\n }\n async loadNewMessages(chatId, threadRootEvent) {\n const serverChat = this.#liveState.serverChatSummaries.get(chatId);\n if (serverChat === undefined || this.#isPrivatePreview(serverChat)) {\n return Promise.resolve();\n }\n if (threadRootEvent !== undefined && threadRootEvent.event.thread !== undefined) {\n const thread = threadRootEvent.event.thread;\n const [index, ascending] = this.#newThreadMessageCriteria(thread);\n return this.loadThreadMessages(chatId, [0, thread.latestEventIndex], index, ascending, threadRootEvent.event.messageIndex, false);\n }\n const criteria = this.#newMessageCriteria(serverChat);\n const eventsResponse = criteria\n ? await this.#loadEvents(serverChat, criteria[0], criteria[1])\n : undefined;\n if (eventsResponse === undefined || eventsResponse === \"events_failed\") {\n return;\n }\n await this.#handleEventsResponse(serverChat, eventsResponse);\n this.dispatchEvent(new LoadedNewMessages({\n chatId,\n threadRootMessageIndex: threadRootEvent?.event.messageIndex,\n }));\n }\n morePreviousMessagesAvailable(chatId, threadRootEvent) {\n if (threadRootEvent !== undefined) {\n const earliestIndex = this.earliestLoadedThreadIndex();\n return earliestIndex === undefined || earliestIndex > 0;\n }\n const chat = this.#liveState.chatSummaries.get(chatId);\n return (chat !== undefined &&\n chat.latestEventIndex >= 0 &&\n (this.#earliestLoadedIndex(chatId) ?? Number.MAX_VALUE) >\n this.earliestAvailableEventIndex(chat));\n }\n moreNewMessagesAvailable(chatId, threadRootEvent) {\n if (threadRootEvent !== undefined && threadRootEvent.event.thread !== undefined) {\n return ((this.#confirmedThreadUpToEventIndex() ?? -1) <\n threadRootEvent.event.thread.latestEventIndex);\n }\n const serverChat = this.#liveState.serverChatSummaries.get(chatId);\n return (serverChat !== undefined &&\n (this.#confirmedUpToEventIndex(serverChat.id) ?? -1) < serverChat.latestEventIndex);\n }\n async #loadCommunityDetails(community) {\n const resp = await this.#sendRequest({\n kind: \"getCommunityDetails\",\n id: community.id,\n communityLastUpdated: community.lastUpdated,\n }).catch(() => \"failure\");\n if (resp !== \"failure\") {\n const [lapsed, members] = partition(resp.members, (m) => m.lapsed);\n communityStateStore.setProp(community.id, \"members\", new Map(members.map((m) => [m.userId, m])));\n communityStateStore.setProp(community.id, \"blockedUsers\", resp.blockedUsers);\n communityStateStore.setProp(community.id, \"lapsedMembers\", new Set(lapsed.map((m) => m.userId)));\n communityStateStore.setProp(community.id, \"invitedUsers\", resp.invitedUsers);\n communityStateStore.setProp(community.id, \"rules\", resp.rules);\n communityStateStore.setProp(community.id, \"userGroups\", resp.userGroups);\n communityStateStore.setProp(community.id, \"referrals\", resp.referrals);\n communityStateStore.setProp(community.id, \"bots\", resp.bots.reduce((all, b) => all.set(b.id, b.permissions), new Map()));\n communityStateStore.setProp(community.id, \"apiKeys\", resp.apiKeys);\n }\n await this.#updateUserStoreFromCommunityState(community.id);\n }\n async #loadChatDetails(serverChat) {\n // currently this is only meaningful for group chats, but we'll set it up generically just in case\n if (serverChat.kind === \"group_chat\" || serverChat.kind === \"channel\") {\n const resp = await this.#sendRequest({\n kind: \"getGroupDetails\",\n chatId: serverChat.id,\n chatLastUpdated: serverChat.lastUpdated,\n }).catch(() => \"failure\");\n if (resp !== \"failure\") {\n const members = resp.members.filter((m) => !m.lapsed);\n const lapsed = new Set(resp.members.filter((m) => m.lapsed).map((m) => m.userId));\n chatStateStore.setProp(serverChat.id, \"lapsedMembers\", lapsed);\n chatStateStore.setProp(serverChat.id, \"members\", members);\n chatStateStore.setProp(serverChat.id, \"membersMap\", resp.members.reduce((all, m) => {\n all.set(m.userId, m);\n return all;\n }, new Map()));\n chatStateStore.setProp(serverChat.id, \"blockedUsers\", resp.blockedUsers);\n chatStateStore.setProp(serverChat.id, \"invitedUsers\", resp.invitedUsers);\n chatStateStore.setProp(serverChat.id, \"pinnedMessages\", resp.pinnedMessages);\n chatStateStore.setProp(serverChat.id, \"rules\", resp.rules);\n chatStateStore.setProp(serverChat.id, \"bots\", resp.bots.reduce((all, b) => all.set(b.id, b.permissions), new Map()));\n chatStateStore.setProp(serverChat.id, \"apiKeys\", resp.apiKeys);\n }\n await this.#updateUserStoreFromEvents(serverChat.id, []);\n }\n }\n achievementLogo(id) {\n return `${this.config.achievementUrlPath.replace(\"{canisterId}\", this.config.userIndexCanister)}/achievement_logo/${id}`;\n }\n // this is unavoidably duplicated from the agent\n #rehydrateDataContent(dataContent, blobType = \"blobs\") {\n const ref = dataContent.blobReference;\n return ref !== undefined\n ? {\n ...dataContent,\n blobData: undefined,\n blobUrl: buildBlobUrl(this.config.blobUrlPattern, ref.canisterId, ref.blobId, blobType),\n }\n : dataContent;\n }\n async #refreshUpdatedEvents(serverChat, updatedEvents) {\n const confirmedLoaded = confirmedEventIndexesLoaded(serverChat.id);\n const confirmedThreadLoaded = this.#liveState.confirmedThreadEventIndexesLoaded;\n const selectedThreadRootMessageIndex = this.#liveState.selectedMessageContext?.threadRootMessageIndex;\n const selectedChatId = this.#liveState.selectedChatId;\n // Partition the updated events into those that belong to the currently selected thread and those that don't\n const [currentChatEvents, currentThreadEvents] = updatedEvents.reduce(([chat, thread], e) => {\n if (e.threadRootMessageIndex !== undefined) {\n if (e.threadRootMessageIndex === selectedThreadRootMessageIndex &&\n chatIdentifiersEqual(serverChat.id, selectedChatId) &&\n indexIsInRanges(e.eventIndex, confirmedThreadLoaded)) {\n thread.push(e.eventIndex);\n }\n }\n else {\n if (indexIsInRanges(e.eventIndex, confirmedLoaded)) {\n chat.push(e.eventIndex);\n }\n }\n return [chat, thread];\n }, [[], []]);\n const chatEventsPromise = currentChatEvents.length === 0\n ? Promise.resolve()\n : (serverChat.kind === \"direct_chat\"\n ? this.#sendRequest({\n kind: \"chatEventsByEventIndex\",\n chatId: serverChat.them,\n eventIndexes: currentChatEvents,\n threadRootMessageIndex: undefined,\n latestKnownUpdate: serverChat.lastUpdated,\n }).catch(() => \"events_failed\")\n : this.#sendRequest({\n kind: \"chatEventsByEventIndex\",\n chatId: serverChat.id,\n eventIndexes: currentChatEvents,\n threadRootMessageIndex: undefined,\n latestKnownUpdate: serverChat.lastUpdated,\n }).catch(() => \"events_failed\")).then((resp) => {\n if (resp !== \"events_failed\") {\n resp.events.forEach((e) => {\n if (e.event.kind === \"message\" &&\n e.event.content.kind === \"video_call_content\") {\n this.dispatchEvent(new VideoCallMessageUpdated(serverChat.id, e.event.messageId));\n }\n });\n }\n return this.#handleEventsResponse(serverChat, resp);\n });\n const threadEventPromise = currentThreadEvents.length === 0\n ? Promise.resolve()\n : this.#sendRequest({\n kind: \"chatEventsByEventIndex\",\n chatId: serverChat.id,\n eventIndexes: currentThreadEvents,\n threadRootMessageIndex: selectedThreadRootMessageIndex,\n latestKnownUpdate: serverChat.lastUpdated,\n })\n .catch(() => \"events_failed\")\n .then((resp) => this.#handleThreadEventsResponse(serverChat.id, \n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n selectedThreadRootMessageIndex, resp));\n await Promise.all([chatEventsPromise, threadEventPromise]);\n return;\n }\n #newThreadMessageCriteria(thread) {\n const loadedUpTo = this.#confirmedThreadUpToEventIndex();\n if (loadedUpTo === undefined) {\n return [thread.latestEventIndex, false];\n }\n return [loadedUpTo + 1, true];\n }\n #newMessageCriteria(serverChat) {\n if (serverChat.latestEventIndex < 0) {\n return undefined;\n }\n const loadedUpTo = this.#confirmedUpToEventIndex(serverChat.id);\n if (loadedUpTo === undefined) {\n return [serverChat.latestEventIndex, false];\n }\n return loadedUpTo < serverChat.latestEventIndex ? [loadedUpTo + 1, true] : undefined;\n }\n #confirmedUpToEventIndex(chatId) {\n const ranges = confirmedEventIndexesLoaded(chatId).subranges();\n if (ranges.length > 0) {\n return ranges[0].high;\n }\n return undefined;\n }\n #confirmedThreadUpToEventIndex() {\n const ranges = get(confirmedThreadEventIndexesLoadedStore).subranges();\n if (ranges.length > 0) {\n return ranges[0].high;\n }\n return undefined;\n }\n messageIsReadByThem(chatId, messageIndex) {\n const chat = this.#liveState.chatSummaries.get(chatId);\n return chat !== undefined && messageIsReadByThem(chat, messageIndex);\n }\n #addPinnedMessage(chatId, messageIndex) {\n chatStateStore.updateProp(chatId, \"pinnedMessages\", (s) => {\n return new Set([...s, messageIndex]);\n });\n }\n #removePinnedMessage(chatId, messageIndex) {\n chatStateStore.updateProp(chatId, \"pinnedMessages\", (s) => {\n return new Set([...s].filter((idx) => idx !== messageIndex));\n });\n }\n unpinMessage(chatId, messageIndex) {\n this.#removePinnedMessage(chatId, messageIndex);\n return this.#sendRequest({ kind: \"unpinMessage\", chatId, messageIndex })\n .then((resp) => {\n if (resp !== \"success\") {\n this.#addPinnedMessage(chatId, messageIndex);\n return false;\n }\n return true;\n })\n .catch(() => {\n this.#addPinnedMessage(chatId, messageIndex);\n return false;\n });\n }\n pinMessage(chatId, messageIndex) {\n this.#addPinnedMessage(chatId, messageIndex);\n return this.#sendRequest({\n kind: \"pinMessage\",\n chatId,\n messageIndex,\n })\n .then((resp) => {\n if (resp.kind !== \"success\" && resp.kind !== \"no_change\") {\n this.#removePinnedMessage(chatId, messageIndex);\n return false;\n }\n if (resp.kind === \"success\") {\n this.markPinnedMessagesRead(chatId, resp.timestamp);\n }\n return true;\n })\n .catch(() => {\n this.#removePinnedMessage(chatId, messageIndex);\n return false;\n });\n }\n #removeMessage(chatId, messageId, userId, threadRootMessageIndex) {\n if (userId === this.#liveState.user.userId) {\n const userIds = chatStateStore.getProp(chatId, \"userIds\");\n rtcConnectionsManager.sendMessage([...userIds], {\n kind: \"remote_user_removed_message\",\n id: chatId,\n messageId: messageId,\n userId: userId,\n threadRootMessageIndex,\n });\n }\n const context = { chatId, threadRootMessageIndex };\n unconfirmed.delete(context, messageId);\n messagesRead.removeUnconfirmedMessage(context, messageId);\n }\n forwardMessage(messageContext, msg) {\n this.sendMessageWithContent(messageContext, { ...msg.content }, msg.blockLevelMarkdown, [], true);\n }\n #addServerEventsToStores(chatId, newEvents, threadRootMessageIndex, expiredEventRanges) {\n if (newEvents.length === 0 && expiredEventRanges.length === 0) {\n return;\n }\n if (threadRootMessageIndex === undefined &&\n !isContiguous(chatId, newEvents, expiredEventRanges)) {\n return;\n }\n if (threadRootMessageIndex !== undefined && !isContiguousInThread(newEvents)) {\n return;\n }\n const context = { chatId, threadRootMessageIndex };\n const myUserId = this.#liveState.user.userId;\n const now = BigInt(Date.now());\n const recentlyActiveCutOff = now - BigInt(12 * ONE_HOUR);\n // To ensure we keep the chat summary up to date, if these events are in the main event list, check if there is\n // now a new latest message and if so, mark it as a local chat summary update.\n let latestMessageIndex = threadRootMessageIndex === undefined\n ? this.#liveState.serverChatSummaries.get(chatId)?.latestMessageIndex ?? -1\n : undefined;\n let newLatestMessage = undefined;\n const anyFailedMessages = failedMessagesStore.has(context);\n for (const event of newEvents) {\n if (event.event.kind === \"message\") {\n const { content, messageIndex, messageId } = event.event;\n if (anyFailedMessages && failedMessagesStore.delete(context, messageId)) {\n this.#sendRequest({\n kind: \"deleteFailedMessage\",\n chatId,\n messageId,\n threadRootMessageIndex,\n });\n }\n const inflightMessagePromise = this.#inflightMessagePromises.get(messageId);\n if (inflightMessagePromise !== undefined) {\n // If we reach here, then a message is currently being sent but the update call is yet to complete.\n // So given that we have received the message from the backend we know that the message has\n // successfully been sent, so we resolve the promise early.\n this.#inflightMessagePromises.delete(messageId);\n let result = {\n kind: \"success\",\n timestamp: event.timestamp,\n messageIndex: event.event.messageIndex,\n eventIndex: event.index,\n expiresAt: event.expiresAt,\n };\n if (content.kind === \"crypto_content\") {\n result = {\n ...result,\n kind: \"transfer_success\",\n transfer: content.transfer,\n };\n }\n inflightMessagePromise(result);\n }\n if (unconfirmed.delete(context, messageId)) {\n messagesRead.confirmMessage(context, messageIndex, messageId);\n }\n // If the message was sent by the current user, mark it as read\n if (event.event.sender === myUserId &&\n !messagesRead.isRead(context, messageIndex, messageId)) {\n messagesRead.markMessageRead(context, messageIndex, messageId);\n }\n if (latestMessageIndex !== undefined && messageIndex > latestMessageIndex) {\n newLatestMessage = event;\n latestMessageIndex = messageIndex;\n }\n }\n if (event.timestamp > recentlyActiveCutOff) {\n const userId = activeUserIdFromEvent(event.event);\n if (userId !== undefined && userId !== myUserId) {\n this.#recentlyActiveUsersTracker.track(userId, event.timestamp);\n }\n }\n }\n if (threadRootMessageIndex === undefined) {\n chatStateStore.updateProp(chatId, \"serverEvents\", (events) => mergeServerEvents(events, newEvents, context));\n if (newLatestMessage !== undefined) {\n localChatSummaryUpdates.markUpdated(chatId, { latestMessage: newLatestMessage });\n }\n const selectedThreadRootMessageIndex = this.#liveState.selectedThreadRootMessageIndex;\n if (selectedThreadRootMessageIndex !== undefined) {\n const threadRootEvent = newEvents.find((e) => e.event.kind === \"message\" &&\n e.event.messageIndex === selectedThreadRootMessageIndex);\n if (threadRootEvent !== undefined) {\n this.dispatchEvent(new ChatUpdated({\n chatId,\n threadRootMessageIndex: selectedThreadRootMessageIndex,\n }));\n }\n }\n }\n else if (messageContextsEqual(context, this.#liveState.selectedMessageContext)) {\n threadServerEventsStore.update((events) => mergeServerEvents(events, newEvents, context));\n }\n if (expiredEventRanges.length > 0) {\n chatStateStore.updateProp(chatId, \"expiredEventRanges\", (ranges) => {\n const merged = new DRange();\n merged.add(ranges);\n expiredEventRanges.forEach((r) => merged.add(r.start, r.end));\n return merged;\n });\n }\n }\n async #sendMessageWebRtc(clientChat, messageEvent, threadRootMessageIndex) {\n rtcConnectionsManager.sendMessage([...chatStateStore.getProp(clientChat.id, \"userIds\")], {\n kind: \"remote_user_sent_message\",\n id: clientChat.id,\n messageEvent: serialiseMessageForRtc(messageEvent),\n userId: this.#liveState.user.userId,\n threadRootMessageIndex,\n });\n }\n deleteFailedMessage(chatId, event, threadRootMessageIndex) {\n failedMessagesStore.delete({ chatId, threadRootMessageIndex }, event.event.messageId);\n return this.#sendRequest({\n kind: \"deleteFailedMessage\",\n chatId,\n messageId: event.event.messageId,\n threadRootMessageIndex,\n });\n }\n async retrySendMessage(messageContext, event) {\n const { chatId, threadRootMessageIndex } = messageContext;\n const chat = this.#liveState.chatSummaries.get(chatId);\n if (chat === undefined) {\n return;\n }\n const currentEvents = this.#eventsForMessageContext(messageContext);\n const [nextEventIndex, nextMessageIndex] = threadRootMessageIndex !== undefined\n ? nextEventAndMessageIndexesForThread(currentEvents)\n : nextEventAndMessageIndexes();\n // remove the *original* event from the failed store\n await this.deleteFailedMessage(chatId, event, threadRootMessageIndex);\n // regenerate the indexes for the retry message\n const retryEvent = {\n ...event,\n index: nextEventIndex,\n timestamp: BigInt(Date.now()),\n event: {\n ...event.event,\n messageIndex: nextMessageIndex,\n },\n };\n // add the *new* event to unconfirmed\n unconfirmed.add(messageContext, retryEvent);\n // TODO - what about mentions?\n this.#sendMessageCommon(chat, messageContext, retryEvent, [], true);\n }\n async #sendMessageCommon(chat, messageContext, eventWrapper, mentioned = [], retrying) {\n const { chatId, threadRootMessageIndex } = messageContext;\n let acceptedRules = undefined;\n if (this.#rulesNeedAccepting()) {\n acceptedRules = await this.#promptForRuleAcceptance();\n if (acceptedRules === undefined) {\n return CommonResponses.failure();\n }\n }\n let pin = undefined;\n if (this.#liveState.pinNumberRequired && isTransfer(eventWrapper.event.content)) {\n pin = await this.#promptForCurrentPin(\"pinNumber.enterPinInfo\");\n }\n if (this.#throttleSendMessage()) {\n return Promise.resolve({ kind: \"message_throttled\" });\n }\n if (!retrying) {\n this.#postSendMessage(chat, eventWrapper, threadRootMessageIndex);\n }\n const canRetry = canRetryMessage(eventWrapper.event.content);\n const messageFilterFailed = doesMessageFailFilter(eventWrapper.event, get(messageFiltersStore));\n const messageId = eventWrapper.event.messageId;\n const newAchievement = this.#isNewSendMessageAchievement(messageContext, eventWrapper.event);\n const ledger = this.#extractLedgerFromContent(eventWrapper.event.content);\n const sendMessagePromise = new Promise((resolve) => {\n this.#inflightMessagePromises.set(messageId, resolve);\n this.#sendStreamRequest({\n kind: \"sendMessage\",\n chatType: chat.kind,\n messageContext,\n user: this.#liveState.user,\n mentioned,\n event: eventWrapper,\n acceptedRules,\n messageFilterFailed,\n pin,\n newAchievement,\n }, undefined, ledger !== undefined ? 2 * DEFAULT_WORKER_TIMEOUT : undefined).subscribe({\n onResult: (response) => {\n if (response === \"accepted\") {\n unconfirmed.markAccepted(messageContext, messageId);\n return;\n }\n this.#inflightMessagePromises.delete(messageId);\n const [resp, msg] = response;\n if (resp.kind === \"success\" || resp.kind === \"transfer_success\") {\n const event = mergeSendMessageResponse(msg, resp);\n this.#addServerEventsToStores(chat.id, [event], threadRootMessageIndex, []);\n }\n else {\n if (resp.kind == \"rules_not_accepted\") {\n this.#markChatRulesAcceptedLocally(false);\n }\n else if (resp.kind == \"community_rules_not_accepted\") {\n this.#markCommunityRulesAcceptedLocally(false);\n }\n else if (resp.kind === \"pin_incorrect\" ||\n resp.kind === \"pin_required\" ||\n resp.kind === \"too_main_failed_pin_attempts\") {\n pinNumberFailureStore.set(resp);\n }\n this.#onSendMessageFailure(chatId, msg.messageId, threadRootMessageIndex, eventWrapper, canRetry, resp);\n }\n resolve(resp);\n },\n onError: () => {\n this.#inflightMessagePromises.delete(messageId);\n this.#onSendMessageFailure(chatId, messageId, threadRootMessageIndex, eventWrapper, canRetry, undefined);\n return resolve(CommonResponses.failure());\n },\n });\n });\n // `sendMessagePromise` is resolved either when the update call which initially sent the message completes, or\n // if the message is found when reading new events\n return sendMessagePromise.then((resp) => {\n if (resp.kind === \"success\" || resp.kind === \"transfer_success\") {\n if (ledger !== undefined) {\n lastCryptoSent.set(ledger);\n this.refreshAccountBalance(ledger);\n }\n if (threadRootMessageIndex !== undefined) {\n trackEvent(\"sent_threaded_message\");\n }\n else {\n if (chat.kind === \"direct_chat\") {\n trackEvent(\"sent_direct_message\");\n }\n else {\n if (chat.public) {\n trackEvent(\"sent_public_group_message\");\n }\n else {\n trackEvent(\"sent_private_group_message\");\n }\n }\n }\n if (eventWrapper.event.repliesTo !== undefined) {\n // double counting here which I think is OK since we are limited to string events\n trackEvent(\"replied_to_message\");\n }\n if (acceptedRules?.chat !== undefined) {\n this.#markChatRulesAcceptedLocally(true);\n }\n if (acceptedRules?.community !== undefined) {\n this.#markCommunityRulesAcceptedLocally(true);\n }\n }\n return resp;\n });\n }\n #extractLedgerFromContent(content) {\n switch (content.kind) {\n case \"crypto_content\":\n case \"prize_content_initial\":\n return content.transfer.ledger;\n case \"prize_content\":\n return content.token;\n case \"p2p_swap_content\":\n case \"p2p_swap_content_initial\":\n return content.token0.ledger;\n default:\n return undefined;\n }\n }\n #isNewSendMessageAchievement(message_context, message) {\n let achievement = undefined;\n switch (message.content.kind) {\n case \"audio_content\":\n achievement = \"sent_audio\";\n break;\n case \"crypto_content\":\n achievement = \"sent_crypto\";\n break;\n case \"file_content\":\n achievement = \"sent_file\";\n break;\n case \"giphy_content\":\n achievement = \"sent_giphy\";\n break;\n case \"image_content\":\n achievement = \"sent_image\";\n break;\n case \"meme_fighter_content\":\n achievement = \"sent_meme\";\n break;\n case \"p2p_swap_content_initial\":\n achievement = \"sent_swap_offer\";\n break;\n case \"poll_content\":\n achievement = \"sent_poll\";\n break;\n case \"prize_content_initial\":\n achievement = \"sent_prize\";\n break;\n case \"text_content\":\n achievement = \"sent_text\";\n break;\n case \"video_call_content\":\n achievement = \"started_call\";\n break;\n case \"video_content\":\n achievement = \"sent_video\";\n break;\n }\n const achievements = [];\n if (achievement !== undefined) {\n achievements.push(achievement);\n }\n if (message_context.chatId.kind === \"direct_chat\") {\n achievements.push(\"sent_direct_message\");\n }\n if (message.forwarded) {\n achievements.push(\"forwarded_message\");\n }\n if (message.repliesTo !== undefined) {\n achievements.push(\"quote_replied\");\n }\n else if (message_context.threadRootMessageIndex !== undefined &&\n message.messageIndex == 0) {\n achievements.push(\"replied_in_thread\");\n }\n for (const a of achievements.values()) {\n if (!this.#liveState.globalState.achievements.has(a)) {\n return true;\n }\n }\n return false;\n }\n #rulesNeedAccepting() {\n const chatRules = this.#liveState.currentChatRules;\n const chat = this.#liveState.selectedChat;\n if (chat === undefined || chatRules === undefined) {\n return false;\n }\n const communityRules = this.#liveState.currentCommunityRules;\n const community = this.#liveState.selectedCommunity;\n console.debug(\"RULES: rulesNeedAccepting\", chatRules.enabled, chat.membership?.rulesAccepted, communityRules?.enabled, community?.membership?.rulesAccepted);\n return ((chatRules.enabled && !(chat.membership?.rulesAccepted ?? false)) ||\n ((communityRules?.enabled ?? true) && !(community?.membership?.rulesAccepted ?? false)));\n }\n combineRulesText(chatRules, communityRules) {\n const chatRulesEnabled = chatRules?.enabled ?? false;\n const communityRulesEnabled = communityRules?.enabled ?? false;\n const chatRulesText = chatRulesEnabled ? chatRules?.text : \"\";\n const communityRulesText = communityRulesEnabled ? communityRules?.text : \"\";\n const lineBreak = chatRulesEnabled && communityRulesEnabled ? \"\\n\" : \"\";\n return chatRulesText + lineBreak + communityRulesText;\n }\n #markChatRulesAcceptedLocally(rulesAccepted) {\n const selectedChatId = this.#liveState.selectedChatId;\n if (selectedChatId !== undefined) {\n localChatSummaryUpdates.markUpdated(selectedChatId, { rulesAccepted });\n }\n }\n #markCommunityRulesAcceptedLocally(rulesAccepted) {\n const selectedCommunityId = this.#liveState.selectedCommunity?.id;\n if (selectedCommunityId !== undefined) {\n localCommunitySummaryUpdates.updateRulesAccepted(selectedCommunityId, rulesAccepted);\n }\n }\n #eventsForMessageContext({ threadRootMessageIndex, }) {\n if (threadRootMessageIndex === undefined)\n return this.#liveState.events;\n return this.#liveState.threadEvents;\n }\n eventExpiry(chat, timestamp) {\n if (chat.kind === \"group_chat\" || chat.kind === \"channel\") {\n if (chat.eventsTTL !== undefined) {\n return timestamp + Number(chat.eventsTTL);\n }\n }\n return undefined;\n }\n async sendMessageWithContent(messageContext, content, blockLevelMarkdown, mentioned = [], forwarded = false, msgFn, messageId = random64()) {\n const { chatId, threadRootMessageIndex } = messageContext;\n const chat = this.#liveState.chatSummaries.get(chatId);\n if (chat === undefined) {\n return Promise.resolve(CommonResponses.failure());\n }\n const draftMessage = this.#liveState.draftMessages.get(messageContext);\n const currentEvents = this.#eventsForMessageContext(messageContext);\n const [nextEventIndex, nextMessageIndex] = threadRootMessageIndex !== undefined\n ? nextEventAndMessageIndexesForThread(currentEvents)\n : nextEventAndMessageIndexes();\n const msg = msgFn\n ? msgFn(nextMessageIndex)\n : this.#createMessage(this.#liveState.user.userId, nextMessageIndex, content, blockLevelMarkdown, draftMessage?.replyingTo, forwarded, messageId);\n const timestamp = Date.now();\n const event = {\n event: msg,\n index: nextEventIndex,\n timestamp: BigInt(timestamp),\n expiresAt: threadRootMessageIndex ? undefined : this.eventExpiry(chat, timestamp),\n };\n return this.#sendMessageCommon(chat, messageContext, event, mentioned, false);\n }\n #throttleSendMessage() {\n return shouldThrottle(this.#liveState.isDiamond);\n }\n sendMessageWithAttachment(messageContext, textContent, blockLevelMarkdown, attachment, mentioned = []) {\n this.sendMessageWithContent(messageContext, this.#getMessageContent(textContent, attachment), blockLevelMarkdown, mentioned, false);\n }\n #getMessageContent(text, captioned) {\n return captioned\n ? { ...captioned, caption: text }\n : {\n kind: \"text_content\",\n text: text ?? \"\",\n };\n }\n #onSendMessageFailure(chatId, messageId, threadRootMessageIndex, event, canRetry, response) {\n this.#removeMessage(chatId, messageId, this.#liveState.user.userId, threadRootMessageIndex);\n if (canRetry) {\n failedMessagesStore.add({ chatId, threadRootMessageIndex }, event);\n }\n if (response !== undefined) {\n console.error(\"Error sending message\", JSON.stringify(response));\n }\n if (!isTransfer(event.event.content)) {\n this.dispatchEvent(new SendMessageFailed(!canRetry));\n }\n }\n #postSendMessage(chat, messageEvent, threadRootMessageIndex) {\n const context = { chatId: chat.id, threadRootMessageIndex };\n this.dispatchEvent(new SendingMessage(context));\n // HACK - we need to defer this very slightly so that we can guarantee that we handle SendingMessage events\n // *before* the new message is added to the unconfirmed store. Is this nice? No it is not.\n window.setTimeout(() => {\n if (!isTransfer(messageEvent.event.content)) {\n unconfirmed.add(context, messageEvent);\n }\n failedMessagesStore.delete(context, messageEvent.event.messageId);\n // mark our own messages as read manually since we will not be observing them\n messagesRead.markMessageRead(context, messageEvent.event.messageIndex, messageEvent.event.messageId);\n // Mark all existing messages as read\n if (messageEvent.event.messageIndex > 0) {\n messagesRead.markReadUpTo(context, messageEvent.event.messageIndex - 1);\n }\n draftMessagesStore.delete(context);\n if (!isTransfer(messageEvent.event.content)) {\n this.#sendMessageWebRtc(chat, messageEvent, threadRootMessageIndex).then(() => {\n this.dispatchEvent(new SentMessage(context, messageEvent));\n });\n }\n }, 0);\n }\n buildCryptoTransferText(formatter, myUserId, senderId, content, me) {\n return buildCryptoTransferText(formatter, myUserId, senderId, content, me, get(cryptoLookup));\n }\n buildTransactionLink(formatter, transfer) {\n return buildTransactionLink(formatter, transfer, get(cryptoLookup));\n }\n buildTransactionUrl(transactionIndex, ledger) {\n return buildTransactionUrlByIndex(transactionIndex, ledger, get(cryptoLookup));\n }\n getFirstUnreadMention(chat) {\n return messagesRead.getFirstUnreadMention(chat);\n }\n markAllRead(chat) {\n messagesRead.markAllRead(chat);\n }\n markAllReadForCurrentScope() {\n this.#liveState.chatSummariesList.forEach((chat) => messagesRead.markAllRead(chat));\n }\n editMessageWithAttachment(messageContext, textContent, blockLevelMarkdown, attachment, editingEvent) {\n const chat = this.#liveState.chatSummaries.get(messageContext.chatId);\n if (chat === undefined) {\n return Promise.resolve(false);\n }\n if (textContent || attachment) {\n if (textContent && editingEvent.event.content.kind === \"text_content\") {\n const disabledLinks = extractDisabledLinks(editingEvent.event.content.text);\n textContent = disableLinksInText(textContent, disabledLinks);\n }\n const captioned = attachment ??\n (isCaptionedContent(editingEvent.event.content)\n ? editingEvent.event.content\n : undefined);\n const msg = {\n ...editingEvent.event,\n edited: true,\n content: this.#getMessageContent(textContent ?? undefined, captioned),\n };\n localMessageUpdates.markContentEdited(msg.messageId, msg.content);\n draftMessagesStore.delete(messageContext);\n const updatedBlockLevelMarkdown = msg.blockLevelMarkdown === blockLevelMarkdown ? undefined : blockLevelMarkdown;\n if (updatedBlockLevelMarkdown !== undefined) {\n localMessageUpdates.setBlockLevelMarkdown(msg.messageId, updatedBlockLevelMarkdown);\n }\n const newAchievement = !this.#liveState.globalState.achievements.has(\"edited_message\");\n return this.#sendRequest({\n kind: \"editMessage\",\n chatId: chat.id,\n msg,\n threadRootMessageIndex: messageContext.threadRootMessageIndex,\n blockLevelMarkdown: updatedBlockLevelMarkdown,\n newAchievement,\n })\n .then((resp) => {\n if (resp !== \"success\") {\n localMessageUpdates.revertEditedContent(msg.messageId);\n return false;\n }\n return true;\n })\n .catch(() => {\n localMessageUpdates.revertEditedContent(msg.messageId);\n return false;\n });\n }\n return Promise.resolve(false);\n }\n hideLinkPreview(messageContext, event, link) {\n if (event.event.content.kind !== \"text_content\") {\n return Promise.resolve(false);\n }\n const text = disableLinksInText(event.event.content.text, [link]);\n const msg = {\n ...event.event,\n content: this.#getMessageContent(text, undefined),\n };\n localMessageUpdates.markLinkRemoved(msg.messageId, msg.content);\n return this.#sendRequest({\n kind: \"editMessage\",\n chatId: messageContext.chatId,\n msg,\n threadRootMessageIndex: messageContext.threadRootMessageIndex,\n newAchievement: false,\n })\n .then((resp) => {\n if (resp !== \"success\") {\n localMessageUpdates.revertLinkRemoved(msg.messageId);\n return false;\n }\n return true;\n })\n .catch(() => {\n localMessageUpdates.revertEditedContent(msg.messageId);\n return false;\n });\n }\n notificationReceived(notification) {\n let chatId;\n let threadRootMessageIndex = undefined;\n let eventIndex;\n switch (notification.kind) {\n case \"direct_notification\":\n case \"direct_reaction\":\n case \"direct_message_tipped\":\n case \"group_notification\":\n case \"group_reaction\":\n case \"group_message_tipped\":\n case \"channel_notification\":\n case \"channel_reaction\":\n case \"channel_message_tipped\": {\n chatId = notification.chatId;\n eventIndex = notification.messageEventIndex;\n if (\"threadRootMessageIndex\" in notification) {\n threadRootMessageIndex = notification.threadRootMessageIndex;\n }\n break;\n }\n case \"added_to_channel_notification\":\n return;\n }\n const serverChat = this.#liveState.serverChatSummaries.get(chatId);\n if (serverChat === undefined) {\n return;\n }\n if (!isMessageNotification(notification)) {\n // TODO first clear the existing cache entry\n return;\n }\n const minVisibleEventIndex = serverChat.kind === \"direct_chat\" ? 0 : serverChat.minVisibleEventIndex;\n const latestEventIndex = Math.max(eventIndex, serverChat.latestEventIndex);\n // Load the event\n this.#sendRequest({\n kind: \"chatEvents\",\n chatType: serverChat.kind,\n chatId,\n eventIndexRange: [minVisibleEventIndex, latestEventIndex],\n startIndex: eventIndex,\n ascending: false,\n threadRootMessageIndex,\n latestKnownUpdate: serverChat.lastUpdated,\n })\n .then((resp) => {\n if (resp === \"events_failed\")\n return resp;\n if (!this.isChatPrivate(serverChat))\n return resp;\n const ev = resp.events.find((e) => e.index === eventIndex);\n if (ev !== undefined) {\n if (ev.event.kind === \"message\" &&\n ev.event.content.kind === \"video_call_content\") {\n this.dispatchEvent(RemoteVideoCallStartedEvent.create(chatId, this.#liveState.user.userId, ev.event, ev.timestamp));\n }\n }\n return resp;\n })\n .catch(() => {\n console.warn(\"Failed to load event from notification\");\n });\n }\n #handleConfirmedMessageSentByOther(serverChat, messageEvent, threadRootMessageIndex) {\n const confirmedLoaded = confirmedEventIndexesLoaded(serverChat.id);\n if (indexIsInRanges(messageEvent.index, confirmedLoaded)) {\n // We already have this confirmed message\n return;\n }\n const isAdjacentToAlreadyLoadedEvents = indexIsInRanges(messageEvent.index - 1, confirmedLoaded) ||\n indexIsInRanges(messageEvent.index + 1, confirmedLoaded);\n if (!isAdjacentToAlreadyLoadedEvents) {\n return;\n }\n this.#sendRequest({\n kind: \"rehydrateMessage\",\n chatId: serverChat.id,\n message: messageEvent,\n threadRootMessageIndex,\n latestKnownUpdate: serverChat.lastUpdated,\n }).then((m) => {\n this.#handleEventsResponse(serverChat, {\n events: [m],\n expiredEventRanges: [],\n expiredMessageRanges: [],\n latestEventIndex: undefined,\n });\n });\n }\n setFocusMessageIndex(chatId, messageIndex) {\n chatStateStore.setProp(chatId, \"focusMessageIndex\", messageIndex);\n }\n setFocusThreadMessageIndex(chatId, messageIndex) {\n chatStateStore.setProp(chatId, \"focusThreadMessageIndex\", messageIndex);\n }\n expandDeletedMessages(chatId, messageIndexes) {\n chatStateStore.updateProp(chatId, \"expandedDeletedMessages\", (data) => {\n return new Set([...messageIndexes, ...data]);\n });\n }\n remoteUserToggledReaction(events, message) {\n const matchingMessage = this.#findMessageById(message.messageId, events);\n const kind = message.added ? \"add\" : \"remove\";\n if (matchingMessage !== undefined) {\n this.dispatchEvent(new ReactionSelected(message.messageId, kind));\n localMessageUpdates.markReaction(message.messageId, {\n reaction: message.reaction,\n kind: message.added ? \"add\" : \"remove\",\n userId: message.userId,\n });\n }\n }\n /**\n * We *may* be able to conclude that the user meets the gate purely through\n * reference to the user data in which case we don't need to do anything else\n */\n doesUserMeetAccessGates(gates) {\n return gates.every((g) => this.doesUserMeetAccessGate(g));\n }\n doesUserMeetAccessGate(gate) {\n if (isCompositeGate(gate)) {\n return gate.operator === \"and\"\n ? gate.gates.every((g) => this.doesUserMeetAccessGate(g))\n : gate.gates.some((g) => this.doesUserMeetAccessGate(g));\n }\n else {\n if (gate.kind === \"diamond_gate\") {\n return this.#liveState.user.diamondStatus.kind !== \"inactive\";\n }\n else if (gate.kind === \"lifetime_diamond_gate\") {\n return this.#liveState.user.diamondStatus.kind === \"lifetime\";\n }\n else if (gate.kind === \"unique_person_gate\") {\n return this.#liveState.user.isUniquePerson;\n }\n else {\n return false;\n }\n }\n }\n gatePreprocessingRequired(gates) {\n return this.#getAllPreprocessLeafGates(gates).length > 0;\n }\n #getAllPreprocessLeafGates(gates) {\n return gates.reduce((all, g) => {\n if (isCompositeGate(g)) {\n all.push(...this.#getAllPreprocessLeafGates(g.gates));\n }\n else {\n if (shouldPreprocessGate(g)) {\n all.push(g);\n }\n }\n return all;\n }, []);\n }\n /**\n * When joining a channel it is possible that both the channel & the community\n * have access gates so we need to work out all applicable gates for the chat\n * Note that we only return gates if we are not already a member (or our membership is lapsed).\n * We may also optionally exclude gates for things we are invited to in some scenariose\n */\n accessGatesForChat(chat, excludeInvited = false) {\n const gates = [];\n const community = chat.kind === \"channel\" ? this.getCommunityForChannel(chat.id) : undefined;\n if (community !== undefined &&\n community.gateConfig.gate.kind !== \"no_gate\" &&\n (community.membership.role === \"none\" || community.membership.lapsed) &&\n (!community.isInvited || !excludeInvited)) {\n gates.push({\n level: \"community\",\n expiry: community.gateConfig.expiry,\n ...community.gateConfig.gate,\n });\n }\n if (chat.gateConfig.gate.kind !== \"no_gate\" &&\n (chat.membership.role === \"none\" || chat.membership.lapsed) &&\n (!chat.isInvited || !excludeInvited)) {\n gates.push({\n level: chat.level,\n expiry: chat.gateConfig.expiry,\n ...chat.gateConfig.gate,\n });\n }\n return gates;\n }\n #handleWebRtcMessage(msg) {\n if (this.#liveState.blockedUsers.has(msg.userId)) {\n return;\n }\n if (msg.kind === \"remote_video_call_started\") {\n const ev = createRemoteVideoStartedEvent(msg);\n if (ev) {\n this.dispatchEvent(ev);\n }\n return;\n }\n if (msg.kind === \"remote_video_call_ended\") {\n const ev = createRemoteVideoEndedEvent(msg);\n if (ev) {\n this.dispatchEvent(ev);\n }\n return;\n }\n const fromChatId = filterWebRtcMessage(msg);\n if (fromChatId === undefined)\n return;\n // this means we have a selected chat but it doesn't mean it's the same as this message\n const parsedMsg = parseWebRtcMessage(fromChatId, msg);\n const { selectedChat, threadEvents, events } = this.#liveState;\n if (selectedChat !== undefined &&\n chatIdentifiersEqual(fromChatId, selectedChat.id) &&\n parsedMsg.threadRootMessageIndex === this.#liveState.selectedThreadRootMessageIndex) {\n this.#handleWebRtcMessageInternal(fromChatId, parsedMsg, parsedMsg.threadRootMessageIndex === undefined ? events : threadEvents, parsedMsg.threadRootMessageIndex);\n }\n else {\n if (parsedMsg.kind === \"remote_user_sent_message\" &&\n parsedMsg.threadRootMessageIndex === undefined) {\n unconfirmed.add({ chatId: fromChatId }, parsedMsg.messageEvent);\n }\n }\n }\n #handleWebRtcMessageInternal(fromChatId, msg, events, threadRootMessageIndex) {\n switch (msg.kind) {\n case \"remote_user_typing\":\n typing.startTyping({ chatId: fromChatId, threadRootMessageIndex: msg.threadRootMessageIndex }, msg.userId);\n break;\n case \"remote_user_stopped_typing\":\n typing.stopTyping(msg.userId);\n break;\n case \"remote_user_toggled_reaction\":\n this.remoteUserToggledReaction(events, msg);\n break;\n case \"remote_user_deleted_message\":\n localMessageUpdates.markDeleted(msg.messageId, msg.userId);\n break;\n case \"remote_user_removed_message\":\n this.#removeMessage(fromChatId, msg.messageId, msg.userId, threadRootMessageIndex);\n break;\n case \"remote_user_undeleted_message\":\n localMessageUpdates.markUndeleted(msg.messageId);\n break;\n case \"remote_user_sent_message\":\n this.#remoteUserSentMessage(fromChatId, msg, events, threadRootMessageIndex);\n break;\n case \"remote_user_read_message\":\n unconfirmedReadByThem.add(BigInt(msg.messageId));\n break;\n }\n }\n #remoteUserSentMessage(chatId, message, events, threadRootMessageIndex) {\n const existing = this.#findMessageById(message.messageEvent.event.messageId, events);\n if (existing !== undefined) {\n return;\n }\n const [eventIndex, messageIndex] = threadRootMessageIndex !== undefined\n ? nextEventAndMessageIndexesForThread(events)\n : nextEventAndMessageIndexes();\n const context = { chatId, threadRootMessageIndex };\n this.dispatchEvent(new SendingMessage(context));\n window.setTimeout(() => {\n unconfirmed.add(context, {\n ...message.messageEvent,\n index: eventIndex,\n event: {\n ...message.messageEvent.event,\n messageIndex,\n },\n });\n this.dispatchEvent(new SentMessage(context, message.messageEvent));\n }, 0);\n }\n checkUsername(username, isBot) {\n return this.#sendRequest({ kind: \"checkUsername\", username, isBot });\n }\n searchUsers(searchTerm, maxResults = 20) {\n return this.#sendRequest({ kind: \"searchUsers\", searchTerm, maxResults })\n .then((resp) => {\n userStore.addMany(resp);\n return resp;\n })\n .catch(() => []);\n }\n lookupChatSummary(chatId) {\n return this.#liveState.allChats.get(chatId);\n }\n searchUsersForInvite(searchTerm, maxResults, level, newGroup, canInviteUsers) {\n if (level === \"channel\") {\n // Put the existing channel members into a map for quick lookup\n const channelMembers = newGroup\n ? undefined\n : new Map(this.#liveState.currentChatMembers.map((m) => [m.userId, m]));\n // First try searching the community members and return immediately if there are already enough matches\n // or if the caller does not have permission to invite users to the community\n const communityMatches = this.#searchCommunityUsersForChannelInvite(searchTerm, maxResults, channelMembers);\n if (!canInviteUsers || communityMatches.length >= maxResults) {\n return Promise.resolve([communityMatches, []]);\n }\n // Search the global user list and overfetch if there are existing members we might need to remove\n const maxToSearch = newGroup ? maxResults : maxResults * 2;\n return this.searchUsers(searchTerm, maxToSearch).then((globalMatches) => {\n if (!newGroup) {\n // Remove any existing members from the global matches until there are at most `maxResults`\n // TODO: Ideally we would return the total number of matches from the server and use that\n const maxToKeep = globalMatches.length < maxToSearch ? 0 : maxResults;\n keepMax(globalMatches, (u) => !channelMembers?.has(u.userId), maxToKeep);\n }\n const matches = [];\n // Add the global matches to the results, but only if they are not already in the community matches\n for (const match of globalMatches) {\n if (matches.length >= maxResults) {\n break;\n }\n if (!communityMatches.some((m) => m.userId === match.userId)) {\n matches.push(match);\n }\n }\n return [communityMatches, matches];\n });\n }\n else {\n // Search the global user list and overfetch if there are existing members we might need to remove\n const maxToSearch = newGroup ? maxResults : maxResults * 2;\n return this.searchUsers(searchTerm, maxToSearch).then((matches) => {\n if (!newGroup) {\n // Put the existing users in a map for easy lookup - for communities the existing members\n // are already in a map\n const existing = level === \"community\"\n ? this.#liveState.currentCommunityMembers\n : new Map(this.#liveState.currentChatMembers.map((m) => [m.userId, m]));\n // Remove any existing members from the global matches until there are at most `maxResults`\n // TODO: Ideally we would return the total number of matches from the server and use that\n const maxToKeep = matches.length < maxToSearch ? 0 : maxResults;\n keepMax(matches, (u) => !existing.has(u.userId), maxToKeep);\n }\n return [[], matches];\n });\n }\n }\n searchCommunityMembersToAdd(searchTerm, maxResults) {\n // Put the existing channel members into a map for quick lookup\n const channelMembers = new Map(this.#liveState.currentChatMembers.map((m) => [m.userId, m]));\n // Search the community members excluding the existing channel members\n const communityMatches = this.#searchCommunityUsersForChannelInvite(searchTerm, maxResults, channelMembers);\n return Promise.resolve([communityMatches, []]);\n }\n #searchCommunityUsersForChannelInvite(term, maxResults, channelMembers) {\n const termLower = term.toLowerCase();\n const matches = [];\n for (const [userId, member] of this.#liveState.currentCommunityMembers) {\n let user = this.#liveState.userStore.get(userId);\n if (user?.username !== undefined) {\n const displayName = member.displayName ?? user.displayName;\n if (user.username.toLowerCase().includes(termLower) ||\n (displayName !== undefined && displayName.toLowerCase().includes(termLower))) {\n if (channelMembers === undefined || !channelMembers.has(userId)) {\n if (member.displayName !== undefined) {\n user = { ...user, displayName: member.displayName };\n }\n matches.push(user);\n if (matches.length >= maxResults) {\n break;\n }\n }\n }\n }\n }\n return matches;\n }\n clearReferralCode() {\n localStorage.removeItem(\"openchat_referredby\");\n this.#referralCode = undefined;\n }\n setReferralCode(code) {\n localStorage.setItem(\"openchat_referredby\", code);\n this.#referralCode = code;\n }\n #extractReferralCodeFromPath() {\n const qs = new URLSearchParams(window.location.search);\n return qs.get(\"ref\") ?? undefined;\n }\n captureReferralCode() {\n const code = this.#extractReferralCodeFromPath();\n let captured = false;\n if (code) {\n gaTrack(\"captured_referral_code\", \"registration\");\n localStorage.setItem(\"openchat_referredby\", code);\n captured = true;\n }\n this.#referralCode = localStorage.getItem(\"openchat_referredby\") ?? undefined;\n return captured;\n }\n getReferringUser() {\n return this.#referralCode === undefined\n ? Promise.resolve(undefined)\n : this.getUser(this.#referralCode);\n }\n registerBot(principal, bot) {\n return this.#sendRequest({\n kind: \"registerBot\",\n principal,\n bot,\n })\n .then((success) => {\n if (success) {\n this.#loadBots();\n }\n return success;\n })\n .catch((err) => {\n this.#logger.error(\"Failed to register bot: \", err);\n return false;\n });\n }\n removeBot(botId) {\n return this.#sendRequest({\n kind: \"removeBot\",\n botId,\n }).catch((err) => {\n this.#logger.error(\"Failed to register bot: \", err);\n return false;\n });\n }\n updateRegisteredBot(id, principal, ownerId, avatarUrl, endpoint, definition) {\n return this.#sendRequest({\n kind: \"updateRegisteredBot\",\n id,\n principal,\n ownerId,\n avatarUrl,\n endpoint,\n definition,\n })\n .then((success) => {\n if (success) {\n this.#loadBots();\n }\n return success;\n })\n .catch((err) => {\n this.#logger.error(\"Failed to update registered bot: \", err);\n return false;\n });\n }\n registerUser(username) {\n return this.#sendRequest({\n kind: \"registerUser\",\n username,\n referralCode: this.#referralCode,\n })\n .then((res) => {\n console.log(\"register user response: \", res);\n if (res.kind === \"success\") {\n gaTrack(\"registered_user\", \"registration\", res.userId);\n if (this.#referralCode !== undefined) {\n gaTrack(\"registered_user_with_referral_code\", \"registration\");\n }\n }\n switch (res.kind) {\n case \"success\":\n case \"referral_code_invalid\":\n case \"referral_code_already_claimed\":\n case \"referral_code_expired\":\n this.clearReferralCode();\n }\n return res;\n })\n .catch(() => ({ kind: \"internal_error\" }));\n }\n getCurrentUser() {\n return new Promise((resolve, reject) => {\n let resolved = false;\n this.#sendStreamRequest({ kind: \"getCurrentUser\" }).subscribe({\n onResult: (user) => {\n if (user.kind === \"created_user\") {\n userCreatedStore.set(true);\n currentUser.set(user);\n this.#setDiamondStatus(user.diamondStatus);\n }\n if (!resolved) {\n // we want to resolve the promise with the first response from the stream so that\n // we are not waiting unnecessarily\n resolve(user);\n resolved = true;\n }\n },\n onError: (err) => {\n console.log(\"Stream error: \", err);\n reject(err);\n },\n });\n });\n }\n getDisplayNameById(userId, communityMembers) {\n return this.getDisplayName(this.#liveState.userStore.get(userId), communityMembers);\n }\n getDisplayName(user, communityMembers) {\n if (user !== undefined) {\n const member = communityMembers?.get(user.userId);\n const displayName = member?.displayName ?? user.displayName ?? user.username;\n if (displayName?.length > 0) {\n return displayName;\n }\n }\n return this.config.i18nFormatter(\"unknownUser\");\n }\n subscriptionExists(p256dh_key) {\n return this.#sendRequest({ kind: \"subscriptionExists\", p256dh_key }).catch(() => false);\n }\n pushSubscription(subscription) {\n return this.#sendRequest({ kind: \"pushSubscription\", subscription });\n }\n removeSubscription(subscription) {\n return this.#sendRequest({ kind: \"removeSubscription\", subscription });\n }\n #inviteUsersLocally(id, userIds) {\n if (id.kind === \"community\") {\n communityStateStore.updateProp(id, \"invitedUsers\", (b) => new Set([...b, ...userIds]));\n }\n else {\n chatStateStore.updateProp(id, \"invitedUsers\", (b) => new Set([...b, ...userIds]));\n }\n }\n #uninviteUsersLocally(id, userIds) {\n if (id.kind === \"community\") {\n communityStateStore.updateProp(id, \"invitedUsers\", (b) => {\n return new Set([...b].filter((u) => !userIds.includes(u)));\n });\n const community = this.#liveState.communities.get({\n kind: \"community\",\n communityId: id.communityId,\n });\n if (community !== undefined) {\n for (const channel of community.channels) {\n this.#uninviteUsersLocally(channel.id, userIds);\n }\n }\n }\n else {\n chatStateStore.updateProp(id, \"invitedUsers\", (b) => {\n return new Set([...b].filter((u) => !userIds.includes(u)));\n });\n }\n }\n inviteUsers(id, userIds) {\n this.#inviteUsersLocally(id, userIds);\n return this.#sendRequest({\n kind: \"inviteUsers\",\n id,\n userIds,\n callerUsername: this.#liveState.user.username,\n })\n .then((resp) => {\n if (!resp) {\n this.#uninviteUsersLocally(id, userIds);\n }\n return resp;\n })\n .catch(() => {\n this.#uninviteUsersLocally(id, userIds);\n return false;\n });\n }\n cancelInvites(id, userIds) {\n this.#uninviteUsersLocally(id, userIds);\n return this.#sendRequest({\n kind: \"cancelInvites\",\n id,\n userIds,\n })\n .then((resp) => {\n if (!resp) {\n this.#inviteUsersLocally(id, userIds);\n }\n return resp;\n })\n .catch(() => {\n this.#inviteUsersLocally(id, userIds);\n return false;\n });\n }\n addMembersToChannel(chatId, userIds) {\n return this.#sendRequest({\n kind: \"addMembersToChannel\",\n chatId,\n userIds,\n username: this.#liveState.user.username,\n displayName: this.#liveState.user.displayName,\n }).catch((err) => {\n return { kind: \"internal_error\", error: err.toString() };\n });\n }\n removeCommunityMember(id, userId) {\n communityStateStore.updateProp(id, \"members\", (ms) => {\n ms.delete(userId);\n return new Map(ms);\n });\n return this.#sendRequest({ kind: \"removeCommunityMember\", id, userId }).catch(() => \"failure\");\n }\n removeMember(chatId, userId) {\n chatStateStore.updateProp(chatId, \"members\", (ps) => ps.filter((p) => p.userId !== userId));\n return this.#sendRequest({ kind: \"removeMember\", chatId, userId }).catch(() => \"failure\");\n }\n changeCommunityRole(id, userId, newRole, oldRole) {\n if (newRole === oldRole)\n return Promise.resolve(true);\n // Update the local store\n communityStateStore.updateProp(id, \"members\", (ms) => {\n const m = ms.get(userId);\n if (m !== undefined) {\n ms.set(userId, { ...m, role: newRole });\n return new Map(ms);\n }\n return ms;\n });\n return this.#sendRequest({ kind: \"changeCommunityRole\", id, userId, newRole })\n .then((resp) => {\n return resp === \"success\";\n })\n .catch(() => false)\n .then((success) => {\n if (!success) {\n // Revert the local store\n communityStateStore.updateProp(id, \"members\", (ms) => {\n const m = ms.get(userId);\n if (m !== undefined) {\n ms.set(userId, { ...m, role: oldRole });\n return new Map(ms);\n }\n return ms;\n });\n }\n return success;\n });\n }\n changeRole(chatId, userId, newRole, oldRole) {\n if (newRole === oldRole)\n return Promise.resolve(true);\n // Update the local store\n chatStateStore.updateProp(chatId, \"members\", (ps) => ps.map((p) => (p.userId === userId ? { ...p, role: newRole } : p)));\n return this.#sendRequest({ kind: \"changeRole\", chatId, userId, newRole })\n .then((resp) => {\n return resp === \"success\";\n })\n .catch(() => false)\n .then((success) => {\n if (!success) {\n // Revert the local store\n chatStateStore.updateProp(chatId, \"members\", (ps) => ps.map((p) => (p.userId === userId ? { ...p, role: oldRole } : p)));\n }\n return success;\n });\n }\n registerProposalVote(chatId, messageIndex, adopt) {\n return this.#sendRequest({\n kind: \"registerProposalVote\",\n chatId,\n messageIndex,\n adopt,\n }, false, 2 * DEFAULT_WORKER_TIMEOUT).catch(() => \"internal_error\");\n }\n getProposalVoteDetails(governanceCanisterId, proposalId, isNns) {\n return this.#sendRequest({\n kind: \"getProposalVoteDetails\",\n governanceCanisterId,\n proposalId,\n isNns,\n }).then((resp) => {\n proposalTallies.setTally(governanceCanisterId, proposalId, resp.latestTally);\n return resp;\n });\n }\n getRecommendedGroups() {\n // TODO get the list of exclusions from the user canister\n const exclusions = new Set(this.#liveState.chatSummariesList\n .filter((c) => c.kind === \"group_chat\" && c.public)\n .map((g) => chatIdentifierToString(g.id)));\n recommendedGroupExclusions.value().forEach((c) => exclusions.add(c));\n return this.#sendRequest({\n kind: \"getRecommendedGroups\",\n exclusions: [...exclusions],\n }).catch(() => []);\n }\n searchGroups(searchTerm, maxResults = 10) {\n return this.#sendRequest({ kind: \"searchGroups\", searchTerm, maxResults });\n }\n exploreBots(searchTerm, pageIndex, pageSize, location) {\n return this.#sendRequest({\n kind: \"exploreBots\",\n searchTerm,\n pageIndex,\n pageSize,\n location,\n });\n }\n exploreCommunities(searchTerm, pageIndex, pageSize, flags, languages) {\n return this.#sendRequest({\n kind: \"exploreCommunities\",\n searchTerm,\n pageIndex,\n pageSize,\n flags,\n languages,\n });\n }\n exploreChannels(id, searchTerm, pageIndex, pageSize) {\n return this.#sendRequest({\n kind: \"exploreChannels\",\n id,\n searchTerm,\n pageIndex,\n pageSize,\n }).catch(() => ({ kind: \"failure\" }));\n }\n dismissRecommendation(chatId) {\n recommendedGroupExclusions.add(chatIdentifierToString(chatId));\n return this.#sendRequest({ kind: \"dismissRecommendation\", chatId });\n }\n set groupInvite(value) {\n this.config.groupInvite = value;\n this.#sendRequest({\n kind: \"groupInvite\",\n value,\n });\n }\n setCommunityInvite(value) {\n return this.#sendRequest({\n kind: \"communityInvite\",\n value,\n });\n }\n setCommunityReferral(communityId, referredBy) {\n // make sure that we can't refer ourselves\n if (this.#liveState.user.userId !== referredBy) {\n return this.#sendRequest({\n kind: \"setCommunityReferral\",\n communityId,\n referredBy,\n });\n }\n }\n searchChat(chatId, searchTerm, userIds, maxResults) {\n switch (chatId.kind) {\n case \"channel\":\n case \"group_chat\":\n return this.#sendRequest({\n kind: \"searchGroupChat\",\n chatId,\n searchTerm,\n userIds,\n maxResults,\n });\n case \"direct_chat\":\n return this.#sendRequest({\n kind: \"searchDirectChat\",\n chatId,\n searchTerm,\n maxResults,\n });\n }\n }\n refreshAccountBalance(ledger) {\n const user = this.#liveState.user;\n if (user === undefined) {\n return Promise.resolve(0n);\n }\n return this.#sendRequest({\n kind: \"refreshAccountBalance\",\n ledger,\n principal: user.userId,\n })\n .then((val) => {\n cryptoBalance.set(ledger, val);\n return val;\n })\n .catch(() => 0n);\n }\n refreshTranslationsBalance() {\n return this.#sendRequest({\n kind: \"refreshAccountBalance\",\n ledger: LEDGER_CANISTER_CHAT,\n principal: this.config.translationsCanister,\n }).catch(() => 0n);\n }\n async getAccountTransactions(ledgerIndex, fromId) {\n return this.#sendRequest({\n kind: \"getAccountTransactions\",\n ledgerIndex: ledgerIndex,\n fromId,\n principal: this.#liveState.user.userId,\n })\n .then(async (resp) => {\n if (resp.kind === \"success\") {\n const userIds = userIdsFromTransactions(resp.transactions);\n await this.getMissingUsers(userIds);\n }\n return resp;\n })\n .catch(() => ({ kind: \"failure\" }));\n }\n async threadPreviews(_chatId, threadsByChat, serverChatSummaries) {\n const request = threadsByChat\n .entries()\n .reduce((map, [chatId, threads]) => {\n if (chatId.kind === \"group_chat\" || chatId.kind === \"channel\") {\n const latestKnownUpdate = serverChatSummaries.get(chatId)?.lastUpdated;\n map.set(chatId, [threads, latestKnownUpdate]);\n }\n return map;\n }, new ChatMap());\n return this.#sendRequest({\n kind: \"threadPreviews\",\n threadsByChat: request.toMap(),\n })\n .then((threads) => {\n const events = threads.flatMap((t) => [t.rootMessage, ...t.latestReplies]);\n const userIds = this.userIdsFromEvents(events);\n this.getMissingUsers(userIds);\n return threads;\n })\n .catch(() => []);\n }\n getMissingUsers(userIds) {\n const userIdsSet = Array.isArray(userIds) ? new Set(userIds) : userIds;\n return this.getUsers({\n userGroups: [\n {\n users: this.missingUserIds(this.#liveState.userStore, userIdsSet),\n updatedSince: BigInt(0),\n },\n ],\n }, true);\n }\n getUsers(users, allowStale = false) {\n const userGroups = users.userGroups\n .map((g) => ({ ...g, users: g.users.filter((u) => u !== undefined) }))\n .filter((g) => g.users.length > 0);\n if (userGroups.length === 0) {\n return Promise.resolve({\n users: [],\n deletedUserIds: new Set(),\n });\n }\n return this.#sendRequest({\n kind: \"getUsers\",\n chitState: this.#liveState.chitState,\n users: { userGroups },\n allowStale,\n })\n .then((resp) => {\n const deletedUsers = [...resp.deletedUserIds].map(deletedUser);\n userStore.addMany([...resp.users, ...deletedUsers]);\n if (resp.serverTimestamp !== undefined) {\n // If we went to the server, all users not returned are still up to date, so we mark them as such\n const usersReturned = new Set(resp.users.map((u) => u.userId));\n const allOtherUsers = users.userGroups.flatMap((g) => g.users.filter((u) => !usersReturned.has(u)));\n userStore.setUpdated(allOtherUsers, resp.serverTimestamp);\n }\n if (resp.currentUser) {\n currentUser.update((u) => {\n return resp.currentUser ? updateCreatedUser(u, resp.currentUser) : u;\n });\n }\n return resp;\n })\n .catch(() => ({ users: [], deletedUserIds: new Set() }));\n }\n getUser(userId, allowStale = false) {\n return this.#sendRequest({\n kind: \"getUser\",\n chitState: this.#liveState.chitState,\n userId,\n allowStale,\n })\n .then((resp) => {\n if (resp !== undefined) {\n userStore.add(resp);\n }\n return resp;\n })\n .catch(() => undefined);\n }\n getUserStatus(userId, now) {\n return this.getLastOnlineDate(userId, now).then((lastOnline) => userStatus(lastOnline, Date.now()));\n }\n async getLastOnlineDate(userId, now) {\n const user = this.#liveState.userStore.get(userId);\n if (user === undefined || user.kind === \"bot\")\n return undefined;\n if (userId === this.#liveState.user.userId)\n return now;\n const lastOnlineCached = lastOnlineDates.get(userId, now);\n const cacheValid = lastOnlineCached !== undefined &&\n (lastOnlineCached.lastOnline < now - 5 * ONE_MINUTE_MILLIS ||\n lastOnlineCached.updated > now - 30 * 1000);\n if (cacheValid) {\n return lastOnlineCached.lastOnline;\n }\n else {\n const response = await this.#getLastOnlineDatesBatched([userId]);\n return response[userId];\n }\n }\n getPublicProfile(userId) {\n return this.#sendRequest({ kind: \"getPublicProfile\", userId });\n }\n setUsername(userId, username) {\n return this.#sendRequest({ kind: \"setUsername\", userId, username }).then((resp) => {\n if (resp === \"success\") {\n currentUser.update((user) => ({\n ...user,\n username,\n }));\n this.#overwriteUserInStore(userId, (user) => ({ ...user, username }));\n }\n return resp;\n });\n }\n setDisplayName(userId, displayName) {\n return this.#sendRequest({ kind: \"setDisplayName\", userId, displayName }).then((resp) => {\n if (resp === \"success\") {\n currentUser.update((user) => ({\n ...user,\n displayName,\n }));\n this.#overwriteUserInStore(userId, (user) => ({ ...user, displayName }));\n }\n return resp;\n });\n }\n setBio(bio) {\n return this.#sendRequest({ kind: \"setBio\", bio });\n }\n getBio(userId) {\n return this.#sendRequest({ kind: \"getBio\", userId });\n }\n async withdrawCryptocurrency(domain) {\n let pin = undefined;\n if (this.#liveState.pinNumberRequired) {\n pin = await this.#promptForCurrentPin(\"pinNumber.enterPinInfo\");\n }\n return this.#sendRequest({ kind: \"withdrawCryptocurrency\", domain, pin }).then((resp) => {\n if (resp.kind === \"pin_incorrect\" ||\n resp.kind === \"pin_required\" ||\n resp.kind === \"too_main_failed_pin_attempts\") {\n pinNumberFailureStore.set(resp);\n }\n return resp;\n });\n }\n async getGroupMessagesByMessageIndex(chatId, messageIndexes) {\n const serverChat = this.#liveState.serverChatSummaries.get(chatId);\n try {\n const resp = await this.#sendRequest({\n kind: \"getGroupMessagesByMessageIndex\",\n chatId,\n messageIndexes,\n latestKnownUpdate: serverChat?.lastUpdated,\n });\n if (resp !== \"events_failed\") {\n await this.#updateUserStoreFromEvents(chatId, resp.events);\n }\n return resp;\n }\n catch {\n return \"events_failed\";\n }\n }\n getInviteCode(id) {\n return this.#sendRequest({ kind: \"getInviteCode\", id }).catch(() => ({ kind: \"failure\" }));\n }\n enableInviteCode(id) {\n return this.#sendRequest({ kind: \"enableInviteCode\", id }).catch(() => ({\n kind: \"failure\",\n }));\n }\n disableInviteCode(id) {\n return this.#sendRequest({ kind: \"disableInviteCode\", id }).catch(() => \"failure\");\n }\n resetInviteCode(id) {\n return this.#sendRequest({ kind: \"resetInviteCode\", id }).catch(() => ({\n kind: \"failure\",\n }));\n }\n updateGroup(chatId, name, desc, rules, permissions, avatar, eventsTimeToLive, gateConfig, isPublic, messagesVisibleToNonMembers, externalUrl) {\n return this.#sendRequest({\n kind: \"updateGroup\",\n chatId,\n name,\n desc,\n rules,\n permissions,\n avatar,\n eventsTimeToLive,\n gateConfig,\n isPublic,\n messagesVisibleToNonMembers,\n externalUrl,\n })\n .then((resp) => {\n if (resp.kind === \"success\") {\n localChatSummaryUpdates.markUpdated(chatId, {\n kind: chatId.kind,\n name,\n description: desc,\n permissions,\n gateConfig: gateConfig,\n eventsTTL: eventsTimeToLive,\n });\n if (rules !== undefined && resp.rulesVersion !== undefined) {\n chatStateStore.setProp(chatId, \"rules\", {\n text: rules.text,\n enabled: rules.enabled,\n version: resp.rulesVersion,\n });\n }\n }\n else {\n this.#logger.error(\"Update group rules failed: \", resp.kind);\n }\n return resp;\n })\n .catch(() => ({ kind: \"failure\" }));\n }\n #isMultiUserChat(chat) {\n return chat.kind === \"group_chat\" || chat.kind === \"channel\";\n }\n maskChatMessages(chat) {\n // notANonLapsedMember && (private || !messagesVisibleToNonMembers)\n return (this.#isMultiUserChat(chat) &&\n (chat.membership.role === \"none\" || this.isLapsed(chat.id)) &&\n (!chat.public || !chat.messagesVisibleToNonMembers));\n }\n createGroupChat(candidate) {\n return this.#sendRequest({ kind: \"createGroupChat\", candidate }).then((resp) => {\n if (resp.kind === \"success\") {\n const group = groupChatFromCandidate(resp.canisterId, candidate);\n localChatSummaryUpdates.markAdded(group);\n }\n return resp;\n });\n }\n markThreadSummaryUpdated(threadRootMessageId, summary) {\n localMessageUpdates.markThreadSummaryUpdated(threadRootMessageId, summary);\n }\n freezeCommunity(id, reason) {\n return this.#sendRequest({ kind: \"freezeCommunity\", id, reason })\n .then((resp) => resp === \"success\")\n .catch(() => false);\n }\n unfreezeCommunity(id) {\n return this.#sendRequest({ kind: \"unfreezeCommunity\", id })\n .then((resp) => resp === \"success\")\n .catch(() => false);\n }\n freezeGroup(chatId, reason) {\n return this.#sendRequest({ kind: \"freezeGroup\", chatId, reason })\n .then((resp) => {\n if (typeof resp !== \"string\") {\n this.#onChatFrozen(chatId, resp);\n return true;\n }\n return false;\n })\n .catch(() => false);\n }\n unfreezeGroup(chatId) {\n return this.#sendRequest({ kind: \"unfreezeGroup\", chatId })\n .then((resp) => {\n if (typeof resp !== \"string\") {\n this.#onChatFrozen(chatId, resp);\n return true;\n }\n return false;\n })\n .catch(() => false);\n }\n deleteFrozenGroup(chatId) {\n return this.#sendRequest({ kind: \"deleteFrozenGroup\", chatId })\n .then((resp) => resp === \"success\")\n .catch(() => false);\n }\n addHotGroupExclusion(chatId) {\n return this.#sendRequest({ kind: \"addHotGroupExclusion\", chatId })\n .then((resp) => resp === \"success\")\n .catch(() => false);\n }\n removeHotGroupExclusion(chatId) {\n return this.#sendRequest({ kind: \"removeHotGroupExclusion\", chatId })\n .then((resp) => resp === \"success\")\n .catch(() => false);\n }\n addRemoveSwapProvider(swapProvider, add) {\n return this.#sendRequest({ kind: \"addRemoveSwapProvider\", swapProvider, add });\n }\n addMessageFilter(regex) {\n try {\n new RegExp(regex);\n }\n catch (e) {\n console.error(\"Unable to add message filter - invalid regex\", regex);\n return Promise.resolve(false);\n }\n return this.#sendRequest({ kind: \"addMessageFilter\", regex });\n }\n removeMessageFilter(id) {\n return this.#sendRequest({ kind: \"removeMessageFilter\", id }).catch(() => false);\n }\n suspendUser(userId, reason) {\n return this.#sendRequest({ kind: \"suspendUser\", userId, reason })\n .then((resp) => resp === \"success\")\n .catch(() => false);\n }\n unsuspendUser(userId) {\n return this.#sendRequest({ kind: \"unsuspendUser\", userId })\n .then((resp) => resp === \"success\")\n .catch(() => false);\n }\n setCommunityModerationFlags(communityId, flags) {\n return this.#sendRequest({ kind: \"setCommunityModerationFlags\", communityId, flags })\n .then((resp) => resp === \"success\")\n .catch(() => false);\n }\n setGroupUpgradeConcurrency(value) {\n return this.#sendRequest({ kind: \"setGroupUpgradeConcurrency\", value })\n .then((resp) => resp === \"success\")\n .catch(() => false);\n }\n setCommunityUpgradeConcurrency(value) {\n return this.#sendRequest({ kind: \"setCommunityUpgradeConcurrency\", value })\n .then((resp) => resp === \"success\")\n .catch(() => false);\n }\n setUserUpgradeConcurrency(value) {\n return this.#sendRequest({ kind: \"setUserUpgradeConcurrency\", value })\n .then((resp) => resp === \"success\")\n .catch(() => false);\n }\n markLocalGroupIndexFull(canisterId, full) {\n return this.#sendRequest({ kind: \"markLocalGroupIndexFull\", canisterId, full }).catch(() => false);\n }\n setDiamondMembershipFees(fees) {\n return this.#sendRequest({ kind: \"setDiamondMembershipFees\", fees }).catch(() => false);\n }\n setTokenEnabled(ledger, enabled) {\n return this.#sendRequest({ kind: \"setTokenEnabled\", ledger, enabled });\n }\n stakeNeuronForSubmittingProposals(governanceCanisterId, stake) {\n return this.#sendRequest({\n kind: \"stakeNeuronForSubmittingProposals\",\n governanceCanisterId,\n stake,\n })\n .then((resp) => resp.kind === \"success\")\n .catch(() => false);\n }\n topUpNeuronForSubmittingProposals(governanceCanisterId, amount) {\n return this.#sendRequest({\n kind: \"topUpNeuronForSubmittingProposals\",\n governanceCanisterId,\n amount,\n })\n .then((resp) => resp.kind === \"success\")\n .catch(() => false);\n }\n #onChatFrozen(chatId, event) {\n const frozen = event.event.kind === \"chat_frozen\";\n if (this.isPreviewing(chatId)) {\n groupPreviewsStore.update((summaries) => {\n const summary = summaries.get(chatId);\n if (summary === undefined) {\n return summaries;\n }\n const clone = summaries.clone();\n clone.set(chatId, {\n ...summary,\n frozen,\n });\n return clone;\n });\n }\n else {\n localChatSummaryUpdates.markUpdated(chatId, { kind: \"group_chat\", frozen });\n this.#addServerEventsToStores(chatId, [event], undefined, []);\n }\n }\n #userIdsFromChatSummaries(chats) {\n const userIds = new Set();\n chats.forEach((chat) => {\n if (chat.kind === \"direct_chat\") {\n userIds.add(chat.them.userId);\n }\n else if (chat.latestMessage !== undefined) {\n userIds.add(chat.latestMessage.event.sender);\n this.extractUserIdsFromMentions(getContentAsFormattedText((k) => k, chat.latestMessage.event.content, get(cryptoLookup))).forEach((id) => userIds.add(id));\n }\n });\n return userIds;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n async #updateUsers() {\n try {\n const now = BigInt(Date.now());\n const allUsers = this.#liveState.userStore;\n const usersToUpdate = new Set();\n if (!this.#liveState.anonUser) {\n usersToUpdate.add(this.#liveState.user.userId);\n }\n const tenMinsAgo = now - BigInt(10 * ONE_MINUTE_MILLIS);\n for (const userId of this.#recentlyActiveUsersTracker.consume()) {\n const current = allUsers.get(userId);\n if (current === undefined || current.updated < tenMinsAgo) {\n usersToUpdate.add(userId);\n }\n if (usersToUpdate.size >= 100) {\n break;\n }\n }\n // Update all users we have direct chats with\n for (const chat of this.#liveState.chatSummariesList) {\n if (chat.kind == \"direct_chat\") {\n usersToUpdate.add(chat.them.userId);\n }\n }\n // Also update any users who haven't been updated for at least 24 hours\n const oneDayAgo = now - BigInt(24 * ONE_HOUR);\n for (const user of allUsers.values()) {\n if (user.updated < oneDayAgo) {\n usersToUpdate.add(user.userId);\n if (usersToUpdate.size >= MAX_USERS_TO_UPDATE_PER_BATCH) {\n break;\n }\n }\n }\n for (const userId of get(specialUsers).keys()) {\n usersToUpdate.delete(userId);\n }\n console.log(`getting updates for ${usersToUpdate.size} user(s)`);\n const userGroups = groupBy(usersToUpdate, (u) => {\n return allUsers.get(u)?.updated ?? BigInt(0);\n });\n await this.getUsers({\n userGroups: Array.from(userGroups).map(([updatedSince, users]) => ({\n users,\n updatedSince,\n })),\n });\n }\n catch (err) {\n this.#logger.error(\"Error updating users\", err);\n }\n }\n async #handleChatsResponse(updateRegistryTask, initialLoad, chatsResponse) {\n if (initialLoad || chatsResponse.anyUpdates) {\n if (chatsResponse.suspensionChanged !== undefined) {\n this.dispatchEvent(new UserSuspensionChanged());\n return;\n }\n if (updateRegistryTask !== undefined) {\n // We need the registry to be loaded before we attempt to render chats / events\n await updateRegistryTask;\n }\n const chats = chatsResponse.state.directChats\n .concat(chatsResponse.state.groupChats)\n .concat(chatsResponse.state.communities.flatMap((c) => c.channels));\n this.#updateReadUpToStore(chats);\n if (this.#cachePrimer === undefined && !this.#liveState.anonUser) {\n this.#cachePrimer = new CachePrimer(this, this.#liveState.user.userId, chatsResponse.state.userCanisterLocalUserIndex, (ev) => this.dispatchEvent(ev), (ev) => this.dispatchEvent(ev));\n }\n if (this.#cachePrimer !== undefined) {\n this.#cachePrimer.processChats(chats);\n }\n const userIds = this.#userIdsFromChatSummaries(chats);\n if (chatsResponse.state.referrals !== undefined) {\n for (const userId of chatsResponse.state.referrals.map((r) => r.userId)) {\n userIds.add(userId);\n }\n }\n if (!this.#liveState.anonUser) {\n userIds.add(this.#liveState.user.userId);\n }\n await this.getMissingUsers(userIds);\n if (chatsResponse.state.blockedUsers !== undefined) {\n blockedUsers.set(new Set(chatsResponse.state.blockedUsers));\n }\n // if the selected community has updates, reload the details\n const selectedCommunity = this.#liveState.selectedCommunity;\n if (selectedCommunity !== undefined) {\n const updatedCommunity = chatsResponse.state.communities.find((c) => c.id.communityId === selectedCommunity.id.communityId);\n if (updatedCommunity !== undefined &&\n updatedCommunity.lastUpdated > selectedCommunity.lastUpdated) {\n this.#loadCommunityDetails(updatedCommunity);\n }\n }\n // If we are still previewing a community we are a member of then remove the preview\n for (const community of chatsResponse.state.communities) {\n if (community?.membership !== undefined &&\n this.#liveState.communityPreviews.has(community.id)) {\n removeCommunityPreview(community.id);\n }\n }\n if (this.#liveState.uninitializedDirectChats.size > 0) {\n for (const chat of chats) {\n if (this.#liveState.uninitializedDirectChats.has(chat.id)) {\n removeUninitializedDirectChat(chat.id);\n }\n }\n }\n setGlobalState(chatsResponse.state.communities, chats, chatsResponse.state.favouriteChats, new Map([\n [\"group_chat\", chatsResponse.state.pinnedGroupChats],\n [\"direct_chat\", chatsResponse.state.pinnedDirectChats],\n [\"favourite\", chatsResponse.state.pinnedFavouriteChats],\n [\"community\", chatsResponse.state.pinnedChannels],\n [\"none\", []],\n ]), chatsResponse.state.achievements, chatsResponse.state.chitState, chatsResponse.state.referrals, chatsResponse.state.walletConfig, chatsResponse.state.messageActivitySummary, chatsResponse.state.installedBots, chatsResponse.state.apiKeys);\n const selectedChatId = this.#liveState.selectedChatId;\n if (selectedChatId !== undefined) {\n if (this.#liveState.chatSummaries.get(selectedChatId) === undefined) {\n clearSelectedChat();\n this.dispatchEvent(new SelectedChatInvalid());\n }\n else {\n const updatedEvents = ChatMap.fromMap(chatsResponse.updatedEvents);\n this.#chatUpdated(selectedChatId, updatedEvents.get(selectedChatId) ?? []);\n }\n }\n const currentUser = this.#liveState.userStore.get(this.#liveState.user.userId);\n const avatarId = currentUser?.blobReference?.blobId;\n if (chatsResponse.state.avatarId !== avatarId) {\n const blobReference = chatsResponse.state.avatarId === undefined\n ? undefined\n : {\n canisterId: this.#liveState.user.userId,\n blobId: chatsResponse.state.avatarId,\n };\n const dataContent = {\n blobReference,\n blobData: undefined,\n blobUrl: undefined,\n };\n if (currentUser) {\n const user = {\n ...currentUser,\n ...dataContent,\n };\n userStore.add(this.#rehydrateDataContent(user, \"avatar\"));\n }\n }\n // If the latest message in a chat is sent by the current user, then we know they must have read up to\n // that message, so we mark the chat as read up to that message if it isn't already. This happens when a\n // user sends a message on one device then looks at OpenChat on another.\n for (const chat of chats) {\n const latestMessage = chat.latestMessage?.event;\n if (latestMessage !== undefined &&\n latestMessage.sender === this.#liveState.user.userId &&\n (chat.membership?.readByMeUpTo ?? -1) < latestMessage.messageIndex &&\n !unconfirmed.contains({ chatId: chat.id }, latestMessage.messageId)) {\n messagesRead.markReadUpTo({ chatId: chat.id }, latestMessage.messageIndex);\n }\n }\n pinNumberRequiredStore.set(chatsResponse.state.pinNumberSettings !== undefined);\n chatsInitialised.set(true);\n this.dispatchEvent(new ChatsUpdated());\n if (chatsResponse.newAchievements.length > 0) {\n const filtered = chatsResponse.newAchievements.filter((a) => a.timestamp > chatsResponse.state.achievementsLastSeen);\n if (filtered.length > 0) {\n this.dispatchEvent(new ChitEarnedEvent(filtered));\n }\n }\n if (initialLoad) {\n this.#startExchangeRatePoller();\n if (!this.#liveState.anonUser) {\n this.#initWebRtc();\n startMessagesReadTracker(this);\n this.refreshSwappableTokens();\n window.setTimeout(() => this.#refreshBalancesInSeries(), 0);\n }\n }\n bitcoinAddress.set(chatsResponse.state.bitcoinAddress);\n }\n }\n #botsLoaded;\n async #loadBots() {\n return new Promise((resolve) => {\n this.#sendStreamRequest({\n kind: \"getBots\",\n initialLoad: !this.#botsLoaded,\n }).subscribe({\n onResult: async ({ bots }) => {\n setExternalBots(bots);\n this.#botsLoaded = true;\n },\n onError: (err) => {\n console.warn(\"getBots threw an error: \", err);\n resolve();\n },\n onEnd: () => {\n resolve();\n },\n });\n });\n }\n async #loadChats() {\n const initialLoad = !this.#liveState.chatsInitialised;\n chatsLoading.set(initialLoad);\n const updateRegistryTask = initialLoad ? this.#updateRegistry() : undefined;\n return new Promise((resolve) => {\n this.#sendStreamRequest({\n kind: \"getUpdates\",\n initialLoad,\n }).subscribe({\n onResult: async (resp) => {\n await this.#handleChatsResponse(updateRegistryTask, !this.#liveState.chatsInitialised, resp);\n chatsLoading.set(!this.#liveState.chatsInitialised);\n },\n onError: (err) => {\n console.warn(\"getUpdates threw an error: \", err);\n resolve();\n },\n onEnd: () => {\n resolve();\n },\n });\n });\n }\n async #getLastOnlineDatesBatched(userIds) {\n userIds.forEach((u) => this.#lastOnlineDatesPending.add(u));\n if (this.#lastOnlineDatesPromise === undefined) {\n // Wait 50ms so that the last online dates can be retrieved in a single batch\n this.#lastOnlineDatesPromise = new Promise((resolve) => window.setTimeout(resolve, 50)).then((_) => this.#processLastOnlineDatesQueue());\n }\n return this.#lastOnlineDatesPromise;\n }\n async #processLastOnlineDatesQueue() {\n const userIds = [...this.#lastOnlineDatesPending];\n this.#lastOnlineDatesPromise = undefined;\n this.#lastOnlineDatesPending.clear();\n try {\n const response = await this.#sendRequest({ kind: \"lastOnline\", userIds });\n // for any userIds that did not come back in the response set the lastOnline value to 0\n // we still want to capture a value so that we don't keep trying to look up the same user over and over\n const updates = userIds.reduce((updates, userId) => {\n updates[userId] = response[userId] ?? 0;\n return updates;\n }, {});\n lastOnlineDates.set(Object.entries(updates), Date.now());\n return updates;\n }\n catch {\n return {};\n }\n }\n #updateReadUpToStore(chatSummaries) {\n messagesRead.batchUpdate(() => {\n for (const chat of chatSummaries) {\n if (chat.kind === \"group_chat\" || chat.kind === \"channel\") {\n const threads = (chat.membership?.latestThreads ?? []).reduce((res, next) => {\n if (next.readUpTo !== undefined) {\n res.push({\n threadRootMessageIndex: next.threadRootMessageIndex,\n readUpTo: next.readUpTo,\n });\n }\n return res;\n }, []);\n messagesRead.syncWithServer(chat.id, chat.membership?.readByMeUpTo, threads, chat.dateReadPinned);\n }\n else {\n messagesRead.syncWithServer(chat.id, chat.membership.readByMeUpTo, [], undefined);\n }\n }\n });\n }\n #validMouseEvent(e) {\n return e instanceof MouseEvent && e.isTrusted && e.type === \"click\";\n }\n claimPrize(chatId, messageId, e) {\n if (!this.#validMouseEvent(e)) {\n return Promise.resolve(false);\n }\n return this.#sendRequest({ kind: \"claimPrize\", chatId, messageId })\n .then((resp) => {\n if (resp.kind !== \"success\") {\n return false;\n }\n else {\n localMessageUpdates.markPrizeClaimed(messageId, this.#liveState.user.userId);\n return true;\n }\n })\n .catch(() => false);\n }\n async acceptP2PSwap(chatId, threadRootMessageIndex, messageId) {\n let pin = undefined;\n if (this.#liveState.pinNumberRequired) {\n pin = await this.#promptForCurrentPin(\"pinNumber.enterPinInfo\");\n }\n localMessageUpdates.setP2PSwapStatus(messageId, {\n kind: \"p2p_swap_reserved\",\n reservedBy: this.#liveState.user.userId,\n });\n const newAchievement = !this.#liveState.globalState.achievements.has(\"accepted_swap_offer\");\n return this.#sendRequest({\n kind: \"acceptP2PSwap\",\n chatId,\n threadRootMessageIndex,\n messageId,\n pin,\n newAchievement,\n })\n .then((resp) => {\n localMessageUpdates.setP2PSwapStatus(messageId, mapAcceptP2PSwapResponseToStatus(resp, this.#liveState.user.userId));\n if (resp.kind === \"pin_incorrect\" ||\n resp.kind === \"pin_required\" ||\n resp.kind === \"too_main_failed_pin_attempts\") {\n pinNumberFailureStore.set(resp);\n }\n return resp;\n })\n .catch((err) => {\n localMessageUpdates.setP2PSwapStatus(messageId, { kind: \"p2p_swap_open\" });\n return { kind: \"internal_error\", text: err.toString() };\n });\n }\n cancelP2PSwap(chatId, threadRootMessageIndex, messageId) {\n localMessageUpdates.setP2PSwapStatus(messageId, {\n kind: \"p2p_swap_cancelled\",\n });\n return this.#sendRequest({\n kind: \"cancelP2PSwap\",\n chatId,\n threadRootMessageIndex,\n messageId,\n })\n .then((resp) => {\n localMessageUpdates.setP2PSwapStatus(messageId, mapCancelP2PSwapResponseToStatus(resp));\n return resp;\n })\n .catch((err) => {\n localMessageUpdates.setP2PSwapStatus(messageId, { kind: \"p2p_swap_open\" });\n return { kind: \"internal_error\", text: err.toString() };\n });\n }\n joinVideoCall(chatId, messageId) {\n const newAchievement = !this.#liveState.globalState.achievements.has(\"joined_call\");\n return this.#sendRequest({\n kind: \"joinVideoCall\",\n chatId,\n messageId,\n newAchievement,\n });\n }\n setVideoCallPresence(chatId, messageId, presence) {\n const newAchievement = !this.#liveState.globalState.achievements.has(\"joined_call\");\n return this.#sendRequest({\n kind: \"setVideoCallPresence\",\n chatId,\n messageId,\n presence,\n newAchievement,\n })\n .then((resp) => resp === \"success\")\n .catch(() => false);\n }\n // FIXME - should this input param be a Map\n #mapVideoCallParticipants(users, participant) {\n const user = this.#liveState.userStore.get(participant.userId);\n if (user) {\n users[participant.userId] = user;\n }\n return users;\n }\n videoCallParticipants(chatId, messageId, updatesSince) {\n return this.#sendRequest({\n kind: \"videoCallParticipants\",\n chatId,\n messageId,\n updatesSince,\n })\n .then(async (resp) => {\n if (resp.kind === \"success\") {\n const allUserIds = [\n ...resp.participants.map((u) => u.userId),\n ...resp.hidden.map((u) => u.userId),\n ];\n await this.getMissingUsers(allUserIds);\n return {\n participants: resp.participants.reduce((u, p) => this.#mapVideoCallParticipants(u, p), {}),\n hidden: resp.hidden.reduce((u, p) => this.#mapVideoCallParticipants(u, p), {}),\n lastUpdated: resp.lastUpdated,\n };\n }\n else {\n return {\n participants: {},\n hidden: {},\n lastUpdated: updatesSince,\n };\n }\n })\n .catch((_) => ({\n participants: {},\n hidden: {},\n lastUpdated: updatesSince,\n }));\n }\n #overwriteUserInStore(userId, updater) {\n const user = this.#liveState.userStore.get(userId);\n if (user !== undefined) {\n const updated = updater(user);\n if (updated !== undefined) {\n userStore.add(updated);\n }\n }\n }\n #updateDiamondStatusInUserStore(status) {\n this.#overwriteUserInStore(this.#liveState.user.userId, (user) => {\n const changed = status.kind !== user.diamondStatus;\n return changed ? { ...user, diamondStatus: status.kind } : undefined;\n });\n }\n #setDiamondStatus(status) {\n const now = Date.now();\n this.#updateDiamondStatusInUserStore(status);\n if (status.kind === \"active\") {\n const expiry = Number(status.expiresAt);\n if (expiry > now) {\n if (this.#membershipCheck !== undefined) {\n window.clearTimeout(this.#membershipCheck);\n }\n const interval = expiry - now;\n this.#membershipCheck = window.setTimeout(() => {\n this.getCurrentUser().then((user) => {\n if (user.kind === \"created_user\") {\n currentUser.set(user);\n }\n else {\n this.logout();\n }\n });\n this.#membershipCheck = undefined;\n }, Math.min(MAX_INT32, interval));\n }\n }\n }\n diamondMembershipFees() {\n return this.#sendRequest({\n kind: \"diamondMembershipFees\",\n }).catch(() => []);\n }\n reportedMessages(userId) {\n return this.#sendRequest({\n kind: \"reportedMessages\",\n userId,\n });\n }\n payForDiamondMembership(ledger, duration, recurring, expectedPriceE8s) {\n return this.#sendRequest({\n kind: \"payForDiamondMembership\",\n userId: this.#liveState.user.userId,\n ledger,\n duration,\n recurring,\n expectedPriceE8s,\n })\n .then((resp) => {\n if (resp.kind === \"success\") {\n currentUser.update((user) => ({\n ...user,\n diamondStatus: resp.status,\n }));\n this.#setDiamondStatus(resp.status);\n }\n return resp;\n })\n .catch(() => ({ kind: \"internal_error\" }));\n }\n setMessageReminder(chatId, eventIndex, remindAt, notes, threadRootMessageIndex) {\n return this.#sendRequest({\n kind: \"setMessageReminder\",\n chatId,\n eventIndex,\n remindAt,\n notes,\n threadRootMessageIndex,\n })\n .then((res) => {\n return res === \"success\";\n })\n .catch(() => false);\n }\n cancelMessageReminder(messageId, content) {\n localMessageUpdates.markCancelled(messageId, content);\n return this.#sendRequest({\n kind: \"cancelMessageReminder\",\n reminderId: content.reminderId,\n }).catch(() => {\n localMessageUpdates.revertCancelled(messageId);\n return false;\n });\n }\n reportMessage(chatId, threadRootMessageIndex, messageId, deleteMessage) {\n return this.#sendRequest({\n kind: \"reportMessage\",\n chatId,\n threadRootMessageIndex,\n messageId,\n deleteMessage,\n }).catch(() => false);\n }\n declineInvitation(chatId) {\n return this.#sendRequest({ kind: \"declineInvitation\", chatId })\n .then((res) => {\n return res === \"success\";\n })\n .catch(() => false);\n }\n updateMarketMakerConfig(config) {\n return this.#sendRequest({ kind: \"updateMarketMakerConfig\", ...config });\n }\n displayName(user) {\n return user !== undefined\n ? `${user?.displayName ?? user?.username}`\n : this.config.i18nFormatter(\"unknownUser\");\n }\n hasModerationFlag(flags, flag) {\n return hasFlag(flags, flag);\n }\n setModerationFlags(flags) {\n const previousValue = this.#liveState.user.moderationFlagsEnabled;\n currentUser.update((user) => ({\n ...user,\n moderationFlagsEnabled: flags,\n }));\n return this.#sendRequest({\n kind: \"setModerationFlags\",\n flags,\n })\n .then((resp) => (resp === \"success\" ? flags : previousValue))\n .catch(() => {\n currentUser.update((user) => ({\n ...user,\n moderationFlagsEnabled: previousValue,\n }));\n return previousValue;\n });\n }\n async tipMessage(messageContext, messageId, transfer, currentTip) {\n const chat = this.#liveState.chatSummaries.get(messageContext.chatId);\n if (chat === undefined) {\n return Promise.resolve({ kind: \"failure\" });\n }\n let pin = undefined;\n if (this.#liveState.pinNumberRequired) {\n pin = await this.#promptForCurrentPin(\"pinNumber.enterPinInfo\");\n }\n const userId = this.#liveState.user.userId;\n const totalTip = transfer.amountE8s + currentTip;\n const decimals = get(cryptoLookup)[transfer.ledger].decimals;\n localMessageUpdates.markTip(messageId, transfer.ledger, userId, totalTip);\n function undoLocally() {\n localMessageUpdates.markTip(messageId, transfer.ledger, userId, -totalTip);\n }\n return this.#sendRequest({\n kind: \"tipMessage\",\n messageContext,\n messageId,\n transfer,\n decimals,\n pin,\n })\n .then((resp) => {\n if (resp.kind !== \"success\") {\n undoLocally();\n if (resp.kind === \"pin_incorrect\" ||\n resp.kind === \"pin_required\" ||\n resp.kind === \"too_main_failed_pin_attempts\") {\n pinNumberFailureStore.set(resp);\n }\n }\n return resp;\n })\n .catch((_) => {\n undoLocally();\n return { kind: \"failure\" };\n });\n }\n loadSavedCryptoAccounts() {\n return this.#sendRequest({\n kind: \"loadSavedCryptoAccounts\",\n }).catch(() => []);\n }\n saveCryptoAccount(namedAccount) {\n return this.#sendRequest({\n kind: \"saveCryptoAccount\",\n namedAccount,\n }).catch(() => ({ kind: \"failure\" }));\n }\n isMemberOfAirdropChannel() {\n if (this.currentAirdropChannel === undefined)\n return false;\n const airdropChannel = this.#liveState.allChats.get(this.currentAirdropChannel.id);\n return (airdropChannel?.membership.role ?? \"none\") !== \"none\";\n }\n async #updateRegistry() {\n let resolved = false;\n return new Promise((resolve) => {\n this.#sendStreamRequest({\n kind: \"updateRegistry\",\n }).subscribe({\n onResult: ([registry, updated]) => {\n if (updated || Object.keys(get(cryptoLookup)).length === 0) {\n this.currentAirdropChannel = registry.currentAirdropChannel;\n const cryptoRecord = toRecord(registry.tokenDetails, (t) => t.ledger);\n nervousSystemLookup.set(toRecord(registry.nervousSystemSummary.map((ns) => ({\n ...ns,\n token: cryptoRecord[ns.ledgerCanisterId],\n })), (ns) => ns.governanceCanisterId));\n cryptoLookup.set(cryptoRecord);\n messageFiltersStore.set(registry.messageFilters\n .map((f) => {\n try {\n return { id: f.id, regex: new RegExp(f.regex, \"mi\") };\n }\n catch {\n return undefined;\n }\n })\n .filter((f) => f !== undefined));\n }\n // make sure we only resolve once so that we don't end up waiting for the downstream fetch\n if (!resolved) {\n resolved = true;\n resolve();\n }\n },\n onError: (err) => {\n console.warn(`Failed to update the registry: ${err}`);\n resolve();\n },\n });\n });\n }\n #updateExchangeRates() {\n return this.#sendRequest({ kind: \"exchangeRates\" })\n .then((exchangeRates) => exchangeRatesLookupStore.set(exchangeRates))\n .catch(() => undefined);\n }\n async #refreshBalancesInSeries() {\n const config = this.#liveState.walletConfig;\n for (const t of Object.values(get(cryptoLookup))) {\n if (config.kind === \"auto_wallet\" || config.tokens.has(t.ledger)) {\n await this.refreshAccountBalance(t.ledger);\n }\n }\n }\n #getSnsLogo(governanceCanisterId) {\n return this.tryGetNervousSystem(governanceCanisterId)?.token.logo;\n }\n tryGetNervousSystem(governanceCanisterId) {\n if (governanceCanisterId !== undefined) {\n const nsLookup = get(nervousSystemLookup);\n if (governanceCanisterId in nsLookup) {\n return nsLookup[governanceCanisterId];\n }\n }\n }\n tryGetCryptocurrency(ledgerCanisterId) {\n if (ledgerCanisterId !== undefined) {\n const lookup = get(cryptoLookup);\n if (ledgerCanisterId in lookup) {\n return lookup[ledgerCanisterId];\n }\n }\n }\n // the key might be a username or it might be a user group name\n getUserLookupForMentions() {\n if (this.#userLookupForMentions === undefined) {\n const lookup = {};\n const userStore = this.#liveState.userStore;\n for (const member of this.#liveState.currentChatMembers) {\n const userId = member.userId;\n let user = userStore.get(userId);\n if (user !== undefined && this.#liveState.selectedChat?.kind === \"channel\") {\n user = {\n ...user,\n displayName: this.getDisplayName(user, this.#liveState.currentCommunityMembers),\n };\n }\n if (user?.username !== undefined) {\n lookup[user.username.toLowerCase()] = user;\n }\n }\n if (this.#liveState.selectedCommunity !== undefined) {\n const userGroups = [...this.#liveState.selectedCommunity.userGroups.values()];\n userGroups.forEach((ug) => (lookup[ug.name.toLowerCase()] = ug));\n }\n if (this.#liveState.selectedChatId !== undefined &&\n this.canMentionAllMembers(this.#liveState.selectedChatId)) {\n lookup[\"everyone\"] = { kind: \"everyone\" };\n }\n this.#userLookupForMentions = lookup;\n }\n return this.#userLookupForMentions;\n }\n lookupUserForMention(username, includeSelf) {\n const lookup = this.getUserLookupForMentions();\n const userOrGroup = lookup[username.toLowerCase()];\n if (userOrGroup === undefined)\n return undefined;\n switch (userOrGroup.kind) {\n case \"user_group\":\n case \"everyone\":\n return userOrGroup;\n default:\n return includeSelf || userOrGroup.userId !== this.#liveState.user.userId\n ? userOrGroup\n : undefined;\n }\n }\n getCachePrimerTimestamps() {\n return this.#sendRequest({ kind: \"getCachePrimerTimestamps\" }).catch(() => ({}));\n }\n submitProposal(governanceCanisterId, proposal) {\n const nervousSystem = this.tryGetNervousSystem(governanceCanisterId);\n if (nervousSystem === undefined) {\n this.#logger.error(\"Cannot find NervousSystemDetails for governanceCanisterId\", governanceCanisterId);\n return Promise.resolve(false);\n }\n return this.#sendRequest({\n kind: \"submitProposal\",\n currentUserId: this.#liveState.user.userId,\n governanceCanisterId,\n proposal,\n ledger: nervousSystem.token.ledger,\n token: nervousSystem.token.symbol,\n proposalRejectionFee: nervousSystem.proposalRejectionFee,\n transactionFee: nervousSystem.token.transferFee,\n }, false, 2 * DEFAULT_WORKER_TIMEOUT)\n .then((resp) => {\n if (resp.kind === \"success\" || resp.kind === \"retrying\") {\n return true;\n }\n this.#logger.error(\"Failed to submit proposal\", resp);\n return false;\n })\n .catch(() => false);\n }\n refreshSwappableTokens() {\n return this.#sendRequest({\n kind: \"canSwap\",\n tokenLedgers: new Set(Object.keys(get(cryptoLookup))),\n }).then((tokens) => {\n swappableTokensStore.set(tokens);\n return tokens;\n });\n }\n getTokenSwaps(inputTokenLedger) {\n const outputTokenLedgers = Object.keys(get(cryptoLookup)).filter((t) => t !== inputTokenLedger);\n return this.#sendRequest({\n kind: \"getTokenSwaps\",\n inputTokenLedger,\n outputTokenLedgers,\n });\n }\n getTokenSwapQuotes(inputTokenLedger, outputTokenLedger, amountIn) {\n return this.#sendRequest({\n kind: \"getTokenSwapQuotes\",\n inputTokenLedger,\n outputTokenLedger,\n amountIn,\n });\n }\n async swapTokens(swapId, inputTokenLedger, outputTokenLedger, amountIn, minAmountOut, dex) {\n let pin = undefined;\n if (this.#liveState.pinNumberRequired) {\n pin = await this.#promptForCurrentPin(\"pinNumber.enterPinInfo\");\n }\n const lookup = get(cryptoLookup);\n return this.#sendRequest({\n kind: \"swapTokens\",\n swapId,\n inputTokenDetails: lookup[inputTokenLedger],\n outputTokenDetails: lookup[outputTokenLedger],\n amountIn,\n minAmountOut,\n dex,\n pin,\n }, false, 1000 * 60 * 3).then((resp) => {\n if (resp.kind === \"pin_incorrect\" ||\n resp.kind === \"pin_required\" ||\n resp.kind === \"too_main_failed_pin_attempts\") {\n pinNumberFailureStore.set(resp);\n }\n return resp;\n });\n }\n tokenSwapStatus(swapId) {\n return this.#sendRequest({\n kind: \"tokenSwapStatus\",\n swapId,\n });\n }\n cachedLocalUserIndexForCommunity(communityId) {\n const community = this.#liveState.communities.get({ kind: \"community\", communityId });\n return community !== undefined ? community.localUserIndex : undefined;\n }\n // This will pretend that the value is english and apply it to the english i18n dictionary temporarily.\n // This is just so that we have the option to look at it in the UI to check for layout problems\n previewTranslationCorrection(key, value) {\n applyTranslationCorrection(\"en-GB\", key, value);\n }\n proposeTranslationCorrection(locale, key, value) {\n return this.#sendRequest({\n kind: \"proposeTranslation\",\n locale,\n key,\n value,\n })\n .then((res) => {\n if (res === \"success\") {\n applyTranslationCorrection(locale, key, value);\n }\n return res;\n })\n .catch(() => \"failure\");\n }\n getProposedTranslationCorrections() {\n return this.#sendRequest({\n kind: \"getProposedTranslations\",\n })\n .then((res) => (res.kind === \"success\" ? res.proposed : []))\n .catch(() => []);\n }\n rejectTranslationCorrection(id, reason) {\n return this.#sendRequest({\n kind: \"rejectTranslation\",\n id,\n reason,\n })\n .then((res) => res === \"success\")\n .catch(() => false);\n }\n approveTranslationCorrection(id) {\n return this.#sendRequest({\n kind: \"approveTranslation\",\n id,\n })\n .then((res) => res === \"success\")\n .catch(() => false);\n }\n async #sendVideoCallUsersWebRtcMessage(msg, chatId) {\n const chat = this.#liveState.allChats.get(chatId);\n if (chat === undefined) {\n throw new Error(`Unknown chat: ${chatId}`);\n }\n let userIds = [];\n const me = this.#liveState.user.userId;\n if (chat !== undefined) {\n if (chat.kind === \"direct_chat\") {\n userIds.push(chat.them.userId);\n }\n else if (this.isChatPrivate(chat)) {\n userIds = this.#liveState.currentChatMembers\n .map((m) => m.userId)\n .filter((id) => id !== me);\n }\n if (userIds.length > 0) {\n await Promise.all(userIds.map((id) => rtcConnectionsManager.create(this.#liveState.user.userId, id, this.config.meteredApiKey)));\n this.#sendRtcMessage(userIds, msg);\n }\n }\n }\n async ringOtherUsers(chatId, messageId) {\n this.#sendVideoCallUsersWebRtcMessage({\n kind: \"remote_video_call_started\",\n id: chatId,\n userId: this.#liveState.user.userId,\n messageId,\n }, chatId);\n }\n #getRoomAccessToken(authToken) {\n // This will send the OC access JWT to the daily middleware service which will:\n // * validate the jwt\n // * create the room if necessary\n // * obtain an access token for the user\n // * return it to the front end\n const displayName = this.getDisplayName(this.#liveState.user, this.#liveState.currentCommunityMembers);\n const user = this.#liveState.user;\n const username = user.username;\n const avatarId = this.#liveState.userStore.get(user.userId)?.blobReference?.blobId;\n const headers = new Headers();\n headers.append(\"x-auth-jwt\", authToken);\n let url = `${this.config.videoBridgeUrl}/room/meeting_access_token?initiator-username=${username}&initiator-displayname=${displayName}`;\n if (avatarId) {\n url += `&initiator-avatarid=${avatarId}`;\n }\n return fetch(url, {\n method: \"GET\",\n headers: headers,\n }).then((res) => {\n if (res.ok) {\n return res.json();\n }\n if (res.status === 401) {\n const msg = \"Auth failed trying to obtain room access token. Might be something wrong with your JWT.\";\n console.error(msg);\n throw new Error(msg);\n }\n if (res.status === 400) {\n throw new NoMeetingToJoin();\n }\n throw new Error(`Unable to get room access token: ${res.status}, ${res.statusText}`);\n });\n }\n #getLocalUserIndexForBotActionScope(scope) {\n switch (scope.kind) {\n case \"chat_scope\":\n const chat = this.lookupChatSummary(scope.chatId);\n if (chat) {\n return this.#getLocalUserIndex(chat, true);\n }\n throw new Error(`Unable to get the local user index for scope: ${scope}`);\n case \"community_scope\":\n return this.#getLocalUserIndexForCommunity(scope.communityId.communityId);\n }\n }\n #getLocalUserIndexForCommunity(communityId) {\n const community = this.#liveState.communities.get({\n kind: \"community\",\n communityId,\n });\n if (community) {\n return Promise.resolve(community.localUserIndex);\n }\n else {\n throw new Error(`Unable to get the local user index for community: ${communityId}`);\n }\n }\n #getLocalUserIndex(chat, flipDirect = false) {\n switch (chat.kind) {\n case \"group_chat\":\n return Promise.resolve(chat.localUserIndex);\n case \"channel\":\n const community = this.#liveState.communities.get({\n kind: \"community\",\n communityId: chat.id.communityId,\n });\n if (community) {\n return Promise.resolve(community.localUserIndex);\n }\n else {\n throw new Error(`Unable to get the local user index for channel: ${chat.id}`);\n }\n case \"direct_chat\":\n return this.#sendRequest({\n kind: \"getLocalUserIndexForUser\",\n userId: flipDirect ? this.#liveState.user.userId : chat.them.userId,\n });\n }\n }\n endVideoCallOnBridge(authToken) {\n const headers = new Headers();\n headers.append(\"x-auth-jwt\", authToken);\n return fetch(`${this.config.videoBridgeUrl}/room/end_meeting`, {\n method: \"POST\",\n headers: headers,\n }).then((res) => {\n if (!res.ok) {\n console.error(`Unable to get end meeting: ${res.status}, ${res.statusText}`);\n }\n });\n }\n endVideoCall(chatId, messageId) {\n const chat = this.#liveState.allChats.get(chatId);\n if (chat === undefined) {\n throw new Error(`Unknown chat: ${chatId}`);\n }\n if (messageId !== undefined) {\n this.#sendVideoCallUsersWebRtcMessage({\n kind: \"remote_video_call_ended\",\n id: chatId,\n userId: this.#liveState.user.userId,\n messageId,\n }, chatId);\n }\n return this.#getLocalUserIndex(chat).then((localUserIndex) => {\n return this.#sendRequest({\n kind: \"getAccessToken\",\n accessTokenType: { kind: \"join_video_call\", chatId }, // TODO - this should have it's own token type really\n localUserIndex,\n })\n .then((token) => {\n if (token === undefined) {\n throw new Error(\"Didn't get an access token\");\n }\n return token;\n })\n .then((token) => this.endVideoCallOnBridge(token));\n });\n }\n getVideoChatAccessToken(chatId, accessTokenType) {\n const chat = this.#liveState.allChats.get(chatId);\n if (chat === undefined) {\n throw new Error(`Unknown chat: ${chatId}`);\n }\n return this.#getLocalUserIndex(chat).then((localUserIndex) => {\n return this.#sendRequest({\n kind: \"getAccessToken\",\n chatId,\n accessTokenType,\n localUserIndex,\n })\n .then((token) => {\n if (token === undefined) {\n throw new Error(\"Didn't get an access token\");\n }\n console.log(\"TOKEN: \", token);\n return token;\n })\n .then((token) => this.#getRoomAccessToken(token));\n });\n }\n #startBtcBalanceUpdateJob() {\n bitcoinAddress.subscribe((addr) => {\n if (addr !== undefined) {\n const poller = new Poller(() => this.#updateBtcBalance(addr), ONE_MINUTE_MILLIS);\n return () => poller.stop();\n }\n });\n }\n async getBtcAddress() {\n const storeValue = get(bitcoinAddress);\n if (storeValue !== undefined) {\n return Promise.resolve(storeValue);\n }\n const address = await this.#sendRequest({\n kind: \"generateBtcAddress\",\n });\n bitcoinAddress.set(address);\n return address;\n }\n async withdrawBtc(address, amount) {\n let pin = undefined;\n if (this.#liveState.pinNumberRequired) {\n pin = await this.#promptForCurrentPin(\"pinNumber.enterPinInfo\");\n }\n const response = await this.#sendRequest({\n kind: \"withdrawBtc\",\n address,\n amount,\n pin,\n });\n if (response.kind === \"pin_incorrect\" ||\n response.kind === \"pin_required\" ||\n response.kind === \"too_main_failed_pin_attempts\") {\n pinNumberFailureStore.set(response);\n }\n return response;\n }\n async #updateBtcBalance(address) {\n await this.#sendRequest({\n kind: \"updateBtcBalance\",\n userId: this.#liveState.user.userId,\n bitcoinAddress: address,\n });\n }\n getCkbtcMinterDepositInfo() {\n return this.#sendRequest({\n kind: \"ckbtcMinterDepositInfo\",\n });\n }\n getCkbtcMinterWithdrawalInfo(amount) {\n return this.#sendRequest({\n kind: \"ckbtcMinterWithdrawalInfo\",\n amount,\n });\n }\n async signUpWithWebAuthn(assumeIdentity) {\n const webAuthnOrigin = this.config.webAuthnOrigin;\n if (webAuthnOrigin === undefined)\n throw new Error(\"WebAuthn origin not set\");\n const webAuthnIdentity = await createWebAuthnIdentity(webAuthnOrigin, (key) => this.#storeWebAuthnKeyInCache(key));\n // We create a temporary key so that the user doesn't have to reauthenticate via WebAuthn, we store this key\n // in IndexedDb, it is valid for 30 days (the same as the other key delegations we use).\n const tempKey = await ECDSAKeyIdentity.generate();\n return await this.#finaliseWebAuthnSignin(tempKey, () => webAuthnIdentity, assumeIdentity);\n }\n async signInWithWebAuthn() {\n const webAuthnOrigin = this.config.webAuthnOrigin;\n if (webAuthnOrigin === undefined)\n throw new Error(\"WebAuthn origin not set\");\n const webAuthnIdentity = new MultiWebAuthnIdentity(webAuthnOrigin, (credentialId) => this.lookupWebAuthnPubKey(credentialId));\n await this.#finaliseWebAuthnSignin(webAuthnIdentity, () => webAuthnIdentity.innerIdentity(), true);\n }\n async reSignInWithCurrentWebAuthnIdentity() {\n const webAuthnKey = this.#webAuthnKey ??\n (await this.#sendRequest({\n kind: \"currentUserWebAuthnKey\",\n }));\n if (webAuthnKey === undefined)\n throw new Error(\"WebAuthnKey not set\");\n const webAuthnIdentity = new WebAuthnIdentity(webAuthnKey.credentialId, unwrapDER(webAuthnKey.publicKey, DER_COSE_OID), undefined);\n return await this.#finaliseWebAuthnSignin(webAuthnIdentity, () => webAuthnIdentity, false);\n }\n async #finaliseWebAuthnSignin(initialKey, webAuthnIdentityFn, assumeIdentity) {\n const sessionKey = await ECDSAKeyIdentity.generate();\n const delegationChain = await DelegationChain.create(initialKey, sessionKey.getPublicKey(), new Date(Date.now() + 30 * ONE_DAY));\n const identity = DelegationIdentity.fromDelegation(sessionKey, delegationChain);\n // In the sign in case, we must defer getting the webAuthnIdentity until after it has been used to sign the\n // delegation, before that point we don't know which identity the user will choose.\n const webAuthnIdentity = webAuthnIdentityFn();\n const webAuthnKey = {\n publicKey: new Uint8Array(webAuthnIdentity.getPublicKey().toDer()),\n credentialId: new Uint8Array(webAuthnIdentity.rawId),\n };\n if (assumeIdentity) {\n this.#webAuthnKey = webAuthnKey;\n this.#authIdentityStorage.set(sessionKey, delegationChain);\n this.#loadedAuthenticationIdentity(identity, AuthProvider.PASSKEY);\n }\n return [sessionKey, delegationChain, webAuthnKey];\n }\n async lookupWebAuthnPubKey(credentialId) {\n const pubKey = await this.#sendRequest({\n kind: \"lookupWebAuthnPubKey\",\n credentialId,\n });\n if (pubKey === undefined) {\n throw new Error(\"Failed to lookup WebAuthn PubKey\");\n }\n return pubKey;\n }\n #storeWebAuthnKeyInCache(key) {\n return this.#sendRequest({\n kind: \"setCachedWebAuthnKey\",\n key,\n });\n }\n async generateMagicLink(email, sessionKey) {\n const sessionKeyDer = toDer(sessionKey);\n const resp = await this.#sendRequest({\n kind: \"generateMagicLink\",\n email,\n sessionKey: sessionKeyDer,\n }).catch((error) => ({\n kind: \"failed_to_send_email\",\n error: error.toString(),\n }));\n if (resp.kind === \"success\") {\n await storeEmailSignInSession(this.#authIdentityStorage.storage, {\n key: sessionKey,\n email,\n userKey: resp.userKey,\n expiration: resp.expiration,\n });\n }\n else {\n await removeEmailSignInSession(this.#authIdentityStorage.storage);\n }\n return resp;\n }\n getExternalAchievements() {\n return this.#sendRequest({ kind: \"getExternalAchievements\" }).catch((err) => {\n console.error(\"getExternalAchievements error\", err);\n return [];\n });\n }\n markAchievementsSeen() {\n this.#sendRequest({ kind: \"markAchievementsSeen\" }).catch((err) => {\n console.error(\"markAchievementsSeen\", err);\n });\n }\n async handleMagicLink(qs) {\n const signInWithEmailCanister = this.config.signInWithEmailCanister;\n const response = await fetch(`https://${signInWithEmailCanister}.raw.icp0.io/auth${qs}`);\n if (response.ok) {\n const session = await getEmailSignInSession(this.#authIdentityStorage.storage);\n if (session === undefined) {\n return { kind: \"session_not_found\" };\n }\n await this.getSignInWithEmailDelegation(session.email, session.userKey, session.key, session.expiration, true).catch((error) => ({\n kind: \"error\",\n error: error.toString(),\n }));\n return { kind: \"success\" };\n }\n else if (response.status === 400) {\n const body = await response.text();\n if (body === \"Link expired\") {\n return { kind: \"link_expired\" };\n }\n }\n return { kind: \"link_invalid\" };\n }\n async getSignInWithEmailDelegation(email, userKey, sessionKey, expiration, assumeIdentity) {\n const sessionKeyDer = toDer(sessionKey);\n const getDelegationResponse = await this.#sendRequest({\n kind: \"getSignInWithEmailDelegation\",\n email,\n sessionKey: sessionKeyDer,\n expiration,\n });\n if (getDelegationResponse.kind === \"success\") {\n const identity = buildDelegationIdentity(userKey, sessionKey, getDelegationResponse.delegation, getDelegationResponse.signature);\n const delegation = identity.getDelegation();\n if (assumeIdentity) {\n this.#authIdentityStorage.set(sessionKey, delegation);\n this.#loadedAuthenticationIdentity(identity, AuthProvider.EMAIL);\n }\n return {\n kind: \"success\",\n key: sessionKey,\n delegation,\n };\n }\n return getDelegationResponse;\n }\n siwePrepareLogin(address) {\n return this.#sendRequest({\n kind: \"siwePrepareLogin\",\n address,\n });\n }\n siwsPrepareLogin(address) {\n return this.#sendRequest({\n kind: \"siwsPrepareLogin\",\n address,\n });\n }\n async signInWithWallet(token, address, signature, assumeIdentity) {\n const sessionKey = await ECDSAKeyIdentity.generate();\n const sessionKeyDer = toDer(sessionKey);\n const loginResponse = await this.#sendRequest({\n kind: \"loginWithWallet\",\n token,\n address,\n signature,\n sessionKey: sessionKeyDer,\n });\n if (loginResponse.kind === \"success\") {\n const getDelegationResponse = await this.#sendRequest({\n kind: \"getDelegationWithWallet\",\n token,\n address,\n sessionKey: sessionKeyDer,\n expiration: loginResponse.expiration,\n });\n if (getDelegationResponse.kind === \"success\") {\n const identity = buildDelegationIdentity(loginResponse.userKey, sessionKey, getDelegationResponse.delegation, getDelegationResponse.signature);\n const delegation = identity.getDelegation();\n if (assumeIdentity) {\n await this.#authIdentityStorage.set(sessionKey, delegation);\n this.#loadedAuthenticationIdentity(identity, token === \"eth\" ? AuthProvider.ETH : AuthProvider.SOL);\n }\n return {\n kind: \"success\",\n key: sessionKey,\n delegation,\n };\n }\n return { kind: \"failure\" };\n }\n else {\n return { kind: \"failure\" };\n }\n }\n // **** Communities Stuff\n // takes a list of communities that may contain communities that we are a member of and/or preview communities\n // and overwrites them in the correct place\n updateCommunityIndexes(orderedCommunities) {\n const updates = {};\n for (let i = 0; i < orderedCommunities.length; i++) {\n const community = orderedCommunities[i];\n const index = orderedCommunities.length - i;\n // Skip if index is unchanged\n if (community.membership.index === index)\n continue;\n if (this.#liveState.communityPreviews.has(community.id)) {\n communityPreviewsStore.update((state) => state.set(community.id, {\n ...community,\n membership: {\n ...community.membership,\n index,\n },\n }));\n }\n else {\n localCommunitySummaryUpdates.updateIndex({\n kind: \"community\",\n communityId: community.id.communityId,\n }, index);\n // Queue the update to be sent to the canister\n updates[community.id.communityId] = index;\n }\n }\n if (Object.keys(updates).length > 0) {\n this.#sendRequest({ kind: \"setCommunityIndexes\", indexes: updates }).catch(() => false);\n }\n }\n async setSelectedCommunity(id, inviteCode, clearChat = true) {\n let community = this.#liveState.communities.get(id);\n if (community === undefined) {\n // if we don't have the community it means we're not a member and we need to look it up\n if (inviteCode) {\n await this.setCommunityInvite({ id, code: inviteCode });\n }\n const referredBy = this.#extractReferralCodeFromPath() ?? this.#referralCode;\n if (referredBy) {\n await this.setCommunityReferral(id, referredBy);\n }\n const resp = await this.#sendRequest({\n kind: \"getCommunitySummary\",\n communityId: id.communityId,\n });\n if (\"id\" in resp) {\n // Make the community appear at the top of the list\n resp.membership.index = nextCommunityIndex();\n community = resp;\n addCommunityPreview(community);\n }\n else {\n // if we get here it means we're not a member of the community and we can't look it up\n // it may be private and we may not be invited.\n return false;\n }\n }\n if (clearChat) {\n this.clearSelectedChat();\n }\n if (community !== undefined) {\n this.#loadCommunityDetails(community);\n }\n return true;\n }\n importToCommunity(groupId, communityId) {\n const group = this.#liveState.chatSummaries.get(groupId);\n return this.#sendRequest({\n kind: \"importGroupToCommunity\",\n groupId,\n communityId,\n })\n .then((resp) => {\n if (resp.kind === \"success\") {\n if (group !== undefined) {\n localChatSummaryUpdates.markAdded({\n ...group,\n id: resp.channelId,\n kind: \"channel\",\n });\n }\n return resp.channelId;\n }\n return undefined;\n })\n .catch(() => undefined);\n }\n submitProofOfUniquePersonhood(credential, iiPrincipal) {\n return this.#sendRequest({\n kind: \"submitProofOfUniquePersonhood\",\n iiPrincipal,\n credential,\n })\n .then((resp) => {\n if (resp.kind === \"success\") {\n currentUser.update((user) => ({\n ...user,\n isUniquePerson: true,\n }));\n this.#overwriteUserInStore(this.#liveState.user.userId, (u) => ({\n ...u,\n isUniquePerson: true,\n }));\n }\n return resp;\n })\n .catch((err) => {\n console.error(\"Failed to submit proof of unique personhood to the user index\", err);\n return { kind: \"invalid\" };\n });\n }\n async joinCommunity(community, credentials, paymentApprovals) {\n const approveResponse = await this.approveAccessGatePayments(community, paymentApprovals);\n if (approveResponse.kind !== \"success\") {\n return approveResponse;\n }\n return this.#sendRequest({\n kind: \"joinCommunity\",\n id: community.id,\n credentialArgs: this.#buildVerifiedCredentialArgs(credentials),\n })\n .then((resp) => {\n if (resp.kind === \"success\") {\n // Make the community appear at the top of the list\n resp.community.membership.index = nextCommunityIndex();\n this.#addCommunityLocally(resp.community);\n removeCommunityPreview(community.id);\n this.#loadCommunityDetails(resp.community);\n messagesRead.batchUpdate(() => {\n resp.community.channels.forEach((c) => {\n if (c.latestMessage) {\n messagesRead.markReadUpTo({ chatId: c.id }, c.latestMessage.event.messageIndex);\n }\n });\n });\n }\n else {\n if (resp.kind === \"gate_check_failed\") {\n return resp;\n }\n return CommonResponses.failure();\n }\n return CommonResponses.success();\n })\n .catch(() => CommonResponses.failure());\n }\n deleteCommunity(id) {\n const community = this.#liveState.communities.get(id);\n if (community === undefined)\n return Promise.resolve(false);\n this.#removeCommunityLocally(id);\n return this.#sendRequest({ kind: \"deleteCommunity\", id })\n .then((resp) => {\n if (resp !== \"success\") {\n this.#addCommunityLocally(community);\n }\n return resp === \"success\";\n })\n .catch(() => false);\n }\n leaveCommunity(id) {\n const community = this.#liveState.communities.get(id);\n if (community === undefined)\n return Promise.resolve(false);\n this.#removeCommunityLocally(id);\n return this.#sendRequest({ kind: \"leaveCommunity\", id })\n .then((resp) => {\n if (resp !== \"success\") {\n this.#addCommunityLocally(community);\n }\n return resp === \"success\";\n })\n .catch(() => false);\n }\n createCommunity(candidate, rules, defaultChannels) {\n return this.#sendRequest({\n kind: \"createCommunity\",\n community: candidate,\n rules,\n defaultChannels,\n defaultChannelRules: defaultChatRules(\"channel\"),\n })\n .then((resp) => {\n if (resp.kind === \"success\") {\n candidate.id = {\n kind: \"community\",\n communityId: resp.id,\n };\n this.#addCommunityLocally(candidate);\n }\n return resp;\n })\n .catch(() => ({\n kind: \"failure\",\n }));\n }\n addToFavourites(chatId) {\n localChatSummaryUpdates.favourite(chatId);\n return this.#sendRequest({ kind: \"addToFavourites\", chatId })\n .then((resp) => {\n if (resp !== \"success\") {\n localChatSummaryUpdates.unfavourite(chatId);\n }\n return resp === \"success\";\n })\n .catch(() => {\n localChatSummaryUpdates.unfavourite(chatId);\n return false;\n });\n }\n removeFromFavourites(chatId) {\n localChatSummaryUpdates.unfavourite(chatId);\n if (this.#liveState.chatSummariesList.length === 0) {\n this.dispatchEvent(new SelectedChatInvalid());\n }\n return this.#sendRequest({ kind: \"removeFromFavourites\", chatId })\n .then((resp) => {\n if (resp !== \"success\") {\n localChatSummaryUpdates.favourite(chatId);\n }\n return resp === \"success\";\n })\n .catch(() => {\n localChatSummaryUpdates.favourite(chatId);\n return false;\n });\n }\n saveCommunity(community, name, description, rules, permissions, avatar, banner, gateConfig, isPublic, primaryLanguage) {\n return this.#sendRequest({\n kind: \"updateCommunity\",\n communityId: community.id.communityId,\n name,\n description,\n rules,\n permissions,\n avatar,\n banner,\n gateConfig,\n isPublic,\n primaryLanguage,\n })\n .then((resp) => {\n if (resp.kind === \"success\") {\n globalStateStore.update((g) => {\n g.communities.set(community.id, community);\n return g;\n });\n if (rules !== undefined && resp.rulesVersion !== undefined) {\n communityStateStore.setProp(community.id, \"rules\", {\n text: rules.text,\n enabled: rules.enabled,\n version: resp.rulesVersion,\n });\n }\n return true;\n }\n return false;\n })\n .catch(() => false);\n }\n convertGroupToCommunity(group, rules) {\n return this.#sendRequest({\n kind: \"convertGroupToCommunity\",\n chatId: group.id,\n historyVisible: group.historyVisible,\n rules,\n })\n .then((resp) => (resp.kind === \"success\" ? resp.id : undefined))\n .catch(() => undefined);\n }\n #deleteUserGroupLocally(id, userGroup) {\n communityStateStore.updateProp(id, \"userGroups\", (groups) => {\n groups.delete(userGroup.id);\n return new Map(groups);\n });\n }\n #undeleteUserGroupLocally(id, userGroup) {\n communityStateStore.updateProp(id, \"userGroups\", (groups) => {\n groups.set(userGroup.id, userGroup);\n return new Map(groups);\n });\n }\n deleteUserGroup(id, userGroup) {\n this.#deleteUserGroupLocally(id, userGroup);\n return this.#sendRequest({\n kind: \"deleteUserGroups\",\n communityId: id.communityId,\n userGroupIds: [userGroup.id],\n })\n .then((resp) => {\n if (resp.kind !== \"success\") {\n this.#undeleteUserGroupLocally(id, userGroup);\n }\n return resp.kind === \"success\";\n })\n .catch(() => {\n this.#undeleteUserGroupLocally(id, userGroup);\n return false;\n });\n }\n createUserGroup(id, userGroup) {\n return this.#sendRequest({\n kind: \"createUserGroup\",\n communityId: id.communityId,\n name: userGroup.name,\n userIds: [...userGroup.members],\n })\n .then((resp) => {\n if (resp.kind === \"success\") {\n communityStateStore.updateProp(id, \"userGroups\", (groups) => {\n groups.set(resp.userGroupId, { ...userGroup, id: resp.userGroupId });\n return new Map(groups);\n });\n }\n return resp;\n })\n .catch(() => CommonResponses.failure());\n }\n getCommunityForChannel(id) {\n return this.#liveState.communities.values().find((c) => {\n return c.channels.findIndex((ch) => chatIdentifiersEqual(ch.id, id)) >= 0;\n });\n }\n updateUserGroup(id, userGroup, toAdd, toRemove) {\n return this.#sendRequest({\n kind: \"updateUserGroup\",\n communityId: id.communityId,\n userGroupId: userGroup.id,\n name: userGroup.name,\n usersToAdd: [...toAdd],\n usersToRemove: [...toRemove],\n })\n .then((resp) => {\n if (resp.kind === \"success\") {\n communityStateStore.updateProp(id, \"userGroups\", (groups) => {\n groups.set(userGroup.id, userGroup);\n return new Map(groups);\n });\n }\n return resp;\n })\n .catch(() => CommonResponses.failure());\n }\n setChatListScope(scope) {\n if (scope.kind === \"none\") {\n chatListScopeStore.set(this.getDefaultScope());\n }\n else if (this.#liveState.chatListScope !== scope) {\n chatListScopeStore.set(scope);\n }\n }\n getDefaultScope() {\n if (this.#liveState.anonUser)\n return { kind: \"group_chat\" };\n // sometimes we have to re-direct the user to home route \"/\"\n // However, with communities enabled it is not clear what this means\n // we actually need to direct the user to one of the global scopes \"direct\", \"group\" or \"favourites\"\n // which one we choose is kind of unclear and probably depends on the state\n const global = this.#liveState.globalState;\n const favourites = this.#liveState.favourites;\n if (favourites.size > 0)\n return { kind: \"favourite\" };\n if (global.groupChats.size > 0)\n return { kind: \"group_chat\" };\n return { kind: \"direct_chat\" };\n }\n getUserLocation() {\n if (this.#userLocation !== undefined) {\n return Promise.resolve(this.#userLocation);\n }\n return getUserCountryCode()\n .then((country) => {\n this.#userLocation = country;\n console.debug(\"GEO: derived user's location: \", country);\n return country;\n })\n .catch((err) => {\n console.warn(\"GEO: Unable to determine user's country location\", err);\n return undefined;\n });\n }\n swapRestricted() {\n if (this.#liveState.user.isPlatformOperator) {\n return Promise.resolve(false);\n }\n return this.getUserLocation().then((location) => featureRestricted(location, \"swap\"));\n }\n setPinNumber(verification, newPin) {\n pinNumberFailureStore.set(undefined);\n return this.#sendRequest({ kind: \"setPinNumber\", verification, newPin }).then((resp) => {\n if (resp.kind === \"success\") {\n pinNumberRequiredStore.set(newPin !== undefined);\n }\n else if (resp.kind === \"pin_incorrect\" ||\n resp.kind === \"pin_required\" ||\n resp.kind === \"too_main_failed_pin_attempts\") {\n pinNumberFailureStore.set(resp);\n }\n return resp;\n });\n }\n #promptForCurrentPin(message) {\n pinNumberFailureStore.set(undefined);\n return new Promise((resolve, reject) => {\n capturePinNumberStore.set({\n resolve: (pin) => {\n capturePinNumberStore.set(undefined);\n resolve(pin);\n },\n reject: () => {\n capturePinNumberStore.set(undefined);\n reject(\"cancelled\");\n },\n message,\n });\n });\n }\n #promptForRuleAcceptance() {\n return new Promise((resolve, _) => {\n captureRulesAcceptanceStore.set({\n resolve: (accepted) => {\n let acceptedRules = undefined;\n if (accepted) {\n acceptedRules = {\n chat: undefined,\n community: undefined,\n };\n if (this.#liveState.currentChatRules?.enabled ?? false) {\n acceptedRules.chat = this.#liveState.currentChatRules?.version;\n }\n if (this.#liveState.currentCommunityRules?.enabled ?? false) {\n acceptedRules.community =\n this.#liveState.currentCommunityRules?.version;\n }\n }\n captureRulesAcceptanceStore.set(undefined);\n resolve(acceptedRules);\n },\n });\n });\n }\n getStreak(userId) {\n if (userId === undefined)\n return 0;\n if (userId === this.#liveState.user.userId) {\n const now = Date.now();\n return this.#liveState.chitState.streakEnds < now\n ? 0\n : this.#liveState.chitState.streak;\n }\n return this.#liveState.userStore.get(userId)?.streak ?? 0;\n }\n getBotDefinition(endpoint) {\n return this.#sendRequest({\n kind: \"getBotDefinition\",\n endpoint,\n }).catch((err) => {\n this.#logger.error(\"Failed to get the bot definition\", endpoint, err);\n return {\n kind: \"bot_definition_failure\",\n error: err,\n };\n });\n }\n #callBotCommandEndpoint(endpoint, token) {\n return this.#sendRequest({\n kind: \"callBotCommandEndpoint\",\n endpoint,\n token,\n });\n }\n generateBotApiKey(id, botId, permissions) {\n return this.#sendRequest({\n kind: \"generateBotApiKey\",\n id,\n botId,\n permissions,\n }).catch((err) => {\n this.#logger.error(\"Failed to generate api key\", err);\n return { kind: \"failure\" };\n });\n }\n getApiKey(id, botId) {\n return this.#sendRequest({\n kind: \"getApiKey\",\n id,\n botId,\n }).catch((err) => {\n this.#logger.error(\"Failed to get api key\", err);\n return undefined;\n });\n }\n executeInternalBotCommand(scope, bot) {\n // Internal commands currently only make sense in a chat scope\n if (scope.kind === \"community_scope\")\n return Promise.resolve(\"success\");\n const context = {\n chatId: scope.chatId,\n threadRootMessageIndex: scope.threadRootMessageIndex,\n };\n if (bot.command.name === \"witch\") {\n this.dispatchEvent(new SummonWitch());\n }\n else if (bot.command.name === \"register_bot\") {\n this.dispatchEvent(new RegisterBot());\n }\n else if (bot.command.name === \"update_bot\") {\n this.dispatchEvent(new UpdateBot());\n }\n else if (bot.command.name === \"remove_bot\") {\n this.dispatchEvent(new RemoveBot());\n }\n else if (bot.command.name === \"poll\") {\n this.dispatchEvent(new CreatePoll(context));\n }\n else if (bot.command.name === \"gif\") {\n const param = bot.command.arguments[0];\n if (param !== undefined && param.kind === \"string\" && param.value !== undefined) {\n this.dispatchEvent(new AttachGif([context, param.value]));\n }\n }\n else if (bot.command.name === \"crypto\") {\n const ev = new TokenTransfer({ context: context });\n const [token, amount] = bot.command.arguments;\n if (token !== undefined &&\n token.kind === \"string\" &&\n amount !== undefined &&\n amount.kind === \"decimal\" &&\n amount.value !== null) {\n const tokenDetails = Object.values(get(cryptoLookup)).find((t) => t.symbol.toLowerCase() === token.value?.toLocaleLowerCase());\n if (tokenDetails !== undefined) {\n ev.detail.ledger = tokenDetails.ledger;\n ev.detail.amount = this.validateTokenInput(amount.value.toString(), tokenDetails.decimals).amount;\n }\n }\n this.dispatchEvent(ev);\n }\n else if (bot.command.name === \"test-msg\") {\n const param = bot.command.arguments[0];\n if (param !== undefined && param.kind === \"decimal\" && param.value !== null) {\n this.dispatchEvent(new CreateTestMessages([context, param.value]));\n }\n }\n else if (bot.command.name === \"diamond\") {\n const url = addQueryStringParam(\"diamond\", \"\");\n const msg = `[${this.config.i18nFormatter(\"upgrade.message\")}](${url})`;\n this.sendMessageWithAttachment(context, msg, false, undefined, []);\n }\n else if (bot.command.name === \"faq\") {\n const topic = bot.command.arguments[0]?.kind === \"string\"\n ? bot.command.arguments[0]?.value\n : undefined;\n const url = topic === undefined || topic === \"\" ? \"/faq\" : `/faq?q=${topic}`;\n const msg = topic === undefined\n ? `[🤔 FAQs](/faq)`\n : `[🤔 FAQ: ${this.config.i18nFormatter(`faq.${topic}_q`)}](${url})`;\n this.sendMessageWithAttachment(context, msg, false, undefined, []);\n }\n else if (bot.command.name === \"search\" && bot.command.arguments[0]?.kind === \"string\") {\n this.dispatchEvent(new SearchChat(bot.command.arguments[0]?.value ?? \"\"));\n }\n return Promise.resolve(\"success\");\n }\n #messageIdFromBotActionScope(scope) {\n switch (scope.kind) {\n case \"chat_scope\":\n return scope.messageId;\n case \"community_scope\":\n return random64();\n }\n }\n #getAuthTokenForBotCommand(scope, bot) {\n const messageId = this.#messageIdFromBotActionScope(scope);\n return this.#getLocalUserIndexForBotActionScope(scope).then((localUserIndex) => {\n return this.#sendRequest({\n kind: \"getAccessToken\",\n accessTokenType: {\n kind: \"bot_action_by_command\",\n botId: bot.id,\n scope: scope.kind === \"chat_scope\" && scope.chatId.kind === \"direct_chat\"\n ? {\n ...scope,\n chatId: { ...scope.chatId, userId: this.#liveState.user.userId },\n }\n : scope,\n command: {\n initiator: this.#liveState.user.userId,\n commandName: bot.command.name,\n arguments: bot.command.arguments,\n meta: {\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n language: this.#liveState.locale.substring(0, 2),\n },\n },\n },\n localUserIndex,\n }).then((token) => {\n if (token === undefined) {\n throw new Error(\"Didn't get an access token\");\n }\n console.log(\"TOKEN: \", token, messageId);\n return [token, messageId];\n });\n });\n }\n installBot(id, botId, grantedPermissions) {\n this.#installBotLocally(id, botId, grantedPermissions);\n return this.#sendRequest({\n kind: \"installBot\",\n id,\n botId,\n grantedPermissions,\n })\n .then((resp) => {\n if (!resp) {\n this.#uninstallBotLocally(id, botId);\n }\n return resp;\n })\n .catch((err) => {\n this.#logger.error(\"Error adding bot to group or community\", err);\n return false;\n });\n }\n updateInstalledBot(id, botId, grantedPermissions) {\n return this.#sendRequest({\n kind: \"updateInstalledBot\",\n id,\n botId,\n grantedPermissions,\n }).catch((err) => {\n this.#logger.error(\"Error adding bot to group or community\", err);\n return false;\n });\n }\n #uninstallBotLocally(id, botId) {\n let perm;\n switch (id.kind) {\n case \"community\":\n perm = this.#liveState.currentCommunityBots.get(botId);\n localCommunitySummaryUpdates.removeBot(id, botId);\n break;\n case \"group_chat\":\n perm = this.#liveState.currentChatBots.get(botId);\n localChatSummaryUpdates.removeBot(id, botId);\n break;\n case \"direct_chat\":\n perm = this.#liveState.installedDirectBots.get(botId);\n localGlobalUpdates.removeBot(botId);\n this.removeChat({ kind: \"direct_chat\", userId: botId });\n break;\n }\n return perm;\n }\n #installBotLocally(id, botId, perm) {\n let previousPermissions = undefined;\n switch (id.kind) {\n case \"community\":\n if (perm === undefined)\n return perm;\n previousPermissions = this.#liveState.currentCommunityBots.get(botId);\n localCommunitySummaryUpdates.installBot(id, botId, perm);\n break;\n case \"group_chat\":\n if (perm === undefined)\n return perm;\n previousPermissions = this.#liveState.currentChatBots.get(botId);\n localChatSummaryUpdates.installBot(id, botId, perm);\n break;\n case \"direct_chat\":\n if (perm === undefined)\n return perm;\n previousPermissions = this.#liveState.installedDirectBots.get(botId);\n localGlobalUpdates.installBot(botId, perm);\n break;\n }\n return previousPermissions;\n }\n uninstallBot(id, botId) {\n const perm = this.#uninstallBotLocally(id, botId);\n return this.#sendRequest({\n kind: \"uninstallBot\",\n id,\n botId,\n })\n .then((success) => {\n if (!success) {\n this.#installBotLocally(id, botId, perm);\n }\n return success;\n })\n .catch((err) => {\n this.#logger.error(\"Error removing bot from group or community\", err);\n return false;\n });\n }\n sendPlaceholderBotMessage(scope, botContext, content, msgId, senderId, blockLevelMarkdown, ephemeral) {\n // we can't send a placeholder message to a community scope but that's ok\n if (scope.kind === \"community_scope\")\n return () => undefined;\n this.getMissingUsers([senderId]);\n const context = {\n chatId: scope.chatId,\n threadRootMessageIndex: scope.threadRootMessageIndex,\n };\n if (unconfirmed.contains(context, msgId)) {\n unconfirmed.overwriteContent(context, msgId, content, botContext, blockLevelMarkdown);\n }\n else {\n const currentEvents = this.#eventsForMessageContext(context);\n const [eventIndex, messageIndex] = context.threadRootMessageIndex !== undefined\n ? nextEventAndMessageIndexesForThread(currentEvents)\n : nextEventAndMessageIndexes();\n this.dispatchEvent(new SendingMessage(context));\n const event = {\n index: eventIndex,\n timestamp: BigInt(Date.now()),\n event: {\n content,\n messageIndex,\n kind: \"message\",\n sender: senderId,\n messageId: msgId,\n reactions: [],\n tips: {},\n edited: false,\n forwarded: false,\n deleted: false,\n blockLevelMarkdown: blockLevelMarkdown,\n botContext,\n },\n };\n if (!ephemeral) {\n unconfirmed.add(context, event);\n }\n else {\n ephemeralMessages.add(context, event);\n }\n this.dispatchEvent(new SentMessage(context, event));\n }\n return () => unconfirmed.delete(context, msgId);\n }\n executeBotCommand(scope, bot, direct = false) {\n const botContext = direct\n ? undefined\n : {\n finalised: false,\n command: {\n name: bot.command.name,\n args: bot.command.arguments,\n initiator: this.#liveState.user.userId,\n },\n };\n let removePlaceholder = undefined;\n switch (bot.kind) {\n case \"external_bot\":\n return this.#getAuthTokenForBotCommand(scope, bot)\n .then(([token, msgId]) => {\n if (bot.command.name !== \"sync_api_key\") {\n removePlaceholder = this.sendPlaceholderBotMessage(scope, botContext, bot.command.placeholder !== undefined\n ? { kind: \"text_content\", text: bot.command.placeholder }\n : { kind: \"bot_placeholder_content\" }, msgId, bot.id, false, false);\n }\n return this.#callBotCommandEndpoint(bot.endpoint, token);\n })\n .then((resp) => {\n if (resp.kind !== \"success\") {\n console.error(\"Bot command failed with: \", resp);\n removePlaceholder?.();\n if (resp.kind === \"too_many_requests\") {\n console.log(\"Too many requests\");\n return \"too_many_requests\";\n }\n else {\n return \"failure\";\n }\n }\n else {\n if (resp.message !== undefined) {\n // The message that comes back from the bot may be marked as ephemeral in which\n // case it will have a different messageId\n if (resp.message.ephemeral) {\n removePlaceholder?.();\n }\n removePlaceholder = this.sendPlaceholderBotMessage(scope, { ...botContext, finalised: resp.message.finalised }, resp.message.messageContent, resp.message.messageId, bot.id, resp.message.blockLevelMarkdown, resp.message.ephemeral);\n }\n else {\n removePlaceholder?.();\n }\n return \"success\";\n }\n })\n .catch((err) => {\n console.log(\"Bot command failed with\", err);\n removePlaceholder?.();\n return \"failure\";\n });\n case \"internal_bot\":\n return this.executeInternalBotCommand(scope, bot);\n }\n }\n contentTypeSupportsEdit(contentType) {\n return isEditableContent(contentType);\n }\n claimDailyChit() {\n const userId = this.#liveState.user.userId;\n return this.#sendRequest({ kind: \"claimDailyChit\" }).then((resp) => {\n if (resp.kind === \"success\") {\n chitStateStore.update((state) => ({\n chitBalance: resp.chitBalance,\n streakEnds: resp.nextDailyChitClaim + BigInt(1000 * 60 * 60 * 24),\n streak: resp.streak,\n nextDailyChitClaim: resp.nextDailyChitClaim,\n totalChitEarned: state.totalChitEarned + resp.chitEarned,\n }));\n this.#overwriteUserInStore(userId, (user) => ({\n ...user,\n chitBalance: resp.chitBalance,\n streak: resp.streak,\n }));\n }\n else if (resp.kind === \"already_claimed\") {\n chitStateStore.update((state) => ({\n ...state,\n nextDailyChitClaim: resp.nextDailyChitClaim,\n }));\n }\n return resp;\n });\n }\n chitLeaderboard() {\n return this.#sendRequest({ kind: \"chitLeaderboard\" });\n }\n chitEvents(req) {\n return this.#sendRequest(req).catch((err) => {\n this.logError(\"Failed to load chit events\", err);\n return {\n events: [],\n total: 0,\n };\n });\n }\n #authProviderFromAuthPrincipal(principal) {\n if (principal.originatingCanister === WEBAUTHN_ORIGINATING_CANISTER) {\n return AuthProvider.PASSKEY;\n }\n else if (principal.originatingCanister === this.config.signInWithEthereumCanister) {\n return AuthProvider.ETH;\n }\n else if (principal.originatingCanister === this.config.signInWithSolanaCanister) {\n return AuthProvider.SOL;\n }\n else if (principal.originatingCanister === this.config.signInWithEmailCanister) {\n return AuthProvider.EMAIL;\n }\n else if (principal.originatingCanister === import.meta.env.OC_INTERNET_IDENTITY_CANISTER_ID) {\n if (principal.isIIPrincipal) {\n return AuthProvider.II;\n }\n else {\n return AuthProvider.NFID;\n }\n }\n return AuthProvider.II;\n }\n getAuthenticationPrincipals() {\n return this.#sendRequest({\n kind: \"getAuthenticationPrincipals\",\n }).then((principals) => {\n return principals.map((p) => {\n return {\n ...p,\n provider: this.#authProviderFromAuthPrincipal(p),\n };\n });\n });\n }\n getLinkedIIPrincipal() {\n return this.#sendRequest({\n kind: \"getAuthenticationPrincipals\",\n })\n .then((resp) => {\n const iiPrincipals = resp\n .filter(({ originatingCanister, isIIPrincipal }) => originatingCanister ===\n import.meta.env.OC_INTERNET_IDENTITY_CANISTER_ID && isIIPrincipal)\n .map((p) => p.principal);\n if (iiPrincipals.length === 0) {\n console.debug(\"No II principals found, we will have to ask the user to link one\");\n }\n if (this.#authPrincipal !== undefined &&\n iiPrincipals.includes(this.#authPrincipal)) {\n return this.#authPrincipal;\n }\n return iiPrincipals[0];\n })\n .catch((err) => {\n console.log(\"Error loading authentication principals: \", err);\n return undefined;\n });\n }\n linkIdentities(initiatorKey, initiatorDelegation, initiatorIsIIPrincipal, initiatorWebAuthnKey, approverKey, approverDelegation) {\n return this.#sendRequest({\n kind: \"linkIdentities\",\n initiatorKey: initiatorKey.getKeyPair(),\n initiatorDelegation: initiatorDelegation.toJSON(),\n initiatorIsIIPrincipal,\n initiatorWebAuthnKey,\n approverKey: approverKey.getKeyPair(),\n approverDelegation: approverDelegation.toJSON(),\n });\n }\n removeIdentityLink(linked_principal) {\n return this.#sendRequest({\n kind: \"removeIdentityLink\",\n linked_principal,\n });\n }\n removeTokenFromWallet(ledger) {\n const config = this.#liveState.walletConfig;\n if (config.kind === \"manual_wallet\") {\n if (config.tokens.delete(ledger)) {\n return this.setWalletConfig(config);\n }\n }\n }\n setsAreEqual(a, b) {\n if (a.size !== b.size)\n return false;\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n }\n walletConfigChanged(a, b) {\n if (a.kind !== b.kind)\n return true;\n if (a.kind === \"auto_wallet\" && b.kind === \"auto_wallet\")\n return a.minDollarValue !== b.minDollarValue;\n if (a.kind === \"manual_wallet\" && b.kind === \"manual_wallet\")\n return !this.setsAreEqual(a.tokens, b.tokens);\n return false;\n }\n setWalletConfig(config) {\n localGlobalUpdates.updateWallet(config);\n return this.#sendRequest({\n kind: \"configureWallet\",\n config,\n })\n .then(() => true)\n .catch(() => false);\n }\n withdrawFromIcpSwap(userId, swapId, inputToken, amount, fee) {\n return this.#sendRequest({\n kind: \"withdrawFromIcpSwap\",\n userId,\n swapId,\n inputToken,\n amount,\n fee,\n });\n }\n // This is stuff that used to be in agentWorker\n #connectToWorker(authPrincipal, authProvider) {\n console.debug(\"WORKER_CLIENT: loading worker with version: \", this.config.websiteVersion);\n const workerUrl = `/worker.js?v=${this.config.websiteVersion}`;\n this.#worker = new Worker(new URL(workerUrl, import.meta.url), {\n type: \"module\",\n });\n const initResponse = new Promise((resolve) => {\n this.#sendRequest({\n kind: \"init\",\n authPrincipal,\n authProvider,\n icUrl: this.config.icUrl ?? window.location.origin,\n iiDerivationOrigin: this.config.iiDerivationOrigin,\n openStorageIndexCanister: this.config.openStorageIndexCanister,\n groupIndexCanister: this.config.groupIndexCanister,\n notificationsCanister: this.config.notificationsCanister,\n identityCanister: this.config.identityCanister,\n onlineCanister: this.config.onlineCanister,\n userIndexCanister: this.config.userIndexCanister,\n translationsCanister: this.config.translationsCanister,\n registryCanister: this.config.registryCanister,\n internetIdentityUrl: this.config.internetIdentityUrl,\n nfidUrl: this.config.nfidUrl,\n userGeekApiKey: this.config.userGeekApiKey,\n enableMultiCrypto: this.config.enableMultiCrypto,\n blobUrlPattern: this.config.blobUrlPattern,\n achievementUrlPath: this.config.achievementUrlPath,\n proposalBotCanister: this.config.proposalBotCanister,\n marketMakerCanister: this.config.marketMakerCanister,\n signInWithEmailCanister: this.config.signInWithEmailCanister,\n signInWithEthereumCanister: this.config.signInWithEthereumCanister,\n signInWithSolanaCanister: this.config.signInWithSolanaCanister,\n websiteVersion: this.config.websiteVersion,\n rollbarApiKey: this.config.rollbarApiKey,\n env: this.config.env,\n bitcoinMainnetEnabled: this.config.bitcoinMainnetEnabled,\n groupInvite: this.config.groupInvite,\n }, true).then((resp) => {\n resolve(resp);\n this.#connectedToWorker = true;\n });\n });\n this.#worker.onmessage = (ev) => {\n if (!ev.data) {\n console.debug(\"WORKER_CLIENT: event message with no data received\");\n return;\n }\n const data = ev.data;\n if (data.kind === \"worker_event\") {\n if (data.event.subkind === \"messages_read_from_server\") {\n messagesRead.syncWithServer(data.event.chatId, data.event.readByMeUpTo, data.event.threadsRead, data.event.dateReadPinned);\n }\n if (data.event.subkind === \"storage_updated\") {\n storageStore.set(data.event.status);\n }\n if (data.event.subkind === \"users_loaded\") {\n userStore.addMany(data.event.users);\n }\n }\n else if (data.kind === \"worker_response\") {\n console.debug(\"WORKER_CLIENT: response: \", ev);\n this.#resolveResponse(data);\n }\n else if (data.kind === \"worker_error\") {\n console.debug(\"WORKER_CLIENT: error: \", ev);\n this.#resolveError(data);\n }\n else {\n console.debug(\"WORKER_CLIENT: unknown message: \", ev);\n }\n };\n return initResponse;\n }\n #logUnexpected(correlationId) {\n const unresolved = this.#unresolved.get(correlationId);\n const timedOut = unresolved === undefined\n ? \"\"\n : `Timed-out req of kind: ${unresolved.kind} received after ${Date.now() - unresolved.sentAt}ms`;\n console.error(`WORKER_CLIENT: unexpected correlationId received (${correlationId}). ${timedOut}`);\n }\n #resolveResponse(data) {\n const promise = this.#pending.get(data.correlationId);\n if (promise !== undefined) {\n promise.resolve(data.response, data.final);\n if (data.final) {\n window.clearTimeout(promise.timeout);\n this.#pending.delete(data.correlationId);\n }\n }\n else {\n this.#logUnexpected(data.correlationId);\n }\n this.#unresolved.delete(data.correlationId);\n }\n #resolveError(data) {\n const promise = this.#pending.get(data.correlationId);\n if (promise !== undefined) {\n promise.reject(JSON.parse(data.error));\n window.clearTimeout(promise.timeout);\n this.#pending.delete(data.correlationId);\n }\n else {\n this.#logUnexpected(data.correlationId);\n }\n this.#unresolved.delete(data.correlationId);\n }\n responseHandler(req, correlationId, timeout) {\n return (resolve, reject) => {\n const sentAt = Date.now();\n this.#pending.set(correlationId, {\n resolve,\n reject,\n timeout: window.setTimeout(() => {\n reject(`WORKER_CLIENT: Request of kind ${req.kind} with correlationId ${correlationId} did not receive a response withing the ${DEFAULT_WORKER_TIMEOUT}ms timeout`);\n this.#unresolved.set(correlationId, {\n kind: req.kind,\n sentAt,\n });\n this.#pending.delete(correlationId);\n }, timeout),\n });\n };\n }\n #sendStreamRequest(req, connecting = false, timeout = DEFAULT_WORKER_TIMEOUT) {\n //eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n return new Stream(this.#sendRequestInternal(req, connecting, timeout));\n }\n async #sendRequest(req, connecting = false, timeout = DEFAULT_WORKER_TIMEOUT) {\n //eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n return new Promise(this.#sendRequestInternal(req, connecting, timeout));\n }\n #sendRequestInternal(req, connecting, timeout) {\n if (!connecting && !this.#connectedToWorker) {\n throw new Error(\"WORKER_CLIENT: the client is not yet connected to the worker\");\n }\n const correlationId = random128().toString();\n try {\n this.#worker.postMessage({\n ...req,\n correlationId,\n });\n }\n catch (err) {\n console.error(\"Error sending postMessage to worker\", err);\n throw err;\n }\n return this.responseHandler(req, correlationId, timeout);\n }\n getBotConfig() {\n const metricsUrl = import.meta.env.OC_NODE_ENV === \"production\"\n ? `https://${this.config.userIndexCanister}.raw.ic0.app/metrics`\n : `http://${this.config.userIndexCanister}.raw.localhost:8080/metrics`;\n return fetch(metricsUrl, {\n headers: { \"Content-Type\": \"application/json\" },\n })\n .then((res) => {\n if (res.ok) {\n return res.json();\n }\n })\n .then((metrics) => {\n return {\n ocPublicKey: metrics.oc_public_key,\n openStorageIndexCanister: this.config.openStorageIndexCanister,\n icHost: this.config.icUrl ?? window.location.origin,\n };\n });\n }\n}\n","export function getTimeUntilSessionExpiryMs(identity) {\n if (!(\"getDelegation\" in identity)) {\n return 0;\n }\n const expiryDateTimestampMs = Number(identity\n .getDelegation()\n .delegations.map((d) => d.delegation.expiration)\n .reduce((current, next) => (next < current ? next : current)) / BigInt(1_000_000));\n return expiryDateTimestampMs - Date.now();\n}\n","export function isMessageNotification(notification) {\n return (notification.kind === \"direct_notification\" ||\n notification.kind === \"group_notification\" ||\n notification.kind === \"channel_notification\");\n}\n","export const emptyPermissions = {\n chatPermissions: [],\n communityPermissions: [],\n messagePermissions: [],\n};\nexport const builtinBot = {\n kind: \"internal_bot\",\n name: \"bots.builtin.name\",\n definition: {\n kind: \"bot_definition\",\n description: \"bots.builtin.desc\",\n commands: [\n {\n name: \"crypto\",\n defaultRole: \"member\",\n directMessages: false,\n description: \"bots.crypto.desc\",\n directBotDisabled: true,\n permissions: {\n ...emptyPermissions,\n messagePermissions: [\"crypto\"],\n },\n params: [\n {\n kind: \"string\",\n name: \"bots.crypto.params.token.name\",\n minLength: 0,\n maxLength: 10,\n required: false,\n description: \"bots.crypto.params.token.desc\",\n placeholder: \"bots.crypto.params.token.placeholder\",\n choices: [],\n multi_line: false,\n },\n {\n kind: \"decimal\",\n name: \"bots.crypto.params.amount.name\",\n minValue: 0,\n maxValue: Number.MAX_VALUE,\n required: false,\n description: \"bots.crypto.params.amount.desc\",\n placeholder: \"bots.crypto.params.amount.placeholder\",\n choices: [],\n },\n ],\n },\n {\n name: \"diamond\",\n defaultRole: \"member\",\n directMessages: false,\n description: \"bots.diamond.desc\",\n permissions: {\n ...emptyPermissions,\n messagePermissions: [\"text\"],\n },\n params: [],\n directBotDisabled: true,\n },\n {\n name: \"gif\",\n defaultRole: \"member\",\n directMessages: false,\n description: \"bots.gif.desc\",\n permissions: {\n ...emptyPermissions,\n messagePermissions: [\"giphy\"],\n },\n params: [\n {\n kind: \"string\",\n name: \"bots.gif.params.term.name\",\n minLength: 0,\n maxLength: 100,\n required: false,\n description: \"bots.gif.params.term.desc\",\n placeholder: \"bots.gif.params.term.placeholder\",\n choices: [],\n multi_line: false,\n },\n ],\n directBotDisabled: true,\n },\n {\n name: \"faq\",\n defaultRole: \"member\",\n directMessages: false,\n description: \"bots.faq.desc\",\n permissions: {\n ...emptyPermissions,\n messagePermissions: [\"text\"],\n },\n params: [\n {\n kind: \"string\",\n name: \"bots.faq.params.topic.name\",\n minLength: 0,\n maxLength: 100,\n required: true,\n description: \"bots.faq.params.topic.desc\",\n placeholder: \"bots.faq.params.topic.placeholder\",\n choices: [\n {\n name: \"bots.faq.params.topic.choices.wallet\",\n value: \"wallet\",\n },\n {\n name: \"bots.faq.params.topic.choices.buychat\",\n value: \"buychat\",\n },\n {\n name: \"bots.faq.params.topic.choices.sendtokens\",\n value: \"send_tokens\",\n },\n {\n name: \"bots.faq.params.topic.choices.diamond\",\n value: \"diamond\",\n },\n {\n name: \"bots.faq.params.topic.choices.referral\",\n value: \"referral_rewards\",\n },\n {\n name: \"bots.faq.params.topic.choices.voting\",\n value: \"voting\",\n },\n {\n name: \"bots.faq.params.topic.choices.airdrop\",\n value: \"airdrop\",\n },\n {\n name: \"bots.faq.params.topic.choices.ios\",\n value: \"ios_app\",\n },\n {\n name: \"bots.faq.params.topic.choices.android\",\n value: \"android_app\",\n },\n {\n name: \"bots.faq.params.topic.choices.style\",\n value: \"style_messages\",\n },\n {\n name: \"bots.faq.params.topic.choices.storage\",\n value: \"storage\",\n },\n {\n name: \"bots.faq.params.topic.choices.security\",\n value: \"security\",\n },\n {\n name: \"bots.faq.params.topic.choices.info\",\n value: \"info\",\n },\n {\n name: \"bots.faq.params.topic.choices.shortcuts\",\n value: \"shortcuts\",\n },\n {\n name: \"bots.faq.params.topic.choices.content\",\n value: \"content\",\n },\n {\n name: \"bots.faq.params.topic.choices.translation\",\n value: \"translation\",\n },\n ],\n multi_line: false,\n },\n ],\n directBotDisabled: true,\n },\n {\n name: \"poll\",\n defaultRole: \"member\",\n directMessages: false,\n description: \"bots.poll.desc\",\n permissions: {\n ...emptyPermissions,\n messagePermissions: [\"poll\"],\n },\n params: [],\n directBotDisabled: true,\n },\n {\n name: \"register_bot\",\n defaultRole: \"member\",\n directMessages: false,\n description: \"bots.register_bot.desc\",\n permissions: emptyPermissions,\n params: [],\n directBotDisabled: false,\n },\n {\n name: \"search\",\n defaultRole: \"member\",\n directMessages: false,\n description: \"bots.search.desc\",\n permissions: emptyPermissions,\n params: [\n {\n kind: \"string\",\n name: \"bots.search.params.term.name\",\n minLength: 0,\n maxLength: 100,\n required: false,\n description: \"bots.search.params.term.desc\",\n placeholder: \"bots.search.params.term.placeholder\",\n choices: [],\n multi_line: false,\n },\n ],\n directBotDisabled: false,\n },\n {\n name: \"test-msg\",\n defaultRole: \"member\",\n directMessages: false,\n description: \"Create and send a number of test messages\",\n devmode: true,\n permissions: {\n ...emptyPermissions,\n messagePermissions: [\"text\"],\n },\n params: [\n {\n kind: \"decimal\",\n name: \"Number of messages\",\n minValue: 0,\n maxValue: 50,\n required: true,\n description: \"Enter the number of messages you want to create\",\n placeholder: \"Number of messages\",\n choices: [],\n },\n ],\n directBotDisabled: true,\n },\n {\n name: \"update_bot\",\n defaultRole: \"member\",\n directMessages: false,\n description: \"bots.update_bot.desc\",\n permissions: emptyPermissions,\n params: [],\n directBotDisabled: false,\n },\n {\n name: \"remove_bot\",\n defaultRole: \"member\",\n directMessages: false,\n description: \"bots.update_bot.removeDesc\",\n permissions: emptyPermissions,\n params: [],\n directBotDisabled: false,\n },\n {\n name: \"witch\",\n defaultRole: \"member\",\n directMessages: false,\n description: \"bots.witch.desc\",\n permissions: emptyPermissions,\n params: [],\n directBotDisabled: false,\n },\n ],\n },\n};\n","import { register, init, locale, getLocaleFromNavigator, _ } from \"svelte-i18n\";\nimport { get, writable } from \"svelte/store\";\nimport { configKeys } from \"../utils/config\";\nimport {} from \"openchat-client\";\nexport const translationCodes = {\n cn: \"zh-cn\",\n de: \"de\",\n en: \"en\",\n es: \"es\",\n fr: \"fr\",\n hi: \"hi\",\n it: \"it\",\n iw: \"iw\",\n jp: \"ja\",\n ru: \"ru\",\n uk: \"uk\",\n vi: \"vi\",\n pl: \"pl\",\n fa: \"fa\",\n ar: \"ar\",\n};\nexport const supportedLanguages = [\n {\n name: \"English\",\n code: \"en\",\n },\n {\n name: \"Français\",\n code: \"fr\",\n },\n {\n name: \"Deutsch\",\n code: \"de\",\n },\n {\n name: \"Italiano\",\n code: \"it\",\n },\n {\n name: \"Español\",\n code: \"es\",\n },\n {\n name: \"Tiếng Việt\",\n code: \"vi\",\n },\n {\n name: \"中文\",\n code: \"cn\",\n },\n {\n name: \"日本\",\n code: \"jp\",\n },\n {\n name: \"русский\",\n code: \"ru\",\n },\n {\n name: \"עִברִית\",\n code: \"iw\",\n },\n {\n name: \"हिंदी\",\n code: \"hi\",\n },\n {\n name: \"Yкраїнська\",\n code: \"uk\",\n },\n {\n name: \"Polski\",\n code: \"pl\",\n },\n {\n name: \"فارسی\",\n code: \"fa\",\n },\n {\n name: \"عربي\",\n code: \"ar\",\n },\n];\nexport const supportedLanguagesByCode = supportedLanguages.reduce((rec, lang) => {\n rec[lang.code] = lang;\n return rec;\n}, {});\n// this can't be done in a loop from supportedLanguages because rollup won't understand that\nregister(\"en\", () => import(\"./en.json\"));\nregister(\"cn\", () => import(\"./cn.json\"));\nregister(\"de\", () => import(\"./de.json\"));\nregister(\"es\", () => import(\"./es.json\"));\nregister(\"fr\", () => import(\"./fr.json\"));\nregister(\"hi\", () => import(\"./hi.json\"));\nregister(\"it\", () => import(\"./it.json\"));\nregister(\"iw\", () => import(\"./iw.json\"));\nregister(\"jp\", () => import(\"./jp.json\"));\nregister(\"ru\", () => import(\"./ru.json\"));\nregister(\"uk\", () => import(\"./uk.json\"));\nregister(\"vi\", () => import(\"./vi.json\"));\nregister(\"pl\", () => import(\"./pl.json\"));\nregister(\"fa\", () => import(\"./fa.json\"));\nregister(\"ar\", () => import(\"./ar.json\"));\nexport function getStoredLocale() {\n const fromStorage = localStorage.getItem(configKeys.locale);\n if (fromStorage === null) {\n return getLocaleFromNavigator() || \"en\";\n }\n return setDialectIfMatchesBrowserLocale(fromStorage);\n}\nexport async function setLocale(code) {\n code = setDialectIfMatchesBrowserLocale(code);\n localStorage.setItem(configKeys.locale, code);\n if (get(locale) !== code) {\n await locale.set(code);\n }\n}\nexport function i18nFormatter(str) {\n return get(_)(str);\n}\nfunction setDialectIfMatchesBrowserLocale(code) {\n const localeFromNavigator = getLocaleFromNavigator();\n // If the browser is set to a dialect of the chosen locale, use that dialect, else use the locale passed in.\n // Eg. if the user selects \"en\" and the browser is set to \"en-US\", then we use \"en-US\"\n if (localeFromNavigator !== null && localeFromNavigator.startsWith(code)) {\n return localeFromNavigator;\n }\n return code;\n}\ninit({\n fallbackLocale: \"en\",\n initialLocale: getStoredLocale(),\n});\nexport function interpolate(formatter, { key, params, level, lowercase }) {\n if (level !== undefined) {\n const levelTxt = formatter(`level.${level}`);\n const p = params ?? {};\n return formatter(key, {\n values: { ...p, level: lowercase ? levelTxt.toLowerCase() : levelTxt },\n });\n }\n else {\n return formatter(key, { values: params });\n }\n}\nexport const editmode = writable(false);\nexport const editingLabel = writable(undefined);\nexport const reviewingTranslations = writable(false);\nexport function i18nKey(key, params, level, lowercase = false) {\n return {\n kind: \"resource_key\",\n key,\n params,\n level,\n lowercase,\n };\n}\n","// https://stackoverflow.com/questions/10687099/how-to-test-if-a-url-string-is-absolute-or-relative\nconst regex = new RegExp(\"^(?:[a-z]+:)?//\", \"i\");\nexport function isAbsoluteUrl(url) {\n return regex.test(url);\n}\nexport const openChatFriendlyUrl = import.meta.env.OC_DFX_NETWORK === \"ic_test\" ? \"https://test.oc.app\" : \"https://oc.app\";\nexport const synonymousUrlRegex = new RegExp(`^(${window.location.origin}|${openChatFriendlyUrl})`);\n// detect whether the user is on a canister based url of the form https://6hsbt-vqaaa-aaaaf-aaafq-cai.ic0.app/\nexport const isCanisterUrl = /https:\\/\\/.*\\.ic0\\.app/.test(window.location.origin);\nexport function addQueryStringParam(name, val) {\n const path = window.location.pathname;\n const qs = new URLSearchParams(window.location.search);\n qs.set(name, val);\n return [...qs.keys()].length > 0 ? `${path}?${qs}` : path;\n}\nexport function removeThreadMessageIndex(threadMessageIndex, path) {\n const re = new RegExp(`(\\\\/${threadMessageIndex})(\\\\?.*)?$`);\n return path.replace(re, \"\");\n}\nexport function removeQueryStringParam(name) {\n const path = window.location.pathname;\n const qs = new URLSearchParams(window.location.search);\n qs.delete(name);\n return [...qs.keys()].length > 0 ? `${path}?${qs}` : path;\n}\nconst nomenuRoutes = [];\nconst scrollingRoutes = [\n \"features_route\",\n \"roadmap_route\",\n \"whitepaper_route\",\n \"architecture_route\",\n \"blog_route\",\n \"guidelines_route\",\n \"terms_route\",\n \"faq_route\",\n \"diamond_route\",\n];\nconst landingPageRoutes = [\"home_landing_route\", ...scrollingRoutes];\nexport function isLandingPageRoute(route) {\n return landingPageRoutes.includes(route.kind);\n}\nexport function showMenuForLandingRoute(route) {\n return !nomenuRoutes.includes(route.kind);\n}\nexport function isScrollingRoute(route) {\n return scrollingRoutes.includes(route.kind);\n}\n// it is possible that old style landing page links will still get through the cloudfront redirect, so we will need to\n// address them in-app as well just in case\nexport function redirectLandingPageLinksIfNecessary() {\n const path = getRedirectPath(window.location.pathname, window.location.hash);\n if (path !== window.location.pathname) {\n window.location.href = path;\n }\n}\nfunction getRedirectPath(path, hash) {\n const match = path.match(/^\\/(home|whitepaper|features|roadmap|architecture)/i);\n if (match) {\n return `/${match[1]}${hash !== \"\" ? `?section=${hash.slice(1)}` : \"\"}`;\n }\n return path;\n}\nexport function copyToClipboard(txt) {\n return new Promise((resolve) => {\n navigator.clipboard.writeText(txt).then(() => resolve(true), () => resolve(false));\n });\n}\nexport function scrollToSection(section) {\n const matches = /^(\\d{1})(?:-(\\d{1}))?(?:-(\\d{1}))?$/.exec(section);\n if (!matches) {\n return undefined;\n }\n const [_, one] = matches;\n window.setTimeout(() => {\n const target = document.getElementById(section);\n if (!target) {\n console.log(\"target not found\");\n return;\n }\n const rect = target.getBoundingClientRect();\n const top = rect.top + window.scrollY - 80;\n console.log(\"Scrolling to \", window.scrollY, rect);\n window.scrollTo({\n top,\n });\n target.classList.add(\"highlight\");\n window.setTimeout(() => {\n target.classList.remove(\"highlight\");\n }, 1000);\n }, 200); // this 200 is the duration of the collapsible card transition :puke:\n return Number(one);\n}\n","import { isAbsoluteUrl, synonymousUrlRegex } from \"./urls\";\nimport { marked } from \"marked\";\nconst renderer = {\n link(link) {\n let target = \"\";\n if (link.href !== null) {\n const abs = isAbsoluteUrl(link.href);\n // Check if the link is to a synonymous url (eg. https://oc.app), if so, convert it to a relative link\n if (synonymousUrlRegex.test(link.href)) {\n link.href = link.href.replace(synonymousUrlRegex, \"\");\n link.href = link.href.replace(\"/#/\", \"/\");\n }\n else if (abs) {\n target = 'target=\"_blank\"';\n }\n else {\n // if it's a relative url replace hash routes with normal ones\n link.href = link.href.replace(\"/#/\", \"/\");\n }\n }\n return `${link.text}`;\n },\n};\nmarked.use({ renderer });\n","export const scream = new Audio(\"/assets/scream.mp3\");\n","import { derived } from \"svelte/store\";\nimport { locale } from \"svelte-i18n\";\nconst rtlStore = derived(locale, ($locale) => $locale === \"ar\" || $locale === \"iw\" || $locale === \"fa\");\nexport { rtlStore };\n","import { readable, derived, get } from \"svelte/store\";\nexport const dimensions = readable({ width: window.innerWidth, height: window.innerHeight }, function start(set) {\n function resize() {\n set({ width: window.innerWidth, height: window.innerHeight });\n }\n window.addEventListener(\"resize\", resize);\n return function stop() {\n window.removeEventListener(\"resize\", resize);\n };\n});\nexport var ScreenWidth;\n(function (ScreenWidth) {\n ScreenWidth[\"ExtraExtraSmall\"] = \"ExtraExtraSmall\";\n ScreenWidth[\"ExtraSmall\"] = \"ExtraSmall\";\n ScreenWidth[\"Small\"] = \"Small\";\n ScreenWidth[\"Medium\"] = \"Medium\";\n ScreenWidth[\"Large\"] = \"Large\";\n ScreenWidth[\"ExtraLarge\"] = \"ExtraLarge\";\n ScreenWidth[\"ExtraExtraLarge\"] = \"ExtraExtraLarge\";\n})(ScreenWidth || (ScreenWidth = {}));\nexport var ScreenHeight;\n(function (ScreenHeight) {\n ScreenHeight[\"Small\"] = \"Small\";\n ScreenHeight[\"Large\"] = \"Large\";\n})(ScreenHeight || (ScreenHeight = {}));\nexport const screenWidth = derived(dimensions, ($dimensions) => {\n if ($dimensions.width < 354) {\n return ScreenWidth.ExtraExtraSmall;\n }\n else if ($dimensions.width < 576) {\n return ScreenWidth.ExtraSmall;\n }\n else if ($dimensions.width < 768) {\n return ScreenWidth.Small;\n }\n else if ($dimensions.width < 992) {\n return ScreenWidth.Medium;\n }\n else if ($dimensions.width < 1200) {\n return ScreenWidth.Large;\n }\n else if ($dimensions.width < 1792) {\n return ScreenWidth.ExtraLarge; // this is the default width on 15' macbook\n }\n else {\n return ScreenWidth.ExtraExtraLarge;\n }\n});\nexport const mobileWidth = derived(dimensions, ($dimensions) => {\n return $dimensions.width < 768;\n});\nexport const ipadWidth = derived(dimensions, ($dimensions) => {\n return $dimensions.width < 992;\n});\nexport const availableHeight = derived(dimensions, ($dimensions) => {\n return $dimensions.height - pixelsFromRems(5, $dimensions.width);\n});\nexport function toPixel(rem) {\n const dim = get(dimensions);\n return pixelsFromRems(rem, dim.width);\n}\nfunction pixelsFromRems(rem, width) {\n if (width < 768) {\n return rem * 14;\n }\n else {\n return rem * 16;\n }\n}\nexport const screenHeight = derived(dimensions, ($dimensions) => {\n if ($dimensions.height < 768) {\n return ScreenHeight.Small;\n }\n else {\n return ScreenHeight.Large;\n }\n});\n","import { readable } from \"svelte/store\";\nfunction intervalStore(duration) {\n return readable(Date.now(), (set) => {\n const interval = window.setInterval(() => {\n set(Date.now());\n }, duration);\n return function stop() {\n window.clearInterval(interval);\n };\n });\n}\n// this is a fairly arbitrary interval but it seems about right\nexport const now = intervalStore(5000);\n// a more fine-grained \"now\" used for updating a seconds counter\nexport const now500 = intervalStore(500);\n","\n\n\n \n\n\n\n","function viewportDimensions() {\n return {\n w: window.innerWidth || document.documentElement.clientWidth,\n h: window.innerHeight || document.documentElement.clientHeight,\n };\n}\nexport function centerOfScreen(elementRect) {\n const viewport = viewportDimensions();\n const centerX = viewport.w / 2;\n const centerY = viewport.h / 2;\n return {\n x: centerX - elementRect.width / 2,\n y: centerY - elementRect.height / 2,\n w: elementRect.width,\n h: elementRect.height,\n };\n}\n","// Export default\nexport const defaults = {\n variantFlipOrder: { start: \"sme\", middle: \"mse\", end: \"ems\" },\n positionFlipOrder: { top: \"tbrl\", right: \"rltb\", bottom: \"btrl\", left: \"lrbt\" },\n position: \"bottom\",\n margin: 8,\n padding: 0,\n force: false,\n};\nexport function reposition(trigger, popup, opt) {\n const pos = repositionInternal(trigger, popup, opt);\n return pos ? pos : repositionInternal(trigger, popup, { ...opt, force: true });\n}\n/**\n * Repositions an element once using the provided options and elements.\n * @param trigger Reference element\n * @param popup Popper element\n * @param opt Optional, additional options\n */\nconst repositionInternal = (trigger, popup, opt) => {\n const { container, arrow, margin, padding, position, variantFlipOrder, positionFlipOrder, force, } = {\n container: document.documentElement.getBoundingClientRect(),\n ...defaults,\n ...opt,\n };\n /**\n * Reset position to resolve viewport\n * See https://developer.mozilla.org/en-US/docs/Web/CSS/position#fixed\n */\n const { left: originalLeft, top: originalTop } = popup.style;\n popup.style.left = \"0\";\n popup.style.top = \"0\";\n const triggerBox = trigger.getBoundingClientRect();\n const popupBox = popup.getBoundingClientRect();\n /**\n * Holds coordinates of top, left, bottom and right alignment\n */\n const positionStore = {\n t: triggerBox.top - popupBox.height - margin,\n b: triggerBox.bottom + margin,\n r: triggerBox.right + margin,\n l: triggerBox.left - popupBox.width - margin,\n };\n /**\n * Holds corresponding variants (start, middle, end).\n * The values depend on horizontal / vertical orientation\n */\n const variantStore = {\n vs: triggerBox.left,\n vm: triggerBox.left + triggerBox.width / 2 - popupBox.width / 2,\n ve: triggerBox.left + triggerBox.width - popupBox.width,\n hs: triggerBox.top,\n hm: triggerBox.bottom - triggerBox.height / 2 - popupBox.height / 2,\n he: triggerBox.bottom - popupBox.height,\n };\n // Extract position and variant\n // Top-start -> top is \"position\" and \"start\" is the variant\n const [posKey, varKey = \"middle\"] = position.split(\"-\");\n const positions = positionFlipOrder[posKey];\n const variants = variantFlipOrder[varKey];\n // Try out all possible combinations, starting with the preferred one.\n const { top, left, bottom, right } = container;\n for (const p of positions) {\n const vertical = p === \"t\" || p === \"b\";\n // The position-value\n let positionVal = positionStore[p];\n // Which property has to be changes.\n const [positionKey, variantKey] = (vertical ? [\"top\", \"left\"] : [\"left\", \"top\"]);\n const overrideProp = vertical ? \"--override-height\" : \"--override-width\";\n /**\n * box refers to the size of the popper element. Depending on the orientation this is width or height.\n * The limit is the corresponding, maximum value for this position.\n */\n const [positionSize, variantSize] = vertical\n ? [popupBox.height, popupBox.width]\n : [popupBox.width, popupBox.height];\n const [positionMaximum, variantMaximum] = vertical ? [bottom, right] : [right, bottom];\n const [positionMinimum, variantMinimum] = vertical ? [top, left] : [left, top];\n const positionTotal = positionVal + positionSize + padding;\n // Skip pre-clipped values\n if (positionVal < positionMinimum || positionTotal > positionMaximum) {\n console.debug(\"POS: position will not fit: \", p);\n if (force) {\n console.debug(\"POS: forcing popup position to fit: \", p);\n if (positionTotal > positionMaximum) {\n popup.style.setProperty(overrideProp, `${positionSize - (positionTotal - positionMaximum)}px`);\n }\n if (positionVal < positionMinimum) {\n const diff = positionMinimum - positionVal;\n popup.style.setProperty(overrideProp, `${positionSize - diff}px`);\n positionVal += diff;\n }\n }\n else {\n continue;\n }\n }\n for (const v of variants) {\n // The position-value, the related size value of the popper and the limit\n let variantVal = variantStore[((vertical ? \"v\" : \"h\") + v)];\n const variantTotal = variantVal + variantSize + padding;\n if (variantVal < variantMinimum || variantTotal > variantMaximum) {\n console.debug(\"POS: variation will not fit: \", v);\n if (force) {\n console.debug(\"POS: forcing popup variation to fit: \", v);\n if (variantTotal > variantMaximum) {\n popup.style.setProperty(overrideProp, `${variantSize - (variantTotal - variantMaximum)}px`);\n }\n if (variantVal < variantMinimum) {\n const diff = variantMinimum - positionVal;\n popup.style.setProperty(overrideProp, `${variantSize - diff}px`);\n variantVal += diff;\n }\n }\n else {\n continue;\n }\n }\n // Subtract popBox's initial position\n variantVal -= popupBox[variantKey];\n positionVal -= popupBox[positionKey];\n // Apply styles and normalize viewport\n popup.style[variantKey] = `${variantVal}px`;\n popup.style[positionKey] = `${positionVal}px`;\n if (arrow) {\n // Calculate refBox's center offset from its variant position for arrow positioning\n const refBoxCenterOffset = vertical ? triggerBox.width / 2 : triggerBox.height / 2;\n // When refBox is larger than popBox, have the arrow's variant position be the center of popBox instead.\n const arrowVariantVal = refBoxCenterOffset * 2 < variantSize\n ? triggerBox[variantKey] + refBoxCenterOffset\n : variantVal + variantSize / 2;\n // Arrow position is either on one side of the popBox or the other.\n if (positionVal < triggerBox[positionKey]) {\n positionVal += positionSize;\n }\n // Apply styles to arrow\n arrow.style[variantKey] = `${arrowVariantVal}px`;\n arrow.style[positionKey] = `${positionVal}px`;\n }\n return (p + v);\n }\n }\n // Revert style values (won't work with styled-elements or similar systems)\n // \"Fix\" for https://github.com/Simonwep/nanopop/issues/7\n popup.style.left = originalLeft;\n popup.style.top = originalTop;\n return null;\n};\n","import { writable } from \"svelte/store\";\nimport {} from \"../utils/alignment\";\nimport { reposition } from \"../utils/position\";\nconst { subscribe, update } = writable(undefined);\nconst tooltipAnchor = document.createElement(\"div\");\ntooltipAnchor.className = \"tooltip\";\ndocument.body.appendChild(tooltipAnchor);\nfunction close(tooltip) {\n if (tooltip !== undefined) {\n if (tooltipAnchor && tooltipAnchor.contains(tooltip)) {\n tooltipAnchor.removeChild(tooltip);\n }\n }\n return undefined;\n}\nexport const tooltipStore = {\n subscribe,\n position: (triggerEl, position = \"top\", align = \"start\", gutter = 8) => update((tooltip) => {\n if (tooltip === undefined)\n return tooltip;\n reposition(triggerEl, tooltip, {\n position: `${position}-${align}`,\n margin: gutter,\n });\n return tooltip;\n }),\n show: (tooltip) => update((currentTooltip) => {\n close(currentTooltip);\n tooltipAnchor.appendChild(tooltip);\n return tooltip;\n }),\n hide: () => update((tooltip) => {\n return close(tooltip);\n }),\n};\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\nexport const isTouchDevice = import.meta.env.OC_NODE_ENV !== \"test\" &&\n //@ts-ignore\n (\"ontouchstart\" in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0);\nexport const supportsHover = window.matchMedia(\"(hover: hover)\").matches;\n// Often we *don't* want to include things like touch screen laptops so we want to also check that hover is *not* supported\nexport const isTouchOnlyDevice = isTouchDevice && !supportsHover;\nexport const mobileOperatingSystem = getMobileOperatingSystem();\nexport const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n/**\n * Determine the mobile operating system.\n * This function returns one of 'iOS', 'Android', 'Windows Phone', or 'unknown'.\n *\n * @returns {String}\n */\nfunction getMobileOperatingSystem() {\n if (import.meta.env.OC_NODE_ENV === \"test\") {\n return \"unknown\";\n }\n //@ts-ignore\n const userAgent = navigator.userAgent || navigator.vendor || window.opera;\n // Windows Phone must come first because its UA also contains \"Android\"\n if (/windows phone/i.test(userAgent)) {\n return \"Windows Phone\";\n }\n if (/android/i.test(userAgent)) {\n return \"Android\";\n }\n // iOS detection from: http://stackoverflow.com/a/9039885/177710\n //@ts-ignore\n if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {\n return \"iOS\";\n }\n return \"unknown\";\n}\n","\n\n\n \n\n\n
\n \n {#if $tooltipStore === tooltipContainer}\n \n {/if}\n \n
\n\n\n","\n\n
\n \n
\n\n\n","export function hexPercent(hex, alpha) {\n const r = parseInt(hex.slice(1, 3), 16), g = parseInt(hex.slice(3, 5), 16), b = parseInt(hex.slice(5, 7), 16);\n if (alpha !== undefined) {\n return `rgba(${r}, ${g}, ${b}, ${alpha / 100})`;\n }\n else {\n return `rgb(${r}, ${g}, ${b})`;\n }\n}\nexport function darkenHexColour(hex, percent) {\n hex = hex.replace(/^#/, \"\");\n let r = parseInt(hex.substring(0, 2), 16);\n let g = parseInt(hex.substring(2, 4), 16);\n let b = parseInt(hex.substring(4, 6), 16);\n r = Math.max(0, Math.min(255, Math.floor(r * (1 - percent / 100))));\n g = Math.max(0, Math.min(255, Math.floor(g * (1 - percent / 100))));\n b = Math.max(0, Math.min(255, Math.floor(b * (1 - percent / 100))));\n return `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`;\n}\n","import { hexPercent } from \"./utils\";\nconst backgroundBlack = \"#1B1C21\";\nconst dark60pc = `${backgroundBlack}99`;\nconst borderDark = \"#32353F\";\nconst textBlack = \"#242834\";\nconst textBodyLight = \"#5C5C5C\";\nconst textBodyDark = \"#b1b1b1\";\nconst selectedChat = hexPercent(borderDark, 50);\nconst hoveredChat = hexPercent(borderDark, 70);\nconst chatPanelDark = hexPercent(backgroundBlack, 30);\nconst orangeAccent = \"#ff8541\";\nconst dark25 = \"#525252\";\nconst dark45 = \"#666666\";\nconst dark60 = \"#ababab\";\nconst txt = \"#ffffff\";\nconst txtLow = \"rgba(255,255,255,0.38)\";\nconst primary = \"#23a2ee\";\nconst blueAccent = \"#085d8c\";\nconst accent = \"#ff2e2e\";\nexport function darkTheme(defaultTheme) {\n return {\n ...defaultTheme,\n name: \"dark\",\n label: \"Default dark\",\n burst: true,\n logo: true,\n mode: \"dark\",\n bg: backgroundBlack,\n txt: txt,\n \"txt-light\": textBodyDark,\n bd: borderDark,\n rd: \"4px\",\n bw: \"1px\",\n error: \"#CF6679\",\n warn: \"#f36D28\",\n accent: accent,\n disabledTxt: txtLow,\n primary,\n code: {\n bg: \"rgba(0,0,0,0.7)\",\n txt: \"#f36D28\",\n },\n font: '\"Roboto\", sans-serif',\n \"font-bold\": '\"Manrope\", sans-serif',\n unread: {\n mute: \"rgba(255,255,255,0.2)\",\n \"mute-solid\": \"#555\",\n \"mute-txt\": txt,\n },\n progress: {\n bd: \"rgba(255,255,255,0.2)\",\n fill: \"var(--accent)\",\n },\n collapsible: {\n closed: {\n header: {\n txt: textBodyDark,\n },\n },\n open: {\n header: {\n arrow: primary,\n },\n },\n },\n notificationBar: {\n bg: orangeAccent,\n txt: \"#ffffff\",\n },\n reaction: {\n ...defaultTheme.reaction,\n bg: textBlack,\n txt: txt,\n me: \"#085d8c\",\n },\n timeline: {\n txt: textBodyDark,\n bg: \"transparent\",\n },\n toast: {\n ...defaultTheme.toast,\n failure: {\n bg: \"#ff005c\",\n txt: \"#ffffff\",\n },\n success: {\n bg: \"#05b09f\",\n txt: \"#ffffff\",\n },\n },\n section: {\n bg: \"transparent\",\n },\n \"sub-section\": {\n bg: dark25,\n },\n input: {\n bg: textBlack,\n sh: \"inset 0px 2px 4px rgba(0,0,0,0.8)\",\n accent: primary,\n bd: \"none\",\n },\n members: {\n ...defaultTheme.members,\n hv: hoveredChat,\n },\n entry: {\n bg: dark60pc,\n input: {\n bg: textBlack,\n sh: \"inset 0px 2px 4px rgba(0, 0, 0, 0.8)\",\n rd: \"8px\",\n bd: \"none\",\n },\n },\n panel: {\n ...defaultTheme.panel,\n bg: chatPanelDark,\n left: {\n bg: chatPanelDark,\n },\n nav: {\n bg: backgroundBlack,\n },\n right: {\n bg: chatPanelDark,\n modal: backgroundBlack,\n },\n },\n avatar: {\n bg: \"rgba(255, 255, 255,25%)\",\n sh: \"none\",\n rd: \"50%\",\n },\n chatSearch: {\n ...defaultTheme.chatSearch,\n bg: textBlack,\n sh: \"inset 0px 2px 4px rgba(0, 0, 0, 0.8)\",\n },\n chatSummary: {\n ...defaultTheme.chatSummary,\n \"bg-selected\": selectedChat,\n hv: hoveredChat,\n del: \"#085d8c\",\n },\n menu: {\n bg: backgroundBlack,\n txt: textBodyDark,\n warn: \"#FF2E2E\",\n \"disabled-txt\": txtLow,\n hv: hoveredChat,\n sh: \"none\",\n \"inverted-sh\": \"0px -10px 10px 0px rgba(8,93,140,0.3)\",\n bd: textBodyLight,\n separator: \"rgba(255,255,255,0.2)\",\n },\n button: {\n bg: blueAccent,\n hv: \"#053d5c\",\n \"hv-txt\": txt,\n txt: txt,\n \"txt-sh\": \"none\",\n disabled: textBodyLight,\n spinner: dark60,\n \"disabled-txt\": txtLow,\n \"disabled-bd\": \"transparent\",\n rd: \"4px\",\n sh: \"none\",\n \"hv-sh\": \"none\",\n },\n modal: {\n filter: \"blur(5px)\",\n bg: backgroundBlack,\n bd: `1px solid ${borderDark}`,\n rd: \"16px\",\n sh: \"none\",\n },\n modalPage: {\n bg: \"rgba(0, 0, 0, 0.4)\",\n txt: txt,\n sh: \"none\",\n filter: \"blur(10px)\",\n \"txt-sh\": \"1px 1px rgba(0, 0, 0, 0.2)\",\n },\n replies: {\n bd: \"var(--bd)\",\n },\n currentChat: {\n ...defaultTheme.currentChat,\n msgs: {\n bg: \"transparent\",\n },\n date: {\n bg: textBlack,\n txt: \"inherit\",\n bd: \"none\",\n },\n msg: {\n bg: textBlack,\n muted: txtLow,\n txt: \"rgba(255,255,255,0.8)\",\n inert: textBlack,\n bd: \"none\",\n sh: \"none\",\n r1: \"8px\",\n r2: \"4px\",\n separator: \"rgba(255,255,255,0.2)\",\n me: {\n bg: blueAccent,\n muted: \"rgba(255,255,255,0.5)\",\n txt: \"rgba(255,255,255,0.8)\",\n bd: \"rgba(255,255,255,0.2)\",\n separator: \"rgba(255,255,255,0.2)\",\n },\n },\n },\n time: {\n txt: \"#ffffff\",\n icon: \"#ffffff\",\n bg: \"rgba(255,255,255,0.2)\",\n me: {\n txt: \"#ffffff\",\n icon: \"#ffffff\",\n bg: \"rgba(255,255,255,0.2)\",\n },\n },\n icon: {\n hv: \"rgba(255,255,255,0.1)\",\n txt: textBodyDark,\n selected: primary,\n inverted: {\n hv: \"rgba(0,0,0,0.1)\",\n txt: textBodyDark,\n },\n msg: {\n hv: \"rgba(255,255,255,0.1)\",\n },\n },\n spinner: dark25,\n findUser: {\n ...defaultTheme.findUser,\n add: {\n ...defaultTheme.findUser.add,\n pill: {\n txt: \"#fff\",\n },\n },\n },\n recommended: {\n ...defaultTheme.recommended,\n bg: selectedChat,\n },\n toggle: {\n bg: dark45,\n rd: {\n track: \"18px\",\n thumb: \"50%\",\n },\n },\n thread: {\n preview: {\n bg: \"transparent\",\n },\n },\n vote: {\n ...defaultTheme.vote,\n maybe: {\n color: \"#666666\",\n },\n },\n card: {\n rd: \"8px\",\n sh: \"none\",\n },\n nav: {\n icon: {\n rd: \"50%\",\n },\n },\n audio: {\n outer: primary,\n inner: accent,\n note: txt,\n me: {\n outer: primary,\n inner: accent,\n note: txt,\n },\n },\n landing: {\n txt,\n \"txt-light\": textBodyDark,\n bg: backgroundBlack,\n bd: borderDark,\n context: {\n bg: \"#2f3039\",\n },\n phone: {\n bd: \"#ffffffdd\",\n },\n brag: {\n op: \"0.7\",\n },\n launch: {\n bg: primary,\n },\n header: {\n bg: backgroundBlack,\n txt: textBodyDark,\n bd: \"1px solid rgba(255,255,255,0.2)\",\n },\n auth: {\n bg: \"rgba(0,0,0,0.6)\",\n txt: textBodyDark,\n },\n roadmap: {\n bd: \"#32353F\",\n },\n },\n daily: {\n header: backgroundBlack,\n accent: \"#ff2e2e\",\n accentText: textBlack,\n background: backgroundBlack,\n backgroundAccent: \"#292930\",\n baseText: txt,\n border: borderDark,\n mainAreaBg: backgroundBlack,\n mainAreaBgAccent: \"#292930\",\n mainAreaText: txt,\n supportiveText: textBodyDark,\n },\n };\n}\n","import { hexPercent } from \"../utils\";\nconst orangeAccent = \"#ff9505\";\nconst pinkAccent = \"#ff005c\";\nconst blueAccent = \"#22A7F2\";\nconst primary = \"#23a2ee\";\nconst textBox = \"rgba(0,0,0,0.1)\";\nconst txt = \"#ffffff\";\nconst txtLight = hexPercent(txt, 67);\nconst txtDark = \"#242834\";\nconst txtDark75pc = hexPercent(txtDark, 75);\nconst disabledTxt = txtLight;\nconst border = \"rgba(255,255,255,0.1)\";\nconst borderWidth = \"1px\";\nexport function getTheme() {\n return {\n author: \"2yfsq-kaaaa-aaaaf-aaa4q-cai\",\n hidden: false,\n name: \"blue\",\n label: \"OG blue\",\n burst: false,\n logo: true,\n mode: \"light\",\n warn: \"#f36D28\",\n bg: \"linear-gradient(#22A7F2, #5f2583)\",\n // bg: \"#ffffff\",\n txt,\n \"txt-light\": txtLight,\n bd: border,\n rd: \"4px\",\n bw: borderWidth,\n error: \"#CF6679\",\n accent: pinkAccent,\n accentDarker: \"rgba(150, 50, 50, 0.8)\",\n disabledTxt: txtLight,\n placeholder: txtLight,\n primary,\n code: {\n txt: orangeAccent,\n bg: \"rgba(255,255,255,0.1)\",\n },\n font: '\"Roboto\", sans-serif',\n \"font-bold\": '\"Manrope\", sans-serif',\n unread: {\n mute: \"rgba(0,0,0,0.1)\",\n \"mute-solid\": \"rgb(55,127,195)\",\n \"mute-txt\": txt,\n },\n progress: {\n bd: \"rgba(255,255,255,0.2)\",\n fill: \"var(--accent)\",\n },\n collapsible: {\n closed: {\n header: {\n txt: txtLight,\n },\n },\n open: {\n header: {\n arrow: pinkAccent,\n },\n },\n },\n notificationBar: {\n bg: orangeAccent,\n txt: \"#ffffff\",\n },\n reaction: {\n bg: \"#efefef\",\n txt: txtDark,\n me: blueAccent,\n },\n timeline: {\n txt: txtLight,\n bg: \"transparent\",\n },\n toast: {\n failure: {\n bg: \"#ff005c\",\n txt: \"#ffffff\",\n },\n success: {\n bg: \"#05b09f\",\n txt: \"#ffffff\",\n },\n },\n section: {\n bg: \"transparent\",\n },\n \"sub-section\": {\n bg: \"#ffffff\",\n },\n input: {\n bg: textBox,\n sh: \"none\",\n accent: orangeAccent,\n bd: \"none\",\n },\n members: {\n hv: \"rgba(226,226,226,0.2)\",\n },\n entry: {\n bg: \"rgba(226,226,226,0.1)\",\n input: {\n bg: textBox,\n sh: \"none\",\n rd: \"8px\",\n bd: \"none\",\n },\n },\n panel: {\n bg: \"linear-gradient(#22A7F2, #5f2583)\",\n left: {\n bg: `linear-gradient(${hexPercent(\"#22A7F2\", 31.3)}, ${hexPercent(\"#5f2583\", 31.3)})`,\n },\n nav: {\n bg: \"linear-gradient(#22A7F2, #5f2583)\",\n },\n right: {\n bg: \"linear-gradient(rgba(255,255,255,0.1), transparent)\",\n modal: \"linear-gradient(#22A7F2, #5f2583)\",\n },\n },\n avatar: {\n bg: \"rgba(255, 255, 255,25%)\",\n sh: \"2px 2px 4px #e2e2e2\",\n rd: \"50%\",\n },\n chatSearch: {\n bg: textBox,\n sh: \"none\",\n bd: \"transparent\",\n rd: \"8px\",\n },\n chatSummary: {\n \"bg-selected\": \"rgba(0,0,0,0.1)\",\n hv: \"rgba(226,226,226,0.1)\",\n del: pinkAccent,\n },\n spinner: \"#ffffff\",\n menu: {\n bg: \"white\",\n txt: txtDark75pc,\n warn: \"#FF2E2E\",\n \"disabled-txt\": hexPercent(txtDark, 50),\n hv: \"rgba(226,226,226,0.5)\",\n sh: \"0px 10px 10px 0px rgba(85, 85, 85, 0.3)\",\n \"inverted-sh\": \"0px -10px 10px 0px rgba(85, 85, 85, 0.3)\",\n bd: \"transparent\",\n separator: \"rgba(0,0,0,0.1)\",\n },\n button: {\n bg: primary,\n hv: \"#52baf5\",\n \"hv-txt\": txt,\n txt: txt,\n \"txt-sh\": \"none\",\n disabled: \"rgba(0,0,0,0.1)\",\n spinner: \"#ffffff\",\n \"disabled-txt\": disabledTxt,\n \"disabled-bd\": \"transparent\",\n rd: \"4px\",\n sh: \"none\",\n \"hv-sh\": \"none\",\n },\n link: {\n underline: \"#22A7F2\",\n },\n modal: {\n filter: \"blur(5px)\",\n bg: hexPercent(\"#085d8c\", 93),\n bd: \"none\",\n rd: \"16px\",\n sh: \"none\",\n },\n modalPage: {\n bg: \"rgba(255, 255, 255, 0.5)\",\n txt: \"#191919\",\n sh: \"0px 13px 13px 0px rgba(85, 85, 85, 0.5)\",\n filter: \"blur(10px)\",\n \"txt-sh\": \"1px 1px rgba(255, 255, 255, 0.2)\",\n },\n replies: {\n bd: \"var(--bd);\",\n },\n currentChat: {\n date: {\n bg: \"rgba(0,0,0,0.1)\",\n txt: \"inherit\",\n bd: \"none\",\n },\n msgs: {\n bg: \"transparent\",\n },\n msg: {\n bg: \"rgba(0,0,0,0.08)\",\n muted: \"rgba(255,255,255,0.6)\",\n txt: \"#ffffff\",\n inert: \"rgba(0,0,0,0.1)\",\n bd: \"none\",\n sh: \"none\",\n r1: \"8px\",\n r2: \"4px\",\n separator: \"rgba(255,255,255,0.2)\",\n me: {\n bg: hexPercent(primary, 50),\n muted: \"rgba(255,255,255,0.6)\",\n txt: \"#ffffff\",\n bd: \"rgba(255,255,255,0.3)\",\n separator: \"rgba(255,255,255,0.2)\",\n },\n },\n },\n time: {\n txt: \"#ffffff\",\n icon: \"#ffffff\",\n bg: \"rgba(255,255,255,0.2)\",\n me: {\n txt: \"#ffffff\",\n icon: \"#ffffff\",\n bg: \"rgba(255,255,255,0.2)\",\n },\n },\n icon: {\n hv: \"rgba(0,0,0,0.1)\",\n txt,\n selected: orangeAccent,\n inverted: {\n hv: \"rgba(0,0,0,0.1)\",\n txt: txtDark75pc,\n },\n msg: {\n hv: \"rgba(255,255,255,0.3)\",\n },\n },\n scrollbar: {\n bg: \"rgba(34, 167, 242, 0.4)\",\n },\n findUser: {\n edit: {\n pill: {\n txt: \"#fff\",\n },\n },\n add: {\n pill: {\n txt: \"#fff\",\n },\n },\n },\n recommended: {\n bg: \"rgba(0,0,0,0.08)\",\n },\n toggle: {\n bg: \"#cccccc\",\n rd: {\n track: \"18px\",\n thumb: \"50%\",\n },\n },\n thread: {\n preview: {\n bg: \"transparent\",\n },\n },\n vote: {\n yes: {\n color: \"#4ae97a\",\n hv: \"#0d8cd4\",\n },\n no: {\n color: \"#ff2e2e\",\n hv: \"#ff4fa7\",\n },\n maybe: {\n color: \"#aaaaaa\",\n },\n },\n card: {\n rd: \"8px\",\n sh: \"none\",\n },\n nav: {\n icon: {\n rd: \"50%\",\n },\n },\n audio: {\n outer: primary,\n inner: pinkAccent,\n note: txt,\n me: {\n outer: primary,\n inner: pinkAccent,\n note: txt,\n },\n },\n landing: {\n txt: txtDark,\n \"txt-light\": \"#5C5C5C\",\n bg: \"white\",\n bd: \"#ededed\",\n brag: {\n op: \"0.3\",\n },\n context: {\n bg: \"#ffffff\",\n },\n phone: {\n bd: \"#ffffff\",\n },\n launch: {\n bg: primary,\n },\n header: {\n bg: \"#ffffff\",\n txt: txtDark,\n bd: \"none\",\n },\n auth: {\n bg: \"rgba(255,255,255,0.9)\",\n txt: \"#191919\",\n },\n roadmap: {\n bd: \"#E2E2E2\",\n },\n },\n daily: {\n header: primary,\n accent: pinkAccent,\n accentText: txt,\n background: \"#3796E3\",\n backgroundAccent: \"#52baf5\",\n baseText: txtDark,\n border: \"#ffffff30\",\n mainAreaBg: \"#3796e3\",\n mainAreaBgAccent: orangeAccent,\n mainAreaText: txtDark,\n supportiveText: \"#ffffffaa\",\n },\n };\n}\n","import { hexPercent } from \"./utils\";\nconst textBox = \"rgba(226,226,226,0.4)\";\nconst txt = \"#242834\";\nconst txt70 = hexPercent(txt, 70);\nconst txt50 = hexPercent(txt, 50);\nconst txt60 = hexPercent(txt, 60);\nconst txtDark = \"#242834\";\nconst white = \"#ffffff\";\nconst accent = \"#e53b78\";\nexport function getTheme(base) {\n base.primary = \"#459cd1\";\n base.name = \"white\";\n base.label = \"Default light\";\n base.accent = accent;\n base.bg = white;\n base.burst = false;\n base.logo = false;\n base.txt = txt;\n base.code = {\n bg: \"rgba(255,255,255,0.9)\",\n txt: txt,\n };\n base[\"txt-light\"] = txt70;\n base.bd = \"#ededed\";\n base.disabledTxt = txt50;\n base.placeholder = txt50;\n base.progress.bd = \"rgba(0,0,0,0.2)\";\n base.collapsible.closed.header.txt = txt70;\n base.timeline.txt = txt70;\n base.time.txt = txt60;\n base.time.icon = \"rgba(0,0,0,0.3)\";\n base.time.bg = \"rgba(0,0,0,0.1)\";\n base.time.me.txt = white;\n base.time.me.icon = white;\n base.time.me.bg = \"rgba(255,255,255,0.2)\";\n base.input.bg = textBox;\n base.entry.bg = \"rgba(226,226,226,0.3)\";\n base.entry.input.bg = white;\n base.button.bg = base.primary;\n base.button.disabled = \"rgba(0,0,0,0.15)\";\n // base.entry.input.sh = \"inset 0px 2px 4px rgba(138, 138, 138, 0.5)\";\n base.panel.bg = \"transparent\";\n base.panel.left.bg = \"transparent\";\n base.panel.nav.bg = white;\n base.panel.right.bg = \"transparent\";\n base.panel.right.modal = white;\n base.unread.mute = \"#dddddd\";\n base.unread[\"mute-solid\"] = \"#dddddd\";\n base.unread[\"mute-txt\"] = \"#999999\";\n base.chatSearch.bg = textBox;\n base.chatSummary[\"bg-selected\"] = \"rgba(226,226,226,0.5)\";\n base.menu.txt = txt70;\n base.menu[\"disabled-txt\"] = hexPercent(txtDark, 50);\n base.menu.separator = base.bd;\n base.menu.bd = \"#efefef\";\n base.button[\"disabled-txt\"] = txt50;\n base.modal.filter = \"blur(5px)\";\n base.modal.bg = white;\n base.modal.bd = \"var(--bw) solid var(--bd)\";\n base.modal.sh = base.menu.sh;\n base.modalPage.bg = \"rgba(255, 255, 255, 0.5)\";\n base.modalPage.txt = txt;\n base.currentChat.msg.bg = \"#efefef\";\n base.currentChat.msg.muted = txt50;\n base.currentChat.msg.txt = txt70;\n base.currentChat.msg.inert = \"rgba(226,226,226,0.8)\";\n base.currentChat.msg.separator = \"rgba(0,0,0,0.1)\";\n base.currentChat.msg.me.bd = \"rgba(255,255,255,0.5)\";\n base.currentChat.msg.me.bg = base.primary;\n base.currentChat.date.bg = \"#efefef\";\n base.currentChat.date.bd = \"var(--bw) solid rgba(0,0,0,0.05)\";\n base.icon.txt = txt60;\n base.icon.inverted.txt = txt60;\n base.icon.selected = base.primary;\n base.recommended.bg = white;\n base.daily.header = white;\n base.daily.accent = base.accent;\n base.daily.accentText = txt;\n base.daily.background = white;\n base.daily.backgroundAccent = white;\n base.daily.border = base.bd;\n base.daily.mainAreaBg = white;\n base.daily.mainAreaBgAccent = base.accent;\n base.daily.mainAreaText = txt;\n base.daily.supportiveText = \"#4e5670\";\n base.vote.maybe.color = \"#ddd\";\n base.audio.outer = base.primary;\n base.audio.me.outer = base.accent;\n base.audio.inner = base.accent;\n base.audio.me.inner = base.input.accent;\n base.audio.note = base.currentChat.msg.txt;\n base.audio.me.note = base.currentChat.msg.me.txt;\n base.replies.bd = \"var(--bw) solid #cccccc;\";\n base.replies.bd = \"#dddddd\";\n return base;\n}\n","import { hexPercent } from \"../utils\";\nconst red100 = \"#ae1111\";\nconst txtLight = \"#922222\";\nconst txt = red100;\nconst componentBg = \"#2a1e1e\";\nconst accent = \"#87441c\";\nexport function getTheme(base) {\n // it's ok to mutate the theme passed in because it's a clone\n base.author = \"2yfsq-kaaaa-aaaaf-aaa4q-cai\";\n base.name = \"submarine\";\n base.label = \"Submarine\";\n base.burst = false;\n base.bg = \"radial-gradient(circle, rgba(66,5,5,1) 20%, rgba(0,0,0,1) 79%)\";\n base.bd = \"#4f1515\";\n base.txt = txt;\n base[\"txt-light\"] = txtLight;\n base.icon.txt = red100;\n base.icon.selected = \"red\";\n base.button.bg = \"#7c0a0a\";\n base.button.hv = \"#5b0505\";\n base.button.txt = \"rgba(255 255 255 / 80%)\";\n base.button.disabled = componentBg;\n base.collapsible.closed.header.txt = txt;\n base.collapsible.open.header.arrow = red100;\n base.accent = accent;\n base.panel.left.bg = \"rgba(0,0,0,0.1)\";\n base.panel.right.modal = \"#211b1b\";\n base.modal.bd = base.bd;\n base.modal.bg = base.panel.right.modal;\n base.chatSummary[\"bg-selected\"] = \"rgb(64 55 55 / 40%)\";\n base.chatSummary.hv = \"rgb(64 55 55 / 30%)\";\n base.chatSummary.del = base.button.bg;\n base.members.hv = base.chatSummary.hv;\n base.placeholder = txtLight;\n base.entry.input.bg = componentBg;\n base.input.bg = componentBg;\n base.chatSearch.bg = componentBg;\n base.currentChat.msg.bg = \"#342424\";\n base.currentChat.msg.me.bg = hexPercent(base.button.bg, 70);\n base.currentChat.msg.txt = \"rgba(255 255 255 / 50%)\";\n base.currentChat.date.bg = base.currentChat.msg.bg;\n base.currentChat.msg.inert = base.currentChat.msg.bg;\n base.notificationBar.bg = \"#8b3403\";\n base.notificationBar.txt = \"rgba(255 255 255 / 50%)\";\n base.timeline.txt = base.notificationBar.txt;\n base.menu.bd = base.bd;\n base.menu.bg = base.panel.right.modal;\n base.menu.txt = txt;\n base.menu.warn = txt;\n base.menu[\"disabled-txt\"] = txtLight;\n base.icon.inverted.txt = txt;\n base.menu.hv = base.chatSummary.hv;\n base.reaction.me = red100;\n base.primary = red100;\n base.link.underline = base.primary;\n base.scrollbar.bg = base.button.hv;\n base.toast.success.bg = base.notificationBar.bg;\n base.audio.outer = red100;\n base.audio.me.outer = red100;\n base.audio.inner = accent;\n base.audio.me.inner = accent;\n base.audio.note = txt;\n base.audio.me.note = txt;\n return base;\n}\n","import { hexPercent } from \"../utils\";\nconst green = \"#0d8329\";\nconst txtLight = \"#0d8329ba\";\nconst txt = green;\nconst componentBg = \"#151f19\";\nconst accent = \"#a9be54\";\nexport function getTheme(base) {\n // it's ok to mutate the theme passed in because it's a clone\n base.author = \"2yfsq-kaaaa-aaaaf-aaa4q-cai\";\n base.name = \"nightvision\";\n base.label = \"Nightvision\";\n base.burst = false;\n base.bg = \"radial-gradient(circle, rgba(4,48,10,1) 10%, rgba(0,0,0,1) 79%)\";\n base.bd = \"#0f3918\";\n base.txt = txt;\n base[\"txt-light\"] = txtLight;\n base.icon.txt = green;\n base.icon.selected = \"limegreen\";\n base.button.bg = \"#084a16\";\n base.button.hv = \"#094a17\";\n base.button.disabled = componentBg;\n base.button.txt = \"rgba(255 255 255 / 80%)\";\n base.collapsible.closed.header.txt = txt;\n base.collapsible.open.header.arrow = green;\n base.accent = accent;\n base.panel.left.bg = \"rgba(0,0,0,0.1)\";\n base.panel.right.modal = \"#151a15\";\n base.modal.bd = base.bd;\n base.modal.bg = base.panel.right.modal;\n base.chatSummary[\"bg-selected\"] = \"rgb(39 65 39 / 40%)\";\n base.chatSummary.hv = \"rgb(39 65 39 / 30%)\";\n base.chatSummary.del = base.button.bg;\n base.members.hv = base.chatSummary.hv;\n base.placeholder = txtLight;\n base.entry.input.bg = componentBg;\n base.input.bg = componentBg;\n base.chatSearch.bg = componentBg;\n base.currentChat.msg.bg = \"#243427\";\n base.currentChat.msg.me.bg = hexPercent(base.button.bg, 70);\n base.currentChat.msg.txt = \"rgba(255 255 255 / 50%)\";\n base.currentChat.date.bg = base.currentChat.msg.bg;\n base.currentChat.msg.inert = base.currentChat.msg.bg;\n base.notificationBar.bg = \"#04621f\";\n base.notificationBar.txt = \"rgba(255 255 255 / 50%)\";\n base.timeline.txt = base.notificationBar.txt;\n base.menu.bd = base.bd;\n base.menu.bg = base.panel.right.modal;\n base.menu.txt = txt;\n base.menu.warn = txt;\n base.menu[\"disabled-txt\"] = txtLight;\n base.icon.inverted.txt = txt;\n base.menu.hv = base.chatSummary.hv;\n base.reaction.me = green;\n base.primary = green;\n base.link.underline = base.primary;\n base.scrollbar.bg = base.button.hv;\n base.toast.success.bg = base.notificationBar.bg;\n base.audio.outer = green;\n base.audio.me.outer = green;\n base.audio.inner = accent;\n base.audio.me.inner = accent;\n base.audio.note = txt;\n base.audio.me.note = txt;\n return base;\n}\n","// Colors\nconst white = \"#FFFFFF\";\nconst offWhite = \"#DFDFDF\";\nconst black = \"#000000\";\nconst offBlack1 = \"#101010\";\nconst offBlack2 = \"#121415\";\nconst offBlack3 = \"#191919\";\nconst matteBlack = \"#333333\";\nconst gold = \"#FFBF00\";\nconst lightGold = \"#ffcd36\";\nconst txtLight = offWhite;\nconst txt = white;\nconst notificationAccent = gold;\nconst yourMessageBackground = matteBlack;\nconst friendsMessageBackground = \"#111111\";\nexport function getTheme(base) {\n // it's ok to mutate the theme passed in because it's a clone\n base.author = \"e2rfi-fqaaa-aaaaf-aa5ua-cai\";\n base.name = \"matteblackgold\";\n base.label = \"Matte Black Gold\";\n base.burst = false;\n base.bg = \"radial-gradient(circle, rgba(28,28,28,1) 10%, rgba(22,22,22,1) 79%)\";\n base.bd = black;\n base.txt = txt;\n base[\"txt-light\"] = txtLight;\n base.icon.txt = white;\n base.icon.selected = gold;\n base.button.bg = gold;\n base.button.hv = lightGold;\n base.button.txt = \"rgba(255 255 255 / 80%)\";\n base.button.disabled = matteBlack;\n // base.button[\"txt-sh\"] = \"1px 1px 0px rgba(0,0,0,0.7)\"; // commented out for now\n base.collapsible.closed.header.txt = txt;\n base.collapsible.open.header.arrow = white;\n base.accent = gold;\n base.panel.left.bg = offBlack2;\n base.panel.right.modal = offBlack1;\n base.modal.bd = base.bd;\n base.modal.bg = base.panel.right.modal;\n base.chatSummary[\"bg-selected\"] = \"rgba(24,24,24,0.4)\";\n base.chatSummary.hv = \"rgba(24,24,24,0.8)\";\n base.chatSummary.del = base.button.bg;\n base.members.hv = base.chatSummary.hv;\n base.placeholder = txtLight;\n base.entry.input.bg = matteBlack;\n base.input.bg = matteBlack;\n base.input.accent = gold;\n base.chatSearch.bg = matteBlack;\n base.currentChat.msg.bg = friendsMessageBackground;\n base.currentChat.msg.me.bg = yourMessageBackground;\n base.currentChat.msg.txt = white;\n base.currentChat.date.bg = base.currentChat.msg.bg;\n base.currentChat.msg.inert = base.currentChat.msg.bg;\n base.notificationBar.bg = notificationAccent;\n base.notificationBar.txt = white;\n base.timeline.txt = base.notificationBar.txt;\n base.menu.bd = base.bd;\n base.menu.bg = base.panel.right.modal;\n base.menu.txt = txt;\n base.menu.warn = txt;\n base.menu[\"disabled-txt\"] = offWhite;\n base.icon.inverted.txt = lightGold;\n base.menu.hv = offBlack3;\n base.reaction.me = white;\n base.primary = gold;\n base.link.underline = base.primary;\n base.scrollbar.bg = base.button.hv;\n base.toast.success.bg = base.notificationBar.bg;\n base.code = {\n txt: gold,\n bg: \"rgba(255,255,255,0.1)\",\n };\n base.audio.outer = gold;\n base.audio.me.outer = gold;\n base.audio.inner = txt;\n base.audio.me.inner = txt;\n base.audio.note = txt;\n base.audio.me.note = txt;\n return base;\n}\n","// Colors\nconst white = \"#FFFFFF\";\nconst pink1 = \"#f29ad8\";\nconst pink2 = \"#ee71c3\";\nconst pink3 = \"#e448a3\";\nconst barbieYellow = \"#f9dd9a\";\nconst barbieBlue = \"#87ced0\";\nconst txtLight = white;\nconst txt = white;\nconst notificationAccent = barbieYellow;\nconst yourMessageBackground = \"#e742ad\";\nconst friendsMessageBackground = \"#94c6c9\";\nexport function getTheme(base) {\n // it's ok to mutate the theme passed in because it's a clone\n base.author = \"e2rfi-fqaaa-aaaaf-aa5ua-cai\";\n base.name = \"barbie\";\n base.label = \"Barbie\";\n base.burst = false;\n base.bg = \"radial-gradient(circle, rgba(242,154,216,1) 10%, rgba(238,113,195,1) 80%)\";\n base.bd = \"#e305ad\";\n base.bd = \"rgba(255,255,255,0.2)\";\n base.txt = txt;\n base[\"txt-light\"] = txtLight;\n base.icon.txt = white;\n base.icon.selected = barbieBlue;\n base.button.bg = barbieBlue;\n base.button.hv = barbieYellow;\n base.button[\"hv-txt\"] = barbieBlue;\n base.button.txt = \"rgba(255 255 255 / 80%)\";\n base.button.disabled = pink1;\n base.collapsible.closed.header.txt = txt;\n base.collapsible.open.header.arrow = white;\n base.accent = barbieYellow;\n base.panel.nav.bg = pink3;\n base.panel.left.bg = pink3;\n base.panel.right.modal = \"#e1349a\";\n base.modal.bd = base.bd;\n base.modal.bg = pink3;\n base.chatSummary[\"bg-selected\"] = \"#e75aac\";\n base.chatSummary.hv = \"rgb(225 52 154 / 80%)\";\n base.chatSummary.del = base.button.bg;\n base.members.hv = base.chatSummary.hv;\n base.placeholder = txtLight;\n base.entry.bg = pink3;\n base.entry.input.bg = pink1;\n base.input.bg = pink1;\n base.input.accent = barbieBlue;\n base.chatSearch.bg = pink2;\n base.currentChat.msg.bg = friendsMessageBackground;\n base.currentChat.msg.me.bg = yourMessageBackground;\n base.currentChat.msg.txt = white;\n base.currentChat.date.bg = base.currentChat.msg.bg;\n base.currentChat.msg.inert = base.currentChat.msg.bg;\n base.notificationBar.bg = notificationAccent;\n base.notificationBar.txt = white;\n base.timeline.txt = base.notificationBar.txt;\n base.menu.bd = base.bd;\n base.menu.bg = \"#e75aac\";\n base.menu.txt = txt;\n base.menu.warn = txt;\n base.menu[\"disabled-txt\"] = white;\n base.icon.inverted.txt = barbieYellow;\n base.menu.hv = pink2;\n base.reaction.me = white;\n base.reaction.bg = barbieBlue;\n base.primary = barbieBlue;\n base.link.underline = base.primary;\n base.scrollbar.bg = base.button.hv;\n base.toast.success.bg = base.notificationBar.bg;\n base.code = {\n bg: white,\n txt: pink1,\n };\n base.entry.input.sh = \"none\";\n base.input.sh = \"none\";\n base.chatSearch.sh = \"none\";\n base.recommended.bg = pink3;\n base.unread[\"mute-solid\"] = pink3;\n base.daily.header = pink1;\n base.daily.accent = barbieBlue;\n base.daily.accentText = txt;\n base.daily.background = pink1;\n base.daily.backgroundAccent = barbieBlue;\n base.daily.border = \"#ffffff30\";\n base.daily.mainAreaBg = pink1;\n base.daily.mainAreaBgAccent = barbieYellow;\n base.daily.mainAreaText = txt;\n base.daily.supportiveText = txtLight;\n base.audio.outer = pink3;\n base.audio.me.outer = barbieBlue;\n base.audio.inner = barbieYellow;\n base.audio.me.inner = barbieYellow;\n base.audio.note = txt;\n base.audio.me.note = txt;\n return base;\n}\n","// Colors\nconst white = \"#FFFFFF\";\nconst raspberry = \"#971E57\";\nconst darkGray = \"#696969\";\nconst silver = \"#C0C0C0\";\nconst veryDarkGray = \"#1e2123\";\nconst lighterDarkGray = \"#101010\";\nconst lightPurple = \"#864893\";\nconst txt = white;\nexport function getTheme(base) {\n // it's ok to mutate the theme passed in because it's a clone\n base.author = \"j67p2-qaaaa-aaaaf-aa3cq-cai\";\n base.name = \"tokyonight\";\n base.label = \"Tokyo Night\";\n base.burst = true;\n base.bg = \"radial-gradient(circle, #69173e 5%, rgb(6 1 22) 100%)\";\n base.bd = darkGray;\n base.txt = white;\n base.icon.txt = darkGray;\n base.icon.selected = raspberry;\n base.button.bg = raspberry;\n base.button.hv = raspberry;\n base.button[\"hv-txt\"] = white;\n base.button[\"disabled-txt\"] = darkGray;\n base.button.txt = \"rgba(255 255 255 / 80%)\";\n base.button.disabled = silver;\n base.collapsible.closed.header.txt = txt;\n base.collapsible.open.header.arrow = white;\n base.accent = raspberry;\n base.progress.fill = lightPurple;\n base.panel.left.bg = veryDarkGray;\n base.panel.right.modal = lighterDarkGray;\n base.modal.bd = darkGray;\n base.modal.bg = lighterDarkGray;\n base.chatSummary[\"bg-selected\"] = \"rgb(54 59 62 / 50%)\";\n base.chatSummary.hv = \"rgb(24 24 24 / 80%)\";\n base.chatSummary.del = base.button.bg;\n base.members.hv = base.chatSummary.hv;\n base.placeholder = silver;\n base.entry.bg = veryDarkGray;\n base.entry.input.bg = veryDarkGray;\n base.input.bg = raspberry;\n base.input.accent = raspberry;\n base.chatSearch.bg = veryDarkGray;\n base.currentChat.msg.bg = veryDarkGray;\n base.currentChat.msg.me.bg = raspberry;\n base.currentChat.msg.txt = white;\n base.currentChat.date.bg = base.currentChat.msg.bg;\n base.currentChat.msg.inert = base.currentChat.msg.bg;\n base.notificationBar.bg = veryDarkGray;\n base.notificationBar.txt = white;\n base.timeline.txt = base.notificationBar.txt;\n base.menu.bd = white;\n base.menu.bg = lighterDarkGray;\n base.menu.txt = txt;\n base.menu.warn = txt;\n base.menu[\"disabled-txt\"] = white;\n base.icon.inverted.txt = silver;\n base.menu.hv = raspberry;\n base.reaction.me = white;\n base.reaction.bg = veryDarkGray;\n base.primary = lightPurple;\n base.link.underline = white;\n base.scrollbar.bg = raspberry;\n base.toast.success.bg = base.notificationBar.bg;\n base.code = {\n txt: white,\n bg: \"black\",\n };\n base.entry.input.sh = \"none\";\n base.input.sh = \"none\";\n base.chatSearch.sh = \"none\";\n base.recommended.bg = raspberry;\n base.unread[\"mute-solid\"] = raspberry;\n base.audio.outer = lightPurple;\n base.audio.me.outer = lightPurple;\n base.audio.inner = silver;\n base.audio.me.inner = silver;\n base.audio.note = txt;\n base.audio.me.note = txt;\n return base;\n}\n","import { hexPercent } from \"../utils\";\nconst veryDarkCyan = \"#002b36\";\nconst darkCyan = \"#073642\";\nconst darkCyan2 = \"#0c586ba6\";\nconst darkBlue = \"#186899\";\nconst lightishGray = \"#90aba7\";\nconst lightGray = \"#d6dddc\";\nconst olive = \"#748c09\";\nconst shadow = \"inset 0px 2px 4px rgba(0,0,0,0.4)\";\nconst txt = lightGray;\nconst txtLight = lightishGray;\nexport function getTheme(base) {\n base.author = \"j67p2-qaaaa-aaaaf-aa3cq-cai\";\n base.name = \"solarizeddark\";\n base.label = \"Solarized Dark\";\n base.burst = false;\n base.bg = veryDarkCyan;\n base.bd = \"rgba(255,255,255,0.2)\";\n base.txt = txt;\n base[\"txt-light\"] = txtLight;\n base.icon.txt = olive;\n base.icon.selected = olive;\n base.button.bg = darkBlue;\n base.button.hv = olive;\n base.button.txt = txt;\n base.button.disabled = veryDarkCyan;\n base.button[\"disabled-bd\"] = base.bd;\n base.collapsible.closed.header.txt = txt;\n base.collapsible.open.header.arrow = olive;\n base.accent = olive;\n base.panel.nav.bg = veryDarkCyan;\n base.panel.left.bg = hexPercent(darkCyan, 40);\n base.panel.right.modal = veryDarkCyan;\n base.modal.bd = base.bd;\n base.modal.bg = base.panel.right.modal;\n base.chatSummary[\"bg-selected\"] = darkCyan2;\n base.chatSummary.hv = veryDarkCyan;\n base.chatSummary.del = base.button.bg;\n base.members.hv = darkCyan2;\n base.placeholder = txtLight;\n base.entry.input.bg = veryDarkCyan;\n base.entry.input.sh = shadow;\n base.input.bg = veryDarkCyan;\n base.input.sh = shadow;\n base.chatSearch.bg = veryDarkCyan;\n base.chatSearch.sh = shadow;\n base.currentChat.msg.bg = darkCyan;\n base.currentChat.msg.me.bg = darkCyan2;\n base.currentChat.msg.txt = txtLight;\n base.currentChat.date.bg = base.currentChat.msg.bg;\n base.currentChat.msg.inert = base.currentChat.msg.bg;\n base.notificationBar.bg = olive;\n base.notificationBar.txt = txt;\n base.timeline.txt = base.notificationBar.txt;\n base.menu.bd = base.bd;\n base.menu.bg = base.panel.right.modal;\n base.menu.txt = txt;\n base.menu.warn = txt;\n base.menu[\"disabled-txt\"] = txtLight;\n base.icon.inverted.txt = txt;\n base.menu.hv = darkCyan2;\n base.reaction.me = olive;\n base.primary = olive;\n base.link.underline = base.primary;\n base.scrollbar.bg = hexPercent(base.button.hv, 60);\n base.toast.success.bg = base.notificationBar.bg;\n base.audio.outer = darkBlue;\n base.audio.me.outer = darkBlue;\n base.audio.inner = olive;\n base.audio.me.inner = olive;\n base.audio.note = txt;\n base.audio.me.note = txt;\n return base;\n}\n","import { hexPercent } from \"../utils\";\nconst orange = \"#fc8e0f\";\nconst darkOrange = \"#f3722b\";\nconst lightGreen = \"#0bcd04\";\nconst green = \"#097905\";\nconst yellow = \"#ffc142\";\nconst grey = \"#fbfaf4\";\nconst darkBrown = \"#1e1203\";\nconst lighterBrown = \"#281805\";\nconst txt = grey;\nconst txtLight = hexPercent(yellow, 80);\nexport function getTheme(base) {\n base.author = \"2yfsq-kaaaa-aaaaf-aaa4q-cai\";\n base.name = \"halloween\";\n base.label = \"Halloween\";\n base.burst = false;\n base.bd = hexPercent(orange, 30);\n base.bg =\n \"linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.7)), url('/assets/halloween.webp') center/cover no-repeat\";\n base.scrollbar.bg = hexPercent(orange, 30);\n base.txt = txt;\n base[\"txt-light\"] = txtLight;\n base.accent = green;\n base.code = {\n txt: green,\n bg: \"rgba(0,0,0,0.8)\",\n };\n base.icon.txt = yellow;\n base.icon.selected = lightGreen;\n base.button.bg = orange;\n base.button.hv = darkOrange;\n base.button.txt = txt;\n base.button.disabled = lighterBrown;\n base.button[\"disabled-txt\"] = hexPercent(darkOrange, 90);\n base.button[\"disabled-bd\"] = base.bd;\n base.audio.outer = green;\n base.audio.inner = yellow;\n base.audio.me.outer = green;\n base.audio.me.inner = yellow;\n base.audio.note = txt;\n base.audio.me.note = txt;\n base.collapsible.closed.header.txt = txt;\n base.collapsible.open.header.arrow = lightGreen;\n base.panel.left.bg = hexPercent(darkBrown, 80);\n base.panel.right.modal = darkBrown;\n base.panel.right.bg = hexPercent(darkBrown, 80);\n base.modal.bd = base.bd;\n base.modal.bg = darkBrown;\n base.currentChat.msg.bg = darkBrown;\n base.currentChat.msg.bd = `1px solid ${hexPercent(yellow, 50)}`;\n base.currentChat.msg.me.bg = darkOrange;\n base.currentChat.msg.txt = txt;\n base.currentChat.date.bg = base.currentChat.msg.bg;\n base.currentChat.msg.inert = base.currentChat.msg.bg;\n base.chatSummary[\"bg-selected\"] = lighterBrown;\n base.chatSummary.hv = hexPercent(lighterBrown, 80);\n base.chatSummary.del = base.button.bg;\n base.members.hv = darkBrown;\n base.placeholder = txtLight;\n base.entry.input.bg = lighterBrown;\n base.entry.bg = hexPercent(darkBrown, 80);\n base.entry.input.sh = `inset 0px 2px 4px rgba(0,0,0,0.8)`;\n base.input.bg = lighterBrown;\n base.input.sh = `inset 0px 2px 4px rgba(0,0,0,0.8)`;\n base.input.accent = lightGreen;\n base.chatSearch.bg = darkBrown;\n base.chatSearch.sh = `inset 0px 2px 4px rgba(0,0,0,0.8)`;\n base.notificationBar.bg = green;\n base.notificationBar.txt = txt;\n base.timeline.txt = base.notificationBar.txt;\n base.menu.bd = base.bd;\n base.menu.bg = base.panel.right.modal;\n base.menu.txt = txt;\n base.menu.warn = txt;\n base.menu[\"disabled-txt\"] = txtLight;\n base.icon.inverted.txt = txt;\n base.menu.hv = lighterBrown;\n base.reaction.me = green;\n base.primary = lightGreen;\n base.link.underline = lightGreen;\n base.toast.success.bg = green;\n base.daily.header = darkBrown;\n base.daily.accent = base.accent;\n base.daily.accentText = txt;\n base.daily.background = darkBrown;\n base.daily.backgroundAccent = orange;\n base.daily.border = orange;\n base.daily.mainAreaBg = darkBrown;\n base.daily.mainAreaBgAccent = base.accent;\n base.daily.mainAreaText = txt;\n base.daily.supportiveText = \"#4e5670\";\n return base;\n}\n","import { hexPercent } from \"../utils\";\nconst black = \"#000000\";\nconst txt = \"#242834\";\nconst txt70 = hexPercent(txt, 70);\nconst txt60 = hexPercent(txt, 60);\nconst disabledTxt = txt70;\nconst white = \"#ffffff\";\nconst powderBlue = \"rgb(56, 183, 240)\";\n// const pink = \"#F865B0\";\nconst yellow = \"rgb(248, 255, 131)\";\nconst red = \"#E31A3E\";\nexport function getTheme(base) {\n base.hidden = false;\n base.author = \"2yfsq-kaaaa-aaaaf-aaa4q-cai\";\n base.name = \"signals\";\n base.label = \"Signals\";\n base.bg = white;\n base.burst = false;\n base.logo = false;\n base.primary = powderBlue;\n base.accent = red;\n base.placeholder = black;\n base.txt = txt;\n base[\"txt-light\"] = txt70;\n base.bd = black;\n base.rd = \"0\";\n base.bw = \"2px\";\n base.disabledTxt = txt70;\n base.placeholder = txt60;\n base.progress.bd = \"rgba(0,0,0,0.2)\";\n base.progress.fill = powderBlue;\n base.collapsible.closed.header.txt = txt70;\n base.timeline.txt = black;\n base.time.txt = txt60;\n base.input.bg = yellow;\n base.input.sh = \"none\";\n base.input.bd = black;\n base.input.accent = red;\n base.entry.bg = yellow;\n base.entry.input.bg = white;\n base.entry.input.rd = \"0\";\n base.entry.input.sh = \"none\";\n base.entry.input.bd = black;\n base.panel.bg = \"transparent\";\n base.panel.nav.bg = white;\n base.panel.left.bg = \"transparent\";\n base.panel.right.bg = \"transparent\";\n base.panel.right.modal = white;\n base.chatSearch.bg = white;\n base.chatSearch.bd = black;\n base.chatSearch.rd = \"0\";\n base.chatSummary[\"bg-selected\"] = powderBlue;\n base.chatSummary.hv = yellow;\n base.menu.txt = black;\n base.menu[\"disabled-txt\"] = hexPercent(black, 80);\n base.menu.sh = `8px 8px 0 ${powderBlue}`;\n base.menu.bd = black;\n base.menu.separator = black;\n base.menu.hv = yellow;\n base.button[\"disabled-txt\"] = disabledTxt;\n base.button.rd = \"0\";\n base.button.sh = `4px 4px 0 ${powderBlue}`;\n base.modal.filter = \"blur(5px)\";\n base.modal.bg = white;\n base.modal.bd = \"2px solid black\";\n base.modal.rd = \"0\";\n base.modal.sh = `8px 8px 0 ${powderBlue}`;\n base.modalPage.bg = \"rgba(255, 255, 255, 0.5)\";\n base.modalPage.txt = txt;\n base.currentChat.msg.bg = white;\n base.currentChat.msg.r1 = \"0\";\n base.currentChat.msg.r2 = \"0\";\n base.currentChat.msg.bd = \"2px solid black\";\n base.currentChat.msg.muted = white;\n base.currentChat.msg.txt = black;\n base.currentChat.msg.inert = \"rgba(226,226,226,0.8)\";\n base.currentChat.msg.me.bd = black;\n base.currentChat.msg.me.bg = red;\n base.currentChat.date.bg = \"rgba(239 239 239 / 80%)\";\n base.icon.txt = black;\n base.icon.hv = white;\n base.icon.inverted.txt = black;\n base.icon.selected = black;\n base.recommended.bg = white;\n base.members.hv = yellow;\n base.card.rd = \"0\";\n base.card.sh = `8px 8px 0 ${powderBlue}`;\n base.daily.header = white;\n base.daily.accent = base.accent;\n base.daily.accentText = txt;\n base.daily.background = white;\n base.daily.backgroundAccent = white;\n base.daily.border = base.bd;\n base.daily.mainAreaBg = white;\n base.daily.mainAreaBgAccent = base.accent;\n base.daily.mainAreaText = txt;\n base.daily.supportiveText = \"#4e5670\";\n base.code = {\n bg: white,\n txt: powderBlue,\n };\n base.unread.mute = \"#dddddd\";\n base.unread[\"mute-solid\"] = \"#dddddd\";\n base.unread[\"mute-txt\"] = \"#999999\";\n base.audio.outer = powderBlue;\n base.audio.me.outer = powderBlue;\n base.audio.inner = yellow;\n base.audio.me.inner = yellow;\n base.audio.note = black;\n base.audio.me.note = white;\n return base;\n}\n","import { hexPercent } from \"../utils\";\nconst textBox = \"rgba(226,226,226,0.4)\";\nconst txt = \"#000000\";\nconst txt40 = hexPercent(txt, 40);\nconst txt60 = hexPercent(txt, 60);\nconst txt80 = hexPercent(txt, 80);\nconst disabledTxt = txt40;\nconst white = \"#FDFFFF\";\nconst black = \"#000000\";\nconst silver = \"#C0C0C0\";\nconst trolleyGray = \"#818181\";\nconst msBlue = \"#010081\";\nconst magenta = \"#ff0081\";\nconst successGreen = \"#28a745\";\nconst errorRed = \"#dc3545\";\nconst green = \"#008080\";\nexport function getTheme(base) {\n base.author = \"y3rqn-fyaaa-aaaaf-a7z6a-cai\";\n base.name = \"windoge98\";\n base.label = \"Windoge98\";\n base.bg = `${green} url('/assets/windoge98logo.png') bottom 60px right 10px no-repeat`;\n base.burst = false;\n base.logo = false;\n base.txt = txt80;\n base[\"txt-light\"] = txt60;\n base.bd = \"#b0b0b0\";\n base.rd = \"0\";\n base.primary = \"#0884CE\";\n base.accent = magenta;\n base.disabledTxt = txt40;\n base.placeholder = txt60;\n base.fontUrl = \"https://fonts.googleapis.com/css2?family=Ubuntu+Mono:wght@400;700&display=swap\";\n base.font = `'Ubuntu Mono', monospace`;\n base[\"font-bold\"] = `'Ubuntu Mono', monospace`;\n base.timeline.txt = txt40;\n base.time.txt = txt60;\n base.time.icon = \"rgba(0,0,0,0.3)\";\n base.time.bg = \"rgba(0,0,0,0.1)\";\n base.time.me.txt = white;\n base.time.me.icon = white;\n base.time.me.bg = \"rgba(255,255,255,0.2)\";\n base.code = {\n bg: \"rgba(0,0,0,0.8)\",\n txt: \"#38e838\",\n };\n base.input.bg = white;\n base.input.accent = msBlue;\n base.input.sh = \"inset 0px 2px 4px rgba(0, 0, 0, 0.6)\";\n base.entry.bg = silver;\n base.entry.input.bg = white;\n base.entry.input.rd = \"0\";\n base.entry.input.sh = \"inset 0px 2px 4px rgba(0, 0, 0, 0.6)\";\n base.panel.bg = msBlue;\n base.panel.left.bg = silver;\n base.panel.right.bg = silver;\n base.panel.nav.bg = \"linear-gradient(#0884CE, #21219c)\";\n base.panel.right.modal = silver;\n base.chatSearch.bg = textBox;\n base.chatSearch.rd = \"0\";\n base.chatSummary.hv = \"rgba(255,255,255,0.4)\";\n base.chatSearch.sh = \"inset 0px 2px 4px rgba(0, 0, 0, 0.6)\";\n base.chatSummary[\"bg-selected\"] = \"rgba(255,255,255,0.6)\";\n base.menu.txt = txt80;\n base.menu.bg = silver;\n base.menu.bd = trolleyGray;\n base.menu.separator = trolleyGray;\n base.menu[\"disabled-txt\"] = txt60;\n base.menu.warn = errorRed;\n base.menu.sh = \"none\";\n base.button[\"disabled-txt\"] = disabledTxt;\n base.button.bg = msBlue;\n base.button.hv = magenta;\n base.button.rd = \"0\";\n base.avatar.rd = \"0\";\n base.toggle.rd.track = \"0\";\n base.toggle.rd.thumb = \"0\";\n base.nav.icon.rd = \"0\";\n base.modal.filter = \"blur(5px)\";\n base.modal.bg = silver;\n base.modalPage.bg = trolleyGray;\n base.modalPage.txt = txt;\n base.modal.rd = \"0\";\n base.modal.sh = \"none\";\n base.currentChat.msg.bd = trolleyGray;\n base.currentChat.msg.bg = silver;\n base.currentChat.msg.muted = trolleyGray;\n base.currentChat.msg.txt = txt60;\n base.currentChat.msg.inert = \"rgba(226,226,226,0.8)\";\n base.currentChat.msg.separator = \"rgba(0,0,0,0.1)\";\n base.currentChat.msg.me.bd = \"rgba(255,255,255,0.05)\";\n base.currentChat.msg.me.bg = msBlue;\n base.currentChat.date.bg = \"rgba(239 239 239 / 80%)\";\n base.currentChat.msg.r1 = \"0\";\n base.currentChat.msg.r2 = \"0\";\n base.icon.txt = black;\n base.icon.inverted.txt = black;\n base.icon.selected = white;\n base.recommended.bg = white;\n base.vote.yes.color = successGreen;\n base.vote.no.color = errorRed;\n base.notificationBar.bg = magenta;\n base.notificationBar.txt = white;\n // misc\n base.link.underline = msBlue;\n base.progress.bd = \"rgba(0,0,0,0.2)\";\n base.collapsible.closed.header.txt = txt40;\n base.scrollbar.bg = trolleyGray;\n base.card.rd = \"0\";\n // daily\n base.daily.header = green;\n base.daily.accent = base.accent;\n base.daily.accentText = txt;\n base.daily.background = green;\n base.daily.backgroundAccent = silver;\n base.daily.border = base.bd;\n base.daily.mainAreaBg = green;\n base.daily.mainAreaBgAccent = silver;\n base.daily.mainAreaText = txt;\n base.daily.supportiveText = \"#4e5670\";\n base.audio.outer = base.primary;\n base.audio.me.outer = base.accent;\n base.audio.inner = base.accent;\n base.audio.me.inner = green;\n base.audio.note = base.currentChat.msg.txt;\n base.audio.me.note = base.currentChat.msg.me.txt;\n return base;\n}\n","export function deepMerge(target, source) {\n const merged = { ...target };\n for (const key in source) {\n const k = key;\n const val = source[k];\n if (typeof val === \"object\" && val !== undefined) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n merged[k] = deepMerge(merged[k], val);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n merged[k] = source[k];\n }\n }\n return merged;\n}\n","import { writable } from \"svelte/store\";\nexport function createLocalStorageStore(key, def) {\n const store = writable(localStorage.getItem(key) || def);\n return {\n subscribe: store.subscribe,\n set: (state) => {\n store.set(state);\n localStorage.setItem(key, state);\n },\n };\n}\n","import { darkTheme } from \"./defaultDark\";\nimport { getTheme as getBlueTheme } from \"./community/blue\";\nimport { getTheme as getWhiteTheme } from \"./defaultLight\";\nimport { derived, readable, writable } from \"svelte/store\";\nimport { getTheme as getSubmarineTheme } from \"./community/submarine\";\nimport { getTheme as getNightvisionTheme } from \"./community/nightvision\";\nimport { getTheme as getMatteBlackGoldTheme } from \"./community/matteblackgold\";\nimport { getTheme as getBarbieTheme } from \"./community/barbie\";\nimport { getTheme as getTokyoNightTheme } from \"./community/tokyonight\";\nimport { getTheme as getSolarizedDarkTheme } from \"./community/solarizeddark\";\nimport { getTheme as getHalloweenTheme } from \"./community/halloween\";\nimport { getTheme as getSignalsTheme } from \"./community/signals\";\nimport { getTheme as getWindoge98Theme } from \"./community/windoge98\";\nimport { deepMerge } from \"./merge\";\nimport { createLocalStorageStore } from \"../utils/store\";\nconst blueTheme = getBlueTheme();\nconst defaultLight = getWhiteTheme(cloneTheme(blueTheme));\nconst defaultDark = darkTheme(blueTheme);\n// Community themes need to be added here\nexport const communityThemes = [\n blueTheme,\n getSubmarineTheme(cloneTheme(defaultDark)),\n getNightvisionTheme(cloneTheme(defaultDark)),\n getMatteBlackGoldTheme(cloneTheme(defaultDark)),\n getBarbieTheme(cloneTheme(blueTheme)),\n getTokyoNightTheme(cloneTheme(defaultDark)),\n getWindoge98Theme(cloneTheme(blueTheme)),\n getSolarizedDarkTheme(cloneTheme(defaultDark)),\n getHalloweenTheme(cloneTheme(defaultDark)),\n getSignalsTheme(cloneTheme(blueTheme)),\n];\nexport const themes = {\n white: defaultLight,\n dark: defaultDark,\n};\ncommunityThemes.forEach((theme) => {\n themes[theme.name] = theme;\n});\nfunction cloneTheme(theme) {\n return JSON.parse(JSON.stringify(theme));\n}\nfunction writeCssVars(prefix, section) {\n for (const [comp, props] of Object.entries(section)) {\n if (typeof props === \"string\") {\n const varStr = `${prefix}${comp}`;\n document.documentElement.style.setProperty(varStr, props);\n }\n else if (typeof props === \"object\" && props) {\n writeCssVars(`${prefix}${comp}-`, props);\n }\n }\n}\nconst prefersDarkQuery = \"(prefers-color-scheme: dark)\";\nconst osDarkStore = readable(window.matchMedia(prefersDarkQuery).matches, (set) => {\n const updateDarkPref = (event) => set(event.matches);\n const mediaQueryList = window.matchMedia(prefersDarkQuery);\n mediaQueryList.addEventListener(\"change\", updateDarkPref);\n set(mediaQueryList.matches);\n return () => mediaQueryList.removeEventListener(\"change\", updateDarkPref);\n});\nexport function setModifiedTheme(baseName, newName, overrides) {\n const base = themes[newName] ?? themes[baseName];\n if (base) {\n const overridden = deepMerge(base, overrides);\n themes[newName] = overridden;\n themeOverride.set(newName);\n }\n}\nexport const themeOverride = writable(undefined);\nexport const themeType = createLocalStorageStore(\"openchat_theme\", \"system\");\nexport const preferredDarkThemeName = createLocalStorageStore(\"openchat_dark_theme\", \"dark\");\nexport const preferredLightThemeName = createLocalStorageStore(\"openchat_light_theme\", \"white\");\nexport const preferredDarkTheme = derived(preferredDarkThemeName, (darkName) => themes[darkName]);\nexport const preferredLightTheme = derived(preferredLightThemeName, (lightName) => {\n if (lightName === \"light\") {\n // we have renamed \"light\" to \"blue\"\n lightName = \"blue\";\n }\n return themes[lightName];\n});\nexport const currentThemeName = derived([themeType, preferredDarkThemeName, preferredLightThemeName, osDarkStore, themeOverride], ([$themeType, preferredDark, preferredLight, prefersDark, override]) => {\n if (override !== undefined)\n return override;\n let themeName = \"white\";\n if ($themeType === \"system\") {\n if (prefersDark) {\n themeName = preferredDark;\n }\n else {\n themeName = preferredLight;\n }\n }\n else if ($themeType === \"light\") {\n themeName = preferredLight;\n }\n else if ($themeType === \"dark\") {\n themeName = preferredDark;\n }\n else {\n // this branch exists to deal with legacy states where a user has selected a particular community theme\n const existing = themes[$themeType];\n if (existing !== undefined) {\n if (existing.mode === \"dark\") {\n preferredDarkThemeName.set($themeType);\n themeType.set(\"dark\");\n }\n if (existing.mode === \"light\") {\n preferredLightThemeName.set($themeType);\n themeType.set(\"light\");\n }\n themeName = $themeType;\n }\n }\n return themeName;\n});\nfunction loadFont(theme) {\n if (theme.fontUrl) {\n const link = document.createElement(\"link\");\n link.setAttribute(\"rel\", \"stylesheet\");\n link.setAttribute(\"type\", \"text/css\");\n link.setAttribute(\"href\", theme.fontUrl);\n document.getElementsByTagName(\"head\")[0].appendChild(link);\n }\n}\nexport const currentTheme = derived(currentThemeName, (name) => {\n const theme = themes[name];\n loadFont(theme);\n writeCssVars(\"--\", theme);\n return theme;\n});\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport { locale, dictionary } from \"svelte-i18n\";\nimport { editmode, editingLabel } from \"../i18n/i18n\";\nimport { derived, get } from \"svelte/store\";\nimport { currentTheme } from \"../theme/themes\";\nfunction getSvg(theme) {\n return `\n \n \n \n \n \n \n `;\n}\nfunction isTranslatable(dictionary, locale, { key }) {\n if (!locale)\n return false;\n const localeValues = dictionary[locale];\n if (!localeValues)\n return false;\n if (key in localeValues)\n return true;\n const keys = key.split(\".\");\n let result = localeValues;\n for (const key of keys) {\n const val = result[key];\n if (val == null) {\n return false;\n }\n else {\n result = val;\n }\n }\n return result !== undefined;\n}\nexport function translatable(node, param) {\n if (param.key === undefined)\n return;\n let resourceKey = param.key;\n const position = param.position ?? \"relative\";\n const top = param.top ?? 4;\n const right = param.right;\n // this will be called if the parameter changes on this node\n const update = (param) => {\n if (param.key !== undefined) {\n resourceKey = param.key;\n }\n };\n const editable = derived([locale, dictionary, editmode], ([$locale, $dictionary, $editmode]) => {\n return ($editmode &&\n !$locale?.startsWith(\"en\") &&\n isTranslatable($dictionary, $locale, resourceKey));\n });\n let span = undefined;\n const unsub = editable.subscribe((canEdit) => {\n if (canEdit) {\n span = document.createElement(\"span\");\n span.classList.add(\"is-translatable\");\n span.style.position = position;\n span.style.top = `${top}px`;\n if (right !== undefined) {\n span.style.right = `${right}px`;\n }\n span.innerHTML = getSvg(get(currentTheme));\n node.parentNode?.insertBefore(span, node.nextSibling);\n span.addEventListener(\"click\", (ev) => {\n ev.stopPropagation();\n editingLabel.set(resourceKey);\n });\n }\n else {\n if (span) {\n node.parentNode?.removeChild(span);\n }\n }\n });\n const destroy = unsub;\n return {\n destroy,\n update,\n };\n}\n","\n\n\n {interpolate($_, resourceKey)}\n\n","\n\n{#if verified}\n {#if tooltip !== undefined}\n \n
\n
\n \n \n \n
\n
\n {:else}\n
\n {/if}\n{/if}\n\n\n","\n\n\n \"Avatar\"\n {#if userStatus === UserStatus.Online}\n
\n
\n {/if}\n {#if specialisation !== \"none\"}\n
\n {#if specialisation === \"verified\"}\n \n {:else if specialisation === \"bot\"}\n
\n \n
\n {/if}\n
\n {/if}\n\n\n\n","\n\n\n {@render children?.()}\n\n\n\n","import { writable } from \"svelte/store\";\nexport function filterRightPanelHistory(fn) {\n return rightPanelHistory.update((history) => history.filter(fn));\n}\nexport function filterByChatType(chat) {\n if (chat === undefined)\n return;\n filterRightPanelHistory((panel) => {\n if (chat.kind === \"direct_chat\") {\n return [\"new_group_panel\", \"user_profile\"].includes(panel.kind);\n }\n if (chat.kind === \"group_chat\" &&\n (chat.previewed ||\n (!(chat.subtype?.isNns ?? false) && panel.kind === \"proposal_filters\"))) {\n return false;\n }\n return true;\n });\n}\nexport const rightPanelHistory = writable([]);\nexport function popRightPanelHistory() {\n rightPanelHistory.update((history) => history.slice(0, history.length - 1));\n}\nexport function pushRightPanelHistory(state) {\n rightPanelHistory.update((history) => [...history, state]);\n}\n","import { derived, get, writable } from \"svelte/store\";\nimport page from \"page\";\nimport { toBigInt32 } from \"openchat-shared\";\nexport const notFound = writable(false);\nexport const pathContextStore = writable(undefined);\nexport const routerReady = writable(false);\n// if we attempt to use the router before it is set up it will blow up\nfunction getRouter() {\n return new Promise((resolve) => {\n function checkReadiness(iterations = 0) {\n if (iterations > 10)\n throw new Error(\"Router readiness check has failed - router cannot be used\");\n if (get(routerReady)) {\n resolve(page);\n }\n else {\n console.debug(\"ROUTER: router not ready, trying again in 100ms\");\n window.setTimeout(() => checkReadiness(iterations + 1), 100);\n }\n }\n checkReadiness();\n });\n}\nexport function pageReplace(url) {\n return getRouter().then((r) => r.replace(url));\n}\nexport function pageRedirect(url) {\n return getRouter().then((r) => r.redirect(url));\n}\nexport const location = derived(pathContextStore, ($store) => {\n return $store ? $store.routePath : \"\";\n});\nexport const querystring = derived(pathContextStore, ($store) => {\n return $store ? new URLSearchParams($store.querystring) : new URLSearchParams();\n});\nfunction qs(ctx) {\n return new URLSearchParams(ctx.querystring);\n}\nexport function adminRoute(_ctx) {\n return {\n kind: \"admin_route\",\n };\n}\nexport function communitesRoute(_ctx) {\n return {\n kind: \"communities_route\",\n };\n}\nexport function shareRoute(ctx) {\n const $qs = qs(ctx);\n return {\n kind: \"share_route\",\n title: $qs.get(\"title\") ?? \"\",\n text: $qs.get(\"text\") ?? \"\",\n url: $qs.get(\"url\") ?? \"\",\n };\n}\nexport function isBlogRoute(route) {\n return route.kind === \"blog_route\";\n}\nexport function isRoadmapRoute(route) {\n return route.kind === \"roadmap_route\";\n}\nexport function isWhitepaperRoute(route) {\n return route.kind === \"whitepaper_route\";\n}\nexport function isArchitectureRoute(route) {\n return route.kind === \"architecture_route\";\n}\nexport function isGuidelinesRoute(route) {\n return route.kind === \"guidelines_route\";\n}\nexport function isTermsRoute(route) {\n return route.kind === \"terms_route\";\n}\nexport function isFaqRoute(route) {\n return route.kind === \"faq_route\";\n}\nexport function isDiamondRoute(route) {\n return route.kind === \"diamond_route\";\n}\nexport function blogRoute(ctx) {\n return {\n kind: \"blog_route\",\n slug: ctx.params[\"slug\"],\n };\n}\nexport function chatListRoute(scope) {\n return (_ctx) => {\n return {\n kind: \"chat_list_route\",\n scope,\n };\n };\n}\nexport function globalDirectChatSelectedRoute(scope) {\n return (ctx) => {\n return chatSelectedRoute(ctx, \"direct_chat\", scope);\n };\n}\nexport function globalGroupChatSelectedRoute(scope) {\n return (ctx) => {\n return chatSelectedRoute(ctx, \"group_chat\", scope);\n };\n}\nfunction createCommunityIdentifier(id) {\n return { kind: \"community\", communityId: id };\n}\nexport function selectedCommunityRoute(ctx) {\n return {\n kind: \"selected_community_route\",\n communityId: { kind: \"community\", communityId: ctx.params[\"communityId\"] },\n scope: { kind: \"community\", id: createCommunityIdentifier(ctx.params[\"communityId\"]) },\n };\n}\nexport function routeForScope(scope) {\n switch (scope.kind) {\n case \"community\":\n return `/community/${scope.id.communityId}`;\n case \"direct_chat\":\n return \"/user\";\n case \"group_chat\":\n return \"/group\";\n case \"favourite\":\n return \"/favourite\";\n default:\n return \"/\";\n }\n}\nexport function selectedChannelRoute(fav) {\n return (ctx) => {\n const $qs = qs(ctx);\n return {\n kind: \"selected_channel_route\",\n chatId: {\n kind: \"channel\",\n communityId: ctx.params[\"communityId\"],\n channelId: Number(toBigInt32(ctx.params[\"channelId\"])),\n },\n communityId: { kind: \"community\", communityId: ctx.params[\"communityId\"] },\n messageIndex: ctx.params[\"messageIndex\"]\n ? Number(ctx.params[\"messageIndex\"])\n : undefined,\n threadMessageIndex: ctx.params[\"threadMessageIndex\"]\n ? Number(ctx.params[\"threadMessageIndex\"])\n : undefined,\n open: $qs.get(\"open\") === \"true\",\n scope: fav\n ? {\n kind: \"favourite\",\n communityId: createCommunityIdentifier(ctx.params[\"communityId\"]),\n }\n : { kind: \"community\", id: createCommunityIdentifier(ctx.params[\"communityId\"]) },\n };\n };\n}\nexport function favouritesRoute(ctx) {\n const $qs = qs(ctx);\n return {\n kind: \"favourites_route\",\n chatId: ctx.params[\"chatId\"] || undefined,\n messageIndex: ctx.params[\"messageIndex\"] ? Number(ctx.params[\"messageIndex\"]) : undefined,\n threadMessageIndex: ctx.params[\"threadMessageIndex\"]\n ? Number(ctx.params[\"threadMessageIndex\"])\n : undefined,\n open: $qs.get(\"open\") === \"true\",\n scope: { kind: \"favourite\" },\n };\n}\nfunction chatSelectedRoute(ctx, chatType, scope) {\n const $qs = qs(ctx);\n const chatId = ctx.params[\"chatId\"] || undefined;\n if (chatId === undefined) {\n return {\n kind: \"home_route\",\n scope,\n };\n }\n const identifier = chatType === \"direct_chat\"\n ? { kind: \"direct_chat\", userId: chatId }\n : { kind: \"group_chat\", groupId: chatId };\n return {\n kind: \"global_chat_selected_route\",\n chatId: identifier,\n chatType,\n messageIndex: ctx.params[\"messageIndex\"] ? Number(ctx.params[\"messageIndex\"]) : undefined,\n threadMessageIndex: ctx.params[\"threadMessageIndex\"]\n ? Number(ctx.params[\"threadMessageIndex\"])\n : undefined,\n open: $qs.get(\"open\") === \"true\",\n scope,\n };\n}\nexport function chatTypeToPath(chatType) {\n return chatType === \"direct_chat\" ? \"user\" : \"group\";\n}\nexport const pathParams = writable({ kind: \"not_found_route\" });\n","import { AuthClient } from \"@dfinity/auth-client\";\nimport { writable } from \"svelte/store\";\nimport page from \"page\";\nimport { setModifiedTheme } from \"../theme/themes\";\nimport { routerReady } from \"../routes\";\nconst FRAME_ANCESTORS = [\n \"http://localhost:5173\",\n \"https://windoge98.com\",\n \"https://desktop.windoge98.com\",\n \"https://4hy5z-qaaaa-aaaal-addrq-cai.icp0.io\",\n \"https://signalsicp.com\",\n \"https://gooble.app\",\n \"https://www.vault-bet.com\",\n \"https://vault-bet.com\",\n \"https://calm-pasca-49d7be.netlify.app\", // betbase proof of concept\n \"https://221bravo.app\",\n \"https://ht7v7-iaaaa-aaaak-qakga-cai.icp0.io\", //221bravo\n \"https://mdocx-gyaaa-aaaak-qcbsq-cai.icp0.io\",\n \"https://zexzi-jyaaa-aaaam-abj3q-cai.icp0.io\", //Betbase dev\n \"https://xw4dq-4yaaa-aaaam-abeuq-cai.ic0.app\", //Betbase live\n \"https://kjfeq-waaaa-aaaan-qedva-cai.icp0.io\", // vaultbet test\n \"https://spyzr-gqaaa-aaaan-qd66q-cai.icp0.io\", // vaultbet\n \"https://zkpoker.app\", // ZKP\n \"https://panoramablock.com\", // Panorama Block Live\n \"https://zdgud-kqaaa-aaaal-ajn4q-cai.icp0.io\", // tendyzone test\n \"https://okowr-oqaaa-aaaag-qkedq-cai.icp0.io\", // konecta pre-register\n \"https://pre.konecta.one\", //konecta pre-register\n \"https://konecta.one\", //konecta website/webapp\n \"https://y7mum-taaaa-aaaag-qklxq-cai.icp0.io\", // konecta pre-register test env\n \"https://e4tvt-6yaaa-aaaao-a3sdq-cai.icp0.io\", // dragon paladin wizard\n \"https://dragonwizards.club\", // dragon paladin wizard web2 test\n \"https://ic-vc.com\", // ICVC homepage\n \"https://mnc6b-aaaaa-aaaap-qhnrq-cai.icp0.io\", // ICVC via canister ID\n \"https://platform.ic-vc.com\", // ICVC platform\n \"https://mitchkurtzman.com\", //Mitch's portfolio POC Domain\n \"https://wk3k3-vaaaa-aaaak-adtza-cai.icp0.io\", //Mitch's portfilio POC canister ID\n \"https://fantasyextreme.org\", //fantasyextreme prod\n \"https://snxxs-viaaa-aaaam-acuba-cai.icp0.io\", //fantasyextreme staging\n \"https://e7bx6-iiaaa-aaaag-qm7oq-cai.icp0.io\", // Partnrship\n \"https://pow-3.org\", // pow-3 live\n \"https://power-3.org\", // pow-3 live (alias)\n];\nexport const framed = writable(false);\nexport const disableLeftNav = writable(false);\nexport function init() {\n if (window.self !== window.top) {\n console.debug(\"XFRAME_TARGET: setting listeners\", window.top);\n window.addEventListener(\"message\", externalMessage);\n broadcastMessage(\"openchat_ready\");\n }\n}\nexport function broadcastLoggedInUser(userId) {\n broadcastMessage({\n kind: \"openchat_user_logged_in\",\n userId,\n });\n}\nfunction broadcastMessage(msg) {\n if (window.top && window.self !== window.top) {\n console.debug(\"XFRAME_TARGET: sending message to host: \", msg);\n window.top.postMessage(msg, \"*\");\n }\n}\ninit();\nlet queuedRoute = undefined;\nlet isRouterReady = false;\nrouterReady.subscribe((ready) => {\n console.debug(\"XFRAME_TARGET: routerReady changed to \", ready, queuedRoute);\n if (ready && queuedRoute !== undefined) {\n page(queuedRoute);\n queuedRoute = undefined;\n }\n isRouterReady = ready;\n});\nfunction externalMessage(ev) {\n if (!FRAME_ANCESTORS.includes(ev.origin)) {\n return;\n }\n console.debug(\"XFRAME_TARGET: message received from host\", ev);\n if (ev.data) {\n try {\n const payload = ev.data;\n switch (payload.kind) {\n case \"override_settings\":\n console.debug(\"XFRAME_TARGET: overriding settings\", payload.settings.disableLeftNav);\n disableLeftNav.set(Boolean(payload.settings.disableLeftNav));\n break;\n case \"change_route\":\n if (isRouterReady) {\n console.debug(\"XFRAME_TARGET: changing path to \", payload.path);\n page(payload.path);\n }\n else {\n console.debug(\"XFRAME_TARGET: queueing route change \", payload.path);\n queuedRoute = payload.path;\n }\n break;\n case \"update_theme\":\n setModifiedTheme(payload.base, payload.name, payload.overrides);\n break;\n case \"logout\":\n console.debug(\"XFRAME_TARGET: logging out\");\n AuthClient.create().then((auth) => {\n return auth.logout().then(() => window.location.replace(\"/\"));\n });\n }\n }\n catch (err) {\n console.debug(\"XFRAME_TARGET: Error handling an external message from another window\", err);\n }\n }\n}\n","import { derived, writable } from \"svelte/store\";\nimport { ScreenWidth, screenWidth } from \"./screenDimensions\";\nimport { mobileWidth } from \"./screenDimensions\";\nimport { rightPanelHistory } from \"./rightPanel\";\nimport { pathParams } from \"../routes\";\nimport { disableLeftNav } from \"./xframe\";\nexport const navOpen = writable(false);\nexport const fullWidth = derived(screenWidth, ($screenWidth) => $screenWidth === ScreenWidth.ExtraExtraLarge);\nfunction someHomeRoute(route) {\n return (route === \"home_route\" ||\n route === \"chat_list_route\" ||\n route === \"selected_community_route\");\n}\n// TODO - we really need some tests around this and now that it's out of the Home component we can do that easily\nexport const layoutStore = derived([rightPanelHistory, mobileWidth, pathParams, fullWidth, disableLeftNav], ([$rightPanelHistory, $mobileWidth, $pathParams, $fullWidth, $disableLeftNav]) => {\n if ($mobileWidth) {\n const showRight = $rightPanelHistory.length > 0;\n const showMiddle = !someHomeRoute($pathParams.kind) && !showRight;\n const showLeft = !showMiddle && !showRight;\n const showNav = !$disableLeftNav &&\n (showLeft ||\n (($pathParams.kind === \"communities_route\" ||\n $pathParams.kind === \"admin_route\") &&\n !showRight));\n return {\n showNav,\n showMiddle,\n showLeft,\n rightPanel: (showRight ? \"inline\" : \"hidden\"),\n $pathParams,\n };\n }\n else {\n const showRight = $rightPanelHistory.length > 0 || $fullWidth;\n const floatRight = !$fullWidth;\n const showLeft = $pathParams.kind !== \"communities_route\" && $pathParams.kind !== \"admin_route\";\n return {\n showNav: !$disableLeftNav,\n showMiddle: true,\n showLeft,\n rightPanel: (showRight\n ? floatRight\n ? \"floating\"\n : \"inline\"\n : \"hidden\"),\n };\n }\n});\nexport function numberFromLocalStorage(key) {\n const val = localStorage.getItem(key);\n return val ? Number(val) : undefined;\n}\nfunction createPanelWidthStore(key) {\n const val = localStorage.getItem(key);\n const store = writable(val ? Number(val) : undefined);\n return {\n subscribe: store.subscribe,\n set: (val) => {\n store.set(val);\n if (val === undefined) {\n localStorage.removeItem(key);\n }\n else {\n localStorage.setItem(key, val.toString());\n }\n },\n update: store.update,\n };\n}\nexport const rightPanelWidth = createPanelWidthStore(\"openchat_right_panel_width\");\n","import { writable, get } from \"svelte/store\";\nimport { navOpen } from \"./layout\";\nimport { mobileWidth } from \"./screenDimensions\";\nimport { centerOfScreen } from \"../utils/alignment\";\nimport { reposition } from \"../utils/position\";\nconst { subscribe, update } = writable(undefined);\nconst menuAnchor = document.createElement(\"div\");\nmenuAnchor.className = \"contextMenu\";\ndocument.body.appendChild(menuAnchor);\nfunction close(menu) {\n if (menu !== undefined) {\n menu.style.removeProperty(\"--override-height\");\n if (!menuAnchor) {\n // debug logging - will remove later\n console.error(\"trying to remove menu when menu anchor is null\");\n }\n else {\n if (menuAnchor.contains(menu)) {\n menuAnchor.removeChild(menu);\n }\n }\n }\n return undefined;\n}\nfunction positionInCenter(menu) {\n const rect = menu.getBoundingClientRect();\n const dim = centerOfScreen(rect);\n menu.style.setProperty(\"left\", `${dim.x}px`);\n menu.style.setProperty(\"top\", `${dim.y + window.scrollY}px`);\n}\nexport const menuStore = {\n subscribe,\n position: (triggerEl, centered, position = \"bottom\", align = \"middle\", gutter = 8) => update((menu) => {\n if (menu === undefined)\n return menu;\n if (centered && get(mobileWidth)) {\n positionInCenter(menu);\n }\n else {\n reposition(triggerEl, menu, {\n position: `${position}-${align}`,\n margin: gutter,\n });\n }\n return menu;\n }),\n showMenu: (menu) => update((currentMenu) => {\n close(currentMenu);\n menuAnchor.appendChild(menu);\n return menu;\n }),\n hideMenu: () => update((menu) => {\n if (menu) {\n navOpen.set(false);\n }\n return close(menu);\n }),\n};\n","\n\n\n\n
\n \n
\n\n
\n \n \n \n {#if open}\n \n {/if}\n \n
\n\n\n","\n\n\n
\n {@render children?.()}\n
\n\n\n","import { derived } from \"svelte/store\";\nimport { mobileWidth } from \"./screenDimensions\";\nexport const iconSize = derived(mobileWidth, ($mobileWidth) => {\n return $mobileWidth ? \"1.6em\" : \"1.4em\";\n});\n","\n\n\n e.preventDefault()}\n transition:fade|local={{ duration: 100 }}\n class=\"menu\"\n class:fit\n class:shadow\n class:centered>\n {@render children?.()}\n\n\n\n","\n\n\n\n{#if disabled}\n
\n \n \n \n \n
\n{:else if separator}\n
\n{:else}\n \n \n \n \n \n \n{/if}\n\n\n","import { routeForChatIdentifier, notificationStatus, } from \"openchat-client\";\nimport page from \"page\";\nimport { isCanisterUrl } from \"../utils/urls\";\nfunction toUint8Array(base64String) {\n return Uint8Array.from(atob(base64String), (c) => c.charCodeAt(0));\n}\n// https://datatracker.ietf.org/doc/html/draft-thomson-webpush-vapid\nexport const PUBLIC_VAPID_KEY = \"BD8RU5tDBbFTDFybDoWhFzlL5+mYptojI6qqqqiit68KSt17+vt33jcqLTHKhAXdSzu6pXntfT9e4LccBv+iV3A=\";\nexport async function subscribeToNotifications(client, onNotification) {\n if (!notificationsSupported) {\n console.debug(\"PUSH: notifications not supported\");\n return false;\n }\n if (import.meta.env.OC_BUILD_ENV !== \"development\") {\n // Register a service worker if it hasn't already been done\n const registration = await registerServiceWorker();\n if (registration == null) {\n return false;\n }\n // Ensure the service worker is updated to the latest version\n registration.update();\n }\n navigator.serviceWorker.addEventListener(\"message\", (event) => {\n if (event.data.type === \"NOTIFICATION_RECEIVED\") {\n console.debug(\"PUSH: received push notification from the service worker\", event.data);\n onNotification(event.data.data);\n }\n else if (event.data.type === \"NOTIFICATION_CLICKED\") {\n console.debug(\"PUSH: notification clicked existing client routing to: \", event.data.path);\n page(event.data.path);\n }\n });\n notificationStatus.subscribe((status) => {\n switch (status) {\n case \"granted\":\n trySubscribe(client);\n break;\n case \"pending-init\":\n break;\n default:\n unsubscribeNotifications(client);\n break;\n }\n });\n return true;\n}\nexport const notificationsSupported = supported();\nfunction supported() {\n return (!isCanisterUrl &&\n \"serviceWorker\" in navigator &&\n \"PushManager\" in window &&\n \"Notification\" in window);\n}\nexport async function closeNotificationsForChat(chatId) {\n const registration = await getRegistration();\n if (registration !== undefined) {\n const notifications = await registration.getNotifications();\n for (const notification of notifications) {\n const url = routeForChatIdentifier(\"none\", chatId);\n if (notification.data?.path.startsWith(url)) {\n notification.close();\n }\n }\n }\n}\nexport async function closeNotifications(shouldClose) {\n const registration = await getRegistration();\n if (registration !== undefined) {\n const notifications = await registration.getNotifications();\n for (const notification of notifications) {\n const raw = notification?.data?.notification;\n if (raw !== undefined && shouldClose(raw)) {\n notification.close();\n }\n }\n }\n}\nasync function registerServiceWorker() {\n // Does the browser have all the support needed for web push\n if (!notificationsSupported) {\n return undefined;\n }\n await unregisterOldServiceWorker();\n try {\n return await navigator.serviceWorker.register(import.meta.env.OC_SERVICE_WORKER_PATH, {\n type: \"module\",\n });\n }\n catch (e) {\n console.log(e);\n return undefined;\n }\n}\n// not sure whether this is necessary but it appears that it might be\nasync function unregisterOldServiceWorker() {\n const registrations = await navigator.serviceWorker.getRegistrations();\n registrations.forEach((reg) => {\n if (reg.active && reg.active.scriptURL.endsWith(\"sw.js\")) {\n console.debug(\"SW_CLIENT: unregistering old service worker\");\n return reg.unregister();\n }\n });\n}\nasync function trySubscribe(client) {\n console.debug(\"PUSH: checking user's subscription status\");\n const registration = await getRegistration();\n if (registration === undefined) {\n console.debug(\"PUSH: couldn't find push notifications service worker\");\n return false;\n }\n // Check if the user has subscribed already\n let pushSubscription = await registration.pushManager.getSubscription();\n if (pushSubscription) {\n console.debug(\"PUSH: found existing push subscription\");\n // Check if the subscription has already been pushed to the notifications canister\n if (await client.subscriptionExists(extract_p256dh_key(pushSubscription))) {\n console.debug(\"PUSH: subscription exists in the backend\");\n return true;\n }\n }\n else {\n // Subscribe the user to webpush notifications\n console.debug(\"PUSH: creating a new subscription\");\n pushSubscription = await subscribeUserToPush(registration);\n if (pushSubscription == null) {\n return false;\n }\n }\n // Add the subscription to the user record on the notifications canister\n try {\n console.debug(\"PUSH: saving new subscription\", pushSubscription, pushSubscription.toJSON());\n await client.pushSubscription(pushSubscription.toJSON());\n return true;\n }\n catch (e) {\n console.log(\"PUSH: Push subscription failed: \", e);\n return false;\n }\n}\nasync function subscribeUserToPush(registration) {\n const subscribeOptions = {\n userVisibleOnly: true,\n applicationServerKey: toUint8Array(PUBLIC_VAPID_KEY),\n };\n try {\n const pushSubscription = await registration.pushManager.subscribe(subscribeOptions);\n return pushSubscription;\n }\n catch (e) {\n console.log(e);\n return null;\n }\n}\nfunction extract_p256dh_key(subscription) {\n const json = subscription.toJSON();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const key = json.keys[\"p256dh\"];\n return key;\n}\nexport async function unsubscribeNotifications(client) {\n console.debug(\"PUSH: unsubscribing from notifications\");\n const registration = await getRegistration();\n if (registration !== undefined) {\n const pushSubscription = await registration.pushManager.getSubscription();\n if (pushSubscription) {\n if (await client.subscriptionExists(extract_p256dh_key(pushSubscription))) {\n console.debug(\"PUSH: removing push subscription\");\n await client.removeSubscription(pushSubscription.toJSON());\n }\n }\n }\n}\nasync function getRegistration() {\n if (!notificationsSupported)\n return undefined;\n return await navigator.serviceWorker.getRegistration(import.meta.env.OC_SERVICE_WORKER_PATH);\n}\n","import { writable, readable } from \"svelte/store\";\nexport var ToastType;\n(function (ToastType) {\n ToastType[ToastType[\"Success\"] = 0] = \"Success\";\n ToastType[ToastType[\"Failure\"] = 1] = \"Failure\";\n})(ToastType || (ToastType = {}));\nconst { subscribe, update } = writable(undefined);\nexport const toastStore = {\n subscribe,\n showFailureToast: (resourceKey, err) => {\n return update(() => ({\n resourceKey: \"subscribe\" in resourceKey ? resourceKey : readable(resourceKey),\n type: ToastType.Failure,\n err,\n }));\n },\n showSuccessToast: (resourceKey) => {\n window.setTimeout(() => update(() => undefined), 2500);\n return update(() => ({\n resourceKey: readable(resourceKey),\n type: ToastType.Success,\n }));\n },\n hideToast: () => update(() => undefined),\n};\n","const subscriptions = {};\nexport function subscribe(name, value) {\n if (subscriptions[name] === undefined) {\n subscriptions[name] = [];\n }\n subscriptions[name].push(value);\n return () => {\n if (subscriptions[name]) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n subscriptions[name] = subscriptions[name].filter((s) => s !== value);\n if (subscriptions[name].length === 0) {\n delete subscriptions[name];\n }\n }\n };\n}\nexport function publish(name, payload) {\n subscriptions[name]?.forEach((sub) => sub(payload));\n}\n","\n\n\n \n \n \n \n \n \n \n \n \n
\n
\n \n \n
\n
\n {#if canInvite}\n \n \n
\n \n
\n
\n {/if}\n {#if canEdit}\n \n \n
\n \n
\n
\n {/if}\n {#if canCreateChannel}\n \n \n \n \n {/if}\n {#if canCreateChannel}\n \n \n \n \n {/if}\n \n \n \n \n {#if notificationsSupported && !isCommunityMuted}\n \n \n \n \n {/if}\n {#if member}\n \n {#if canDelete}\n \n \n
\n \n
\n
\n {/if}\n {#if canLeave}\n \n \n
\n \n
\n
\n {/if}\n {/if}\n {#if $platformModerator}\n {#if client.isCommunityFrozen(community.id)}\n \n \n
\n \n
\n
\n {:else}\n \n \n
\n \n
\n
\n {/if}\n {/if}\n
\n
\n
\n","\n\n
\n
\n
\n \n
\n
\n\n\n","\n\n
\n {@render children()}\n \n
\n\n\n","\n\n
\n \n {#if searchTerm !== \"\"}\n \n \n \n {:else}\n \n {#if !searching}\n \n {/if}\n \n {/if}\n\n\n\n","import { get } from \"svelte/store\";\nimport { _ } from \"svelte-i18n\";\nexport function buildDisplayName(users, userId, me, bold = true) {\n const summary = users.get(userId);\n const name = me\n ? get(_)(\"you\")\n : summary?.displayName ?? summary?.username ?? get(_)(\"unknownUser\");\n return bold ? `**${name}**` : name;\n}\nexport function trimLeadingAtSymbol(term) {\n return term.length > 0 && term[0] === \"@\" ? term.substring(1) : term;\n}\n","\n\n\n","\n\n\n \n\n","\n\n\n \n\n","export function clamp(min, max, val) {\n return Math.min(max, Math.max(min, val));\n}\nexport const swipe = (node, param = { threshold: 20 }) => {\n let start = 0;\n let end = 0;\n let swiping = false;\n function handleGesture() {\n if (end < start && start - end > param.threshold) {\n node.dispatchEvent(new CustomEvent(\"leftswipe\"));\n }\n if (end > start && end - start > param.threshold) {\n node.dispatchEvent(new CustomEvent(\"rightswipe\"));\n }\n }\n function touchMove(e) {\n if (!swiping)\n return;\n const diffx = start - e.changedTouches[0].screenX;\n node.dispatchEvent(new CustomEvent(\"swiping\", {\n bubbles: true,\n cancelable: true,\n detail: { diffx },\n }));\n }\n function touchStart(e) {\n start = e.changedTouches[0].screenX;\n swiping = true;\n }\n function touchEnd(e) {\n end = e.changedTouches[0].screenX;\n swiping = false;\n handleGesture();\n }\n const options = {\n capture: true,\n passive: true,\n };\n node.addEventListener(\"touchstart\", touchStart, options);\n node.addEventListener(\"touchend\", touchEnd, options);\n node.addEventListener(\"touchmove\", touchMove, options);\n return {\n destroy() {\n node.removeEventListener(\"touchstart\", touchStart, true);\n node.removeEventListener(\"touchend\", touchEnd, true);\n node.removeEventListener(\"touchmove\", touchMove, true);\n },\n };\n};\n","import DOMPurify from \"dompurify\";\nexport const DOMPurifyDefault = createDefault();\nexport const DOMPurifyOneLine = createOneLine();\nfunction createDefault() {\n const domPurify = DOMPurify();\n domPurify.setConfig({\n ALLOWED_ATTR: [\"target\", \"href\", \"class\", \"user-id\", \"suppress-links\"],\n CUSTOM_ELEMENT_HANDLING: {\n tagNameCheck: (tag) => tag === \"profile-link\",\n attributeNameCheck: (attr) => [\"text\", \"userId\"].includes(attr),\n allowCustomizedBuiltInElements: true,\n },\n });\n return domPurify;\n}\nfunction createOneLine() {\n const domPurify = DOMPurify();\n domPurify.setConfig({\n ALLOWED_ATTR: [\"target\", \"href\", \"class\", \"user-id\", \"suppress-links\"],\n FORBID_TAGS: [\"br\"],\n CUSTOM_ELEMENT_HANDLING: {\n tagNameCheck: (tag) => tag === \"profile-link\",\n attributeNameCheck: (attr) => [\"text\", \"userId\"].includes(attr),\n allowCustomizedBuiltInElements: true,\n },\n });\n domPurify.addHook(\"uponSanitizeElement\", (node) => {\n const element = node;\n if (element.tagName === \"BR\") {\n element.outerHTML = \" \";\n }\n });\n return domPurify;\n}\n","import { Database } from \"emoji-picker-element\";\nconst emojiSet = new Set();\nlet initializing = false;\nexport const emojiDatabase = new Database();\nexport function isSingleEmoji(text) {\n initEmojiSet();\n return emojiSet.has(text);\n}\nfunction initEmojiSet() {\n if (emojiSet.size > 0 || initializing)\n return;\n initializing = true;\n emojiDatabase\n .getAllNativeEmojis()\n .then((emojis) => emojis.forEach((e) => {\n emojiSet.add(e.unicode);\n e.skins?.forEach((s) => emojiSet.add(s.unicode));\n }))\n .finally(() => initializing = false);\n}\ninitEmojiSet();\n","\n\n\n {@html sanitized}\n

\n\n\n","import { elasticOut } from \"svelte/easing\";\nexport function pop(_node, { duration, transform }) {\n return {\n duration,\n css: (t) => `transform: ${transform || \"\"} scale(${elasticOut(t)});`,\n };\n}\n","\n\n\n\n
\n {@render menuIcon()}\n
\n\n
\n \n \n \n {@render menuItems()}\n \n
\n\n\n","\n\n{#if disabled}\n
\n \n {@render icon?.()}\n \n {@render text?.()}\n
\n{:else if separator}\n
\n{:else}\n \n \n {@render icon?.()}\n \n {@render text?.()}\n \n{/if}\n\n\n","\n\n{#if count > 0}\n
\n{/if}\n\n\n","\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","export const blueDiamondHue = 210;\nexport const goldDiamondHue = 42;\nexport function deriveColours(hue) {\n return {\n dark: `hsl(${hue}, 100%, 35%)`,\n medium: `hsl(${hue}, 100%, 65%)`,\n light: `hsl(${hue}, 100%, 80%)`,\n };\n}\n","\n\n{#if status !== \"inactive\" || show}\n \n \n
\n {#if statusName !== undefined}\n \n \n \n {/if}\n
\n
\n{/if}\n\n\n","\n\n{#if show}\n {#if showTooltip}\n \n
\n {num}\n
\n
\n \n {`${streak.toUpperCase()} day streak!`}\n \n
\n
\n {:else}\n
\n
\n {`${streak.toUpperCase()} day streak!`}\n
\n
\n {num}\n
\n
\n {/if}\n{/if}\n\n\n","import { isTouchDevice, mobileOperatingSystem } from \"../utils/devices\";\nimport { configKeys } from \"../utils/config\";\nimport { createLsBoolStore } from \"openchat-client\";\nexport const showHomeScreenPrompt = createLsBoolStore(configKeys.showHomeScreenPrompt, mobileOperatingSystem === \"iOS\");\nexport const chitPopup = createLsBoolStore(configKeys.chitPopup, true);\nexport const hideChitIcon = createLsBoolStore(configKeys.hideChitIcon, false);\nexport const disableChit = createLsBoolStore(configKeys.disableChit, false);\nexport const enterSend = createLsBoolStore(configKeys.enterSend, !isTouchDevice);\nexport const lowBandwidth = createLsBoolStore(configKeys.lowBandwidth, false);\nexport const renderPreviews = createLsBoolStore(configKeys.renderPreviews, true);\nexport const utcMode = createLsBoolStore(configKeys.utcMode, false);\nexport const videoCameraOn = createLsBoolStore(configKeys.videoCameraOn, true);\nexport const videoMicOn = createLsBoolStore(configKeys.videoMicOn, true);\nexport const videoSpeakerView = createLsBoolStore(configKeys.videoSpeakerView, false);\nexport const dclickReply = createLsBoolStore(configKeys.dclickReply, true);\nexport const userInfoOpen = createLsBoolStore(configKeys.userInfoSection, true);\nexport const appearanceSectionOpen = createLsBoolStore(configKeys.appearanceSection, false);\nexport const chatsSectionOpen = createLsBoolStore(configKeys.chatsSection, false);\nexport const restrictedSectionOpen = createLsBoolStore(configKeys.restrictedSection, false);\nexport const videoSectionOpen = createLsBoolStore(configKeys.videoSection, false);\nexport const referralOpen = createLsBoolStore(configKeys.referralSection, false);\nexport const storageSectionOpen = createLsBoolStore(configKeys.storageSection, false);\nexport const verificationSectionOpen = createLsBoolStore(configKeys.verificationSectionOpen, false);\nexport const accountsSectionOpen = createLsBoolStore(configKeys.verificationSectionOpen, false);\nexport const statsSectionOpen = createLsBoolStore(configKeys.userStatsSection, false);\nexport const advancedSectionOpen = createLsBoolStore(configKeys.userAdvancedSection, false);\nexport const deleteAccountSectionOpen = createLsBoolStore(configKeys.userDeleteAccountSection, false);\nexport const groupInfoOpen = createLsBoolStore(configKeys.groupInfoSection, true);\nexport const groupVisibilityOpen = createLsBoolStore(configKeys.groupVisibilitySection, true);\nexport const groupRulesOpen = createLsBoolStore(configKeys.groupRulesSection, true);\nexport const groupPermissionsOpen = createLsBoolStore(configKeys.groupPermissionSection, false);\nexport const groupStatsOpen = createLsBoolStore(configKeys.groupStatsSection, false);\nexport const groupInviteUsersOpen = createLsBoolStore(configKeys.groupInviteUsersSections, false);\nexport const groupAdvancedOpen = createLsBoolStore(configKeys.groupAdvancedSection, false);\nexport const exploreGroupsDismissed = createLsBoolStore(configKeys.exploreGroupsDismissed, false);\nexport const browseChannels = createLsBoolStore(configKeys.browseChannels, true);\nexport const useBlockLevelMarkdown = createLsBoolStore(configKeys.useBlockLevelMarkdown, false);\nexport const hideTokenBalances = createLsBoolStore(configKeys.hideChitIcon, false);\nexport const communityVisibilityOpen = createLsBoolStore(configKeys.communityVisibilitySection, true);\nexport const communityRulesOpen = createLsBoolStore(configKeys.communityRulesSection, true);\nexport const communityPermissionsOpen = createLsBoolStore(configKeys.communityPermissionSection, false);\nexport const communityStatsOpen = createLsBoolStore(configKeys.communityStatsSection, false);\nexport const communityAdvancedOpen = createLsBoolStore(configKeys.communityAdvancedSection, false);\nexport const communityInviteUsersOpen = createLsBoolStore(configKeys.communityInviteUsersSections, false);\nexport const referredUsersOpen = createLsBoolStore(configKeys.referredUsersOpen, false);\n","\n\n\n\n{#if !$disableChit}\n \n{/if}\n","\n\n{#if visible}\n \n (hovering = true)}\n onmouseleave={() => (hovering = false)}\n onclick={selectChat}>\n
\n \n {#if chat.eventsTTL}\n
\n \n
\n {/if}\n \n
\n
\n
\n
\n {#if chat.private}\n
\n {/if}\n \n

\n {#if community !== undefined && $chatListScope.kind === \"favourite\"}\n {community.name}\n {\">\"}\n {/if}\n {chat.name}\n

\n \n
\n
\n
\n
\n {#if chat.typing !== undefined}\n {chat.typing} \n {:else}\n \n {/if}\n
\n
\n {#if !externalContent}\n \n
\n {#if muted && notificationsSupported}\n
\n \n
\n {/if}\n {#if pinned}\n
\n \n
\n {/if}\n {#if chat.fav}\n
\n \n
\n {/if}\n {client.formatMessageDate(displayDate, $_(\"today\"), $_(\"yesterday\"), true, true)}\n
\n {#if !readonly}\n {#if unreadMentions > 0}\n \n @\n \n {/if}\n {#if unreadMessages > 0}\n \n {unreadMessages > 999 ? \"999+\" : unreadMessages}\n \n {/if}\n {#if !$suspendedUser}\n
\n \n {#snippet menuIcon()}\n
\n \n
\n {/snippet}\n {#snippet menuItems()}\n \n {#if !$favouritesStore.has(chatSummary.id)}\n \n {#snippet icon()}\n \n {/snippet}\n {#snippet text()}\n \n {/snippet}\n \n {:else}\n \n {#snippet icon()}\n \n {/snippet}\n {#snippet text()}\n \n {/snippet}\n \n {/if}\n {#if !pinned}\n \n {#snippet icon()}\n \n {/snippet}\n {#snippet text()}\n \n {/snippet}\n \n {:else}\n \n {#snippet icon()}\n \n {/snippet}\n {#snippet text()}\n \n {/snippet}\n \n {/if}\n {#if notificationsSupported && !externalContent}\n {#if muted}\n toggleMuteNotifications(false)}>\n {#snippet icon()}\n \n {/snippet}\n {#snippet text()}\n \n {/snippet}\n \n {:else}\n toggleMuteNotifications(true)}>\n {#snippet icon()}\n \n {/snippet}\n {#snippet text()}\n \n {/snippet}\n \n {/if}\n {/if}\n {#if !externalContent}\n client.markAllRead(chatSummary)}>\n {#snippet icon()}\n \n {/snippet}\n {#snippet text()}\n \n {/snippet}\n \n {/if}\n {#if !chat.bot}\n {#if chatSummary.membership.archived}\n \n {#snippet icon()}\n \n {/snippet}\n {#snippet text()}\n \n {/snippet}\n \n {:else}\n \n {#snippet icon()}\n \n {/snippet}\n {#snippet text()}\n \n {/snippet}\n \n {/if}\n {/if}\n {#if chatSummary.kind !== \"direct_chat\" && client.canLeaveGroup(chatSummary.id)}\n \n {#snippet icon()}\n \n {/snippet}\n {#snippet text()}\n {interpolate(\n $_,\n i18nKey(\n \"leaveGroup\",\n undefined,\n chatSummary.level,\n true,\n ),\n )}\n {/snippet}\n \n {/if}\n \n {/snippet}\n
\n
\n {/if}\n {/if}\n {/if}\n {#if canDelete}\n \n \n \n \n {/if}\n \n{/if}\n\n\n","\n\n\n \n\n","\n\n\n\n
\n \n \n \n
\n {@render children?.()}\n
\n\n {#if showSpinner}\n
\n {/if}\n
\n\n\n","\n\n\n\n\n
\n
\n {#if !loading}\n \n {:else}\n {\"Working ...\"}\n {/if}\n
\n
\n\n\n\n","\n\n\n {#if !loading}\n \n {/if}\n\n\n\n","\n\n\n\n{#if $currentTheme.name === \"signals\"}\n \n {@render children?.()}\n \n{:else}\n \n {@render children?.()}\n \n{/if}\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport { menuStore } from \"../stores/menu\";\nfunction hideMenu() {\n menuStore.hideMenu();\n}\nexport function menuCloser(node) {\n const unsub = menuStore.subscribe((menu) => {\n if (menu !== undefined) {\n node.addEventListener(\"scroll\", hideMenu);\n }\n else {\n node.removeEventListener(\"scroll\", hideMenu);\n }\n });\n return {\n destroy() {\n node.removeEventListener(\"scroll\", hideMenu);\n unsub();\n },\n };\n}\n","\n\n
\n\n\n","\n\n\n \n\n\n\n","\n\n\n\n\n","\n\n
\n \n {#if rules}\n ()\n {/if}\n {#if required}\n *\n {/if}\n
\n\n\n","\n\n
\n
\n \n
\n {#if !disabled && maxlength < Number.MAX_VALUE}\n
{value.length}/{maxlength}
\n {/if}\n {@render children?.()}\n
\n\n\n","\n\n{#if caption !== undefined && caption !== \"\"}\n \n {#if edited}\n ()\n {/if}\n{/if}\n\n\n","let current;\nexport function setPlayingMedia(element) {\n if (current !== undefined &&\n current !== element &&\n current.duration > 0 &&\n !current.paused) {\n current.pause();\n }\n current = element;\n}\n","\n\n\n\n
\n \n \n {#if content.videoData.blobUrl}\n \n {/if}\n \n
\n\n\n\n\n","/**\n * We need to make sure that we have one and only one video call in progress at any one time. For this reason we will keep the\n * DailyCall object in a store\n */\nimport {} from \"@daily-co/daily-js\";\nimport {} from \"openchat-client\";\nimport { get, writable } from \"svelte/store\";\nimport { createLocalStorageStore } from \"../utils/store\";\nconst previousCalls = new Set();\nconst activeStore = writable(undefined);\nconst incomingStore = writable(undefined);\nexport const microphone = writable(false);\nexport const hasPresence = writable(false);\nexport const camera = writable(false);\nexport const sharing = writable(false);\nexport const selectedRingtone = createLocalStorageStore(\"openchat_ringtone\", \"boring\");\nexport const incomingVideoCall = {\n subscribe: incomingStore.subscribe,\n set: (call) => {\n if (call === undefined) {\n incomingStore.set(undefined);\n }\n else {\n // only register an incoming call if we have not already done so. This prevents us ringing twice via a different mechanism for the same call.\n if (!previousCalls.has(call.messageId)) {\n incomingStore.set(call);\n previousCalls.add(call.messageId);\n }\n }\n },\n};\nfunction updateCall(fn) {\n activeStore.update((current) => {\n return current === undefined ? undefined : fn(current);\n });\n}\nfunction findParticipantId(call, userId) {\n const participants = call.participants();\n const p = Object.values(participants).find((v) => v.user_id === userId);\n if (p !== undefined) {\n return p.session_id;\n }\n}\nfunction updateParticipant(call, participantId, options) {\n return new Promise((resolve) => {\n call.updateParticipant(participantId, options);\n window.setTimeout(() => resolve(call), 500);\n });\n}\nexport const activeVideoCall = {\n subscribe: activeStore.subscribe,\n setCall: (chatId, messageId, call) => {\n return updateCall((current) => ({\n ...current,\n chatId,\n call,\n messageId,\n status: \"joined\",\n }));\n },\n setView: (view) => {\n return updateCall((current) => ({ ...current, view }));\n },\n askToSpeak: (userId) => {\n const current = get(activeStore);\n if (current?.call) {\n const participants = current.call.participants();\n const me = participants.local;\n Object.entries(participants).map(([key, val]) => {\n if (key !== \"local\") {\n if (val.permissions.hasPresence && val.permissions.canAdmin) {\n current.call?.sendAppMessage({\n kind: \"ask_to_speak\",\n participantId: me.session_id,\n userId,\n }, val.session_id);\n }\n }\n });\n }\n },\n demote: (userId) => {\n const current = get(activeStore);\n if (current?.call) {\n const participantId = findParticipantId(current.call, userId);\n if (participantId) {\n updateParticipant(current.call, participantId, {\n updatePermissions: {\n hasPresence: false,\n canSend: [],\n },\n }).then((call) => {\n call.sendAppMessage({\n kind: \"demote_participant\",\n participantId: participantId,\n userId: userId,\n }, participantId);\n });\n }\n }\n },\n rejectAccessRequest: (req) => {\n return updateCall((current) => {\n if (current.call) {\n current.call.sendAppMessage({\n kind: \"ask_to_speak_response\",\n participantId: req.participantId,\n userId: req.userId,\n approved: false,\n }, req.participantId);\n }\n return {\n ...current,\n accessRequests: current.accessRequests.filter((r) => r.participantId !== req.participantId),\n };\n });\n },\n approveAccessRequest: (req) => {\n return updateCall((current) => {\n if (current.call) {\n updateParticipant(current.call, req.participantId, {\n updatePermissions: {\n hasPresence: true,\n canSend: new Set([\"audio\", \"video\"]),\n },\n }).then((call) => {\n call.sendAppMessage({\n kind: \"ask_to_speak_response\",\n participantId: req.participantId,\n userId: req.userId,\n approved: true,\n }, req.participantId);\n });\n }\n return {\n ...current,\n accessRequests: current.accessRequests.filter((r) => r.participantId !== req.participantId),\n };\n });\n },\n captureAccessRequest: (req) => {\n return updateCall((current) => ({\n ...current,\n accessRequests: [...current.accessRequests, req],\n }));\n },\n threadOpen: (threadOpen) => {\n return updateCall((current) => ({\n ...current,\n threadOpen,\n participantsOpen: false,\n }));\n },\n isOwner: (isOwner) => {\n return updateCall((current) => ({\n ...current,\n isOwner,\n }));\n },\n participantsOpen: (participantsOpen) => {\n return updateCall((current) => ({\n ...current,\n participantsOpen,\n threadOpen: false,\n }));\n },\n endCall: () => {\n return activeStore.update((current) => {\n current?.call?.destroy();\n microphone.set(false);\n camera.set(false);\n sharing.set(false);\n hasPresence.set(false);\n return undefined;\n });\n },\n changeTheme: (theme) => {\n return activeStore.update((current) => {\n current?.call?.setTheme(theme);\n return current;\n });\n },\n joining: (chatId, callType) => {\n return activeStore.set({\n status: \"joining\",\n chatId,\n view: \"default\",\n threadOpen: false,\n participantsOpen: false,\n accessRequests: [],\n isOwner: false,\n callType,\n });\n },\n};\nexport const ringtoneUrls = {\n boring: \"/assets/ringtones/ringring_boring.mp3\",\n pleasant: \"/assets/ringtones/tinkle.mp3\",\n boomboom: \"/assets/ringtones/ringring.mp3\",\n garage: \"/assets/ringtones/garage.mp3\",\n siren: \"/assets/ringtones/sirens.mp3\",\n};\nexport class Ringtone {\n constructor(key, name) {\n this.key = key;\n this.name = name;\n this.url = ringtoneUrls[key];\n this.audio = new Audio(ringtoneUrls[key]);\n this.audio.loop = true;\n this.playing = false;\n }\n toggle() {\n this.playing = !this.playing;\n if (this.playing) {\n this.audio.play();\n }\n else {\n this.audio.pause();\n }\n }\n stop() {\n this.playing = false;\n this.audio.pause();\n }\n}\n","\n\n
\n

\n {#if content.callType === \"broadcast\"}\n \n {:else if missed}\n \n {:else}\n \n {/if}\n

\n
\n {#each [...content.participants].slice(0, 5) as participantId}\n \n {/each}\n {#if content.participants.length > 5}\n
\n {`+${content.participants.length - 5}`}\n
\n {/if}\n
\n
\n {#if incall}\n \n {:else}\n \n {/if}\n
\n
\n\n\n","\n\n\n\n
\n \n \n {@render children?.()}\n
\n\n\n\n","\n\n\n\n {#if !hideHeader}\n
\n

\n {@render header?.(onClose)}\n

\n {#if closeIcon}\n \n \n \n \n \n \n {/if}\n
\n {/if}\n {#if !hideBody}\n
\n {@render body?.(onClose)}\n
\n {/if}\n {#if !hideFooter}\n
\n {#if footer}{@render footer(onClose)}{:else}\n \n {/if}\n
\n {/if}\n\n\n\n","\n\n\n\n{#if normalised.url !== undefined}\n
\n {#if hidden}\n
\n {#if !reply && !draft}\n
\n \n
\n {/if}\n
\n {/if}\n {\n if (imgElement) {\n imgElement.src = normalised.fallback;\n }\n }}\n class=\"unzoomed\"\n class:landscape\n class:fill\n class:withCaption\n class:draft\n class:reply\n class:zoomable={zoomable && !hidden}\n class:rtl={$rtlStore}\n style={height === undefined ? undefined : `height: ${height}px`}\n src={intersecting && !hidden ? normalised.url : normalised.fallback}\n alt={normalised.caption} />\n\n {#if zoomable && !hidden}\n
\n \n
\n {/if}\n
\n{/if}\n\n\n\n{#if zoomable && zoom}\n (zoom = false)} dismissible alignBottomOnMobile={false}>\n \n {#snippet body()}\n \n (imgElement.src = normalised.fallback)}\n src={normalised.url}\n alt={normalised.caption} />\n \n \n \n \n {/snippet}\n \n \n{/if}\n\n\n","\n\n\n\n (playing = false)}\n on:play={onPlay}\n on:pause={() => (playing = false)}\n bind:this={audioPlayer}>\n \n {#if content.blobUrl}\n \n {/if}\n\n\n
\n
\n
\n {#if playing}\n \n {:else}\n \n {/if}\n
\n \n \n \n \n\n \n\n {#if percPlayed > 0}\n \n {/if}\n \n
\n
\n\n\n\n\n","\n\n
\n \n
\n \n
\n
\n\n\n","\n\n\n\n\n
\n \n
\n {answer}\n {#if voted}\n \n {/if}\n
\n
\n
\n
\n \n {buildTooltipText()}\n \n
\n
\n\n\n","\n\n\n
\n {#if content.config.text !== undefined}\n
\n
\n \n
\n

{content.config.text}

\n
\n {/if}\n
\n {#each [...content.config.options] as answer, i (answer)}\n vote(i)}\n finished={content.ended}\n {readonly}\n percent={percentageOfVote(i)}\n {answer}\n voted={votedFor(i)}\n {txtColor}\n {myUserId}\n {me}\n voters={voters(i)}\n numVotes={voteCount(i)}\n {showVotes} />\n {/each}\n
\n

\n \n

\n

\n {#if content.config.anonymous}\n \n {:else}\n \n {/if}\n

\n {#if date !== undefined}\n

\n {#if content.ended}\n \n {:else}\n \n {/if}\n

\n {/if}\n
\n\n\n","\n\n\n\n{#if content.blobUrl}\n \n \n \n\n
\n {`${content.mimeType}-${client.formatFileSize(content.fileSize)}`}\n
\n{/if}\n\n\n\n\n","\n\n
\n \n
\n","import { writable } from \"svelte/store\";\nexport const eventListScrollTop = writable(undefined);\nexport const eventListLastScrolled = writable(0);\nexport const eventListScrolling = writable(false);\nexport const communityListScrollTop = writable(undefined);\n","\n\n{#if rendered}\n {#await previewPromise then preview}\n {#if preview}\n
\n {#if preview.title}\n {preview.title}\n {/if}\n {#if preview.description}\n

{preview.description}

\n {/if}\n {#if preview.image}\n \n \n \n {/if}\n
\n {/if}\n {/await}\n{/if}\n\n\n","\n\n{#each previews as preview (preview.url)}\n \n {#if me}\n
\n
removePreview(preview)}>\n \n
\n
\n {/if}\n
\n {#if preview.kind === \"twitter\"}\n adjustScroll(ev.detail)} />\n {:else if preview.kind === \"youtube\"}\n \n {:else if preview.kind === \"spotify\"}\n \n {:else}\n adjustScroll(ev.detail)}\n on:rendered={(ev) => renderPreview(ev.detail)} />\n {/if}\n
\n \n{/each}\n\n\n","\n\n\n\n
\n","\n\n
\n \n
\n\n\n","\n\n
\n \n
\n\n\n","\n\n\n\n\n{#if edited}\n ({$_(\"edited\")})\n{/if}\n\n{#if previewUrls.length > 0}\n {#if !expanded}\n \n \n \n {:else}\n \n \n \n {/if}\n{/if}\n\n\n","\n\n
\n \n
\n\n\n","\n\n
\n
\n
\n
\n
\n {#if spin}\n {#each middle as _}\n
\n {/each}\n
\n
\n
\n {/if}\n
\n
\n\n\n","import { createSetStore } from \"openchat-client\";\nimport { writable } from \"svelte/store\";\nexport const claimsStore = createSetStore(writable(new Set()));\n","import { load as botCheck } from \"@fingerprintjs/botd\";\nimport { writable } from \"svelte/store\";\nexport const suspectedAutomationBot = writable(false);\nbotCheck()\n .then((botd) => botd.detect())\n .then((result) => {\n console.log(\"Bot detection result: \", result.bot);\n suspectedAutomationBot.set(result.bot);\n})\n .catch((err) => console.error(`Error during bot detection: `, err));\n","import { load as botCheck } from \"@fingerprintjs/botd\";\nconst suspiciousUserIds = import.meta.env.OC_SUSPICIOUS_USERIDS ?? [];\nexport async function trace(ev, userId, username, json) {\n if (!suspiciousUserIds.includes(userId))\n return;\n const botd = await botCheck();\n const err = new Error();\n const headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n const payload = {\n ...json,\n username,\n bot: botd.detect(),\n stack: err.stack,\n // mouseBuffer: analyzer.getBuffer(),\n analysis: analyzer.analyseClick(ev),\n };\n fetch(\"https://webhook.site/6ed2ff5d-54a1-4ec1-918b-ea66ebfb5403\", {\n method: \"POST\",\n mode: \"no-cors\",\n headers,\n body: JSON.stringify(payload),\n }).catch((err) => console.warn(\"Trace logging failed\", err));\n}\nexport async function mouseMove(ev) {\n analyzer.add(ev);\n}\nclass MouseMovementBuffer {\n #buffer;\n #size;\n #index;\n #full;\n constructor(size = 100) {\n this.#buffer = new Array(size);\n this.#size = size;\n this.#index = 0;\n this.#full = false;\n }\n add(event) {\n const now = performance.now();\n const currentData = {\n x: event.clientX,\n y: event.clientY,\n timestamp: now,\n velocity: 0,\n acceleration: 0,\n distance: 0,\n };\n const prevIndex = this.#index === 0 ? this.#size - 1 : this.#index - 1;\n const prevData = this.#buffer[prevIndex];\n if (prevData) {\n const dx = currentData.x - prevData.x;\n const dy = currentData.y - prevData.y;\n currentData.distance = Math.sqrt(dx * dx + dy * dy);\n // Calculate velocity (distance / time)\n const dt = (currentData.timestamp - prevData.timestamp) / 1000; // seconds\n if (dt > 0) {\n currentData.velocity = currentData.distance / dt;\n }\n const dv = currentData.velocity - prevData.velocity;\n if (dt > 0) {\n currentData.acceleration = dv / dt;\n }\n }\n this.#buffer[this.#index] = currentData;\n this.#index = (this.#index + 1) % this.#size;\n if (this.#index === 0) {\n this.#full = true;\n }\n }\n getBuffer() {\n if (!this.#full) {\n return this.#buffer.slice(0, this.#index);\n }\n return this.#buffer.slice(this.#index).concat(this.#buffer.slice(0, this.#index));\n }\n}\nclass MouseMovementAnalyser {\n #buffer;\n constructor(bufferSize = 100) {\n this.#buffer = new MouseMovementBuffer(bufferSize);\n }\n add(event) {\n this.#buffer.add(event);\n }\n getBuffer() {\n return this.#buffer.getBuffer();\n }\n analyseClick(event) {\n const buffer = this.#buffer.getBuffer();\n if (buffer.length < 5) {\n return { human: false, reason: \"Insufficient data\" };\n }\n const clickX = event.clientX;\n const clickY = event.clientY;\n const velocities = buffer.map((e) => e.velocity);\n const distances = buffer.map((e) => e.distance);\n const totalDistance = distances.reduce((d, e) => d + e, 0);\n const penultimateEvent = buffer[buffer.length - 2];\n const dx = clickX - penultimateEvent.x;\n const dy = clickY - penultimateEvent.y;\n const distanceToClick = Math.sqrt(dx * dx + dy * dy);\n const closeToClick = distanceToClick < 50;\n const meanVelocity = velocities.reduce((sum, v) => sum + v, 0) / velocities.length;\n const meanDistance = totalDistance / distances.length;\n const velocityVariance = velocities.reduce((sum, v) => sum + Math.pow(v - meanVelocity, 2), 0) /\n velocities.length;\n const isHuman = totalDistance > 50 && // meaningful movement\n meanVelocity < 2000 && // not weirdly high velocity\n velocityVariance > 100 && // natural variation of velocity\n closeToClick; // proximity to the button being clicked\n return {\n human: isHuman,\n details: {\n totalDistance,\n meanDistance,\n meanVelocity,\n velocityVariance,\n closeToClick,\n distanceToClick,\n },\n };\n }\n}\nconst analyzer = new MouseMovementAnalyser(50);\nexport function trackMouseMovement(userId) {\n if (suspiciousUserIds.includes(userId)) {\n document.addEventListener(\"mousemove\", mouseMove);\n }\n}\n","\n\n\n","\n\n\n \n {#snippet header()}\n
\n \n
\n {/snippet}\n {#snippet body()}\n
\n
\n \n e.preventDefault()}\n alt=\"Left\" />\n
\n
\n \n
\n
\n
\n \n
\n {/snippet}\n {#snippet footer()}\n \n \n \n {/snippet}\n
\n
\n\n\n","\n\n{#if showChallenge}\n (showChallenge = false)} onResult={onChallengeResult} />\n{/if}\n\n
\n
\n
\n \n \n {#if allClaimed && !finished}\n \n {:else}\n {timeRemaining}\n {/if}\n \n {#if restrictedPrize}\n \n {/if}\n
\n
\n \n
\n
\n
\n {#if content.caption !== undefined}\n
\n {content.caption}\n
\n {/if}\n {#if !me}\n {#if restrictedPrize}\n
\n \n {#if content.diamondOnly || content.lifetimeDiamondOnly}\n
\n
\n \n
\n \n
\n {/if}\n {#if content.uniquePersonOnly}\n
\n
\n \n
\n \n
\n {/if}\n {#if content.streakOnly > 0}\n
\n
\n \n
\n {/if}\n
\n {/if}\n {#if userEligible}\n
\n {/if}\n {:else if finished}\n
\n {:else}\n
\n {/if}\n
\n \n
\n
\n
\n {content.winners.length}/{total}\n
\n
\n {#if claimedByYou}\n
\n
\n \n
\n
\n {/if}\n\n {#if !me}\n \n claim(e, false)}\n {disabled}\n hollow\n >\n \n {/if}\n
\n
\n
\n\n\n","\n\n
\n
\n \n {#if logo !== undefined}\n \n {/if}\n
\n
\n\n\n\n","\n\n
\n
\n
\n {#if me}\n \n
\n \n
\n \n {:else}\n \n {/if}\n
\n
\n
\n \n
\n {#if transactionLinkText !== undefined}\n
\n \n
\n {/if}\n
\n
\n
\n\n\n","\n\n\n\n
\n {#if undeleting}\n \n {:else if content.deletedBy === OPENCHAT_BOT_USER_ID}\n \n {:else}\n \n {/if}\n
\n\n\n","\n\n{#if notes !== undefined && notes !== \"\"}\n
\n \n
\n{/if}\n\n\n","// prettier-ignore\nexport const NamedNeurons = {\n \"afdbb46396374af0baad270f06e738fbf60997359e3f1bbea2293312e3278aef\": \"OpenChat Dev Team\",\n \"2e6deec3460a3b74d4b9077462cacc36c9f3403577c8fbf4a9babe25799b7f8b\": \"OpenChat ProposalsBot\",\n \"54f9ba2b0e81a17f5261b277abd91816e041c5ca749ba88b3dbe05f66bb6124d\": \"HotOrNot Dev Team\",\n \"f513314523830ed270c65c4fa2bd6473b2bba3e4faf91b0e0782bf21c2e4ab25\": \"Dragginz Dev Team\",\n \"9641cdd7c4f487c1ed146b7abb3ee9d38a4e77cadc681bf1cc091439011e3f87\": \"Kinic Developer Organization\",\n \"2d92f39b8937c4cbb92796e04b62d3c0b235820f031856b8f250e37917e18730\": \"Kinic Developer Organization\",\n \"266e91dbb8d435de82a7d961f0ac0060015a597a4e542d9e7f30a488cab8a592\": \"Kinic Developer Organization\",\n \"eda6976220ea999ed4d5df28b217e4d452786b6c9dc8f3d892256eaca00017ce\": \"ICX Dev Team\",\n \"fd052a2a6648357c984cd8a04edcb9e34a48967a46f44db9264f5156d7e96c61\": \"Modclub Foundation\",\n \"90699f782a035b3e4510c1d27234cc05ef3cd96059972d60ffd506ffd8a63bfd\": \"Sonic Dev Team\",\n \"0de364d62cf2a717e5ae867f0d17e9a0d29701b44a2d7087328d42a9ccaa423f\": \"the CTS-TEAM\"\n};\n","import { createMapStore } from \"openchat-client\";\nimport { writable } from \"svelte/store\";\nexport const proposalVotes = createMapStore(writable(new Map()));\n","\n\n
\n
\n
\n {#if !voting}\n {#if mode === \"yes\"}\n \n {:else}\n \n {/if}\n {/if}\n
\n
{percentage}%
\n
\n\n\n","\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n\n
\n {#if !votingEnded}\n \n {client.formatTimeRemaining($now500, deadline)}\n {:else}\n \n {client.toDateString(deadlineDate)}\n {client.toShortTimeString(deadlineDate)}\n {/if}\n
\n
\n\n\n","\n\n
\n {#if $mobileWidth}\n
\n {@render adopt()}\n {@render reject()}\n
\n {@render progress()}\n {:else}\n {@render adopt()}\n {@render progress()}\n {@render reject()}\n {/if}\n
\n\n\n","export function round2(num) {\n return Math.round((num + Number.EPSILON) * 100) / 100;\n}\nexport function sum(numbers) {\n return numbers.reduce((a, b) => a + b, 0);\n}\n","\n\n{#if collapsed}\n
\n {proposal.title}\n \n
\n{:else}\n
\n
\n
\n
\n {#if proposal.url.length > 0}\n {proposal.title} \n {:else}\n {proposal.title}\n {/if}\n
\n
\n {ProposalDecisionStatus[proposal.status]}\n
\n
\n
\n\n {#if proposal.summary.length > 0}\n
\n \n
\n {/if}\n
\n {#if !showFullSummary}\n
\n
\n \n
\n
\n \n
\n
\n {/if}\n {#if !payloadEmpty}\n
(showPayload = true)} class=\"payload\">\n \n \n
\n {/if}\n
\n\n \n {#snippet adopt()}\n
\n onVote(true)}\n percentage={adoptPercent} />\n
\n {/snippet}\n\n {#snippet progress()}\n
\n \n
\n {/snippet}\n\n {#snippet reject()}\n
\n onVote(false)}\n percentage={rejectPercent} />\n
\n {/snippet}\n
\n
\n
\n {proposal.id}\n
\n {typeValue} |\n \n {renderNeuronId(proposal.proposer)}\n
\n
\n{/if}\n\n{#if showNeuronInfo}\n (showNeuronInfo = false)}>\n (showNeuronInfo = false)}>\n {#snippet header()}\n \n {/snippet}\n {#snippet body()}\n \n {/snippet}\n \n \n{/if}\n\n{#if showPayload && !payloadEmpty}\n (showPayload = false)}>\n (showPayload = false)}>\n {#snippet header()}\n
\n {/snippet}\n {#snippet body()}\n
\n \n
\n {/snippet}\n
\n
\n{/if}\n\n\n","\n\n\n\n\n","\n\n
\n {#if !failed}\n
\n \n
\n {/if}\n

\n
\n\n\n","\n\n\n\n
\n \n\n {#if !disabled && countdown && maxlength < Number.MAX_VALUE && type === \"text\" && typeof value === \"string\"}\n
{remaining}
\n {/if}\n\n {@render children?.()}\n
\n\n\n","\n\n\n \n {#snippet header()}\n {#if title !== undefined}\n \n {/if}\n {/snippet}\n {#snippet body()}\n {#if message !== undefined}\n \n\n {#if doubleCheck !== undefined}\n

\n \n

\n \n {/if}\n {/if}\n {/snippet}\n {#snippet footer()}\n \n \n onClick(true)}>\n {#if yesLabel !== undefined}\n \n {/if}\n \n \n {/snippet}\n
\n
\n\n\n","\n\n
\n \n
\n {collapseAccount(account)}\n
\n {#if !disableCopy}\n
\n \n
\n {/if}\n
\n\n\n","\n\n
\n \n

\n \n

\n \n
\n\n\n","\n\n
\n {#if label !== undefined}\n
\n {/if}\n
\n {formattedValue}\n
\n {#if showRefresh && !hideBalance}\n
\n \n
\n {/if}\n {#if showTopUp}\n
\n \n
\n {/if}\n
\n\n\n","\n\n\n \n {#snippet header()}\n \n
\n \n
\n \n
\n {/snippet}\n {#snippet body()}\n
\n
\n {#if insufficient}\n

\n \n

\n \n

\n {:else}\n \n {/if}\n
\n
\n {/snippet}\n {#snippet footer()}\n \n \n \n {#if insufficient}\n \n {:else}\n \n {/if}\n \n \n {/snippet}\n
\n
\n\n\n","export function calculateDollarAmount(e8s, exchangeRate, decimals) {\n if (exchangeRate === undefined)\n return \"???\";\n const tokens = Number(e8s) / Math.pow(10, decimals);\n const dollar = tokens * exchangeRate;\n return dollar.toFixed(2);\n}\n","\n\n
\n {#if status === \"doing\"}\n
\n \n
{step + 1}
\n
\n {:else if status === \"overall-done\"}\n
\n \n
\n {:else if status === \"overall-failed\"}\n
\n \n
\n {:else}\n
\n {step + 1}\n
\n {/if}\n
\n \n
\n
\n\n\n","\n\n\n \n \n\n\n\n","\n\n\n\n
\n {#each steps as step, i (\"step\" + i)}\n
\n \n
\n {/each}\n {#if result !== undefined}\n
\n \n
\n {/if}\n
\n\n{#if result === undefined && percent !== undefined}\n
\n \n
\n{/if}\n","import { derived } from \"svelte/store\";\nimport { now500 } from \"./time\";\nimport { formatTimeRemaining } from \"openchat-client/lib/utils/time\";\nimport { pinNumberFailureStore } from \"openchat-client\";\nexport function supportsForgot(operation) {\n return operation.kind === \"change\" || operation.kind === \"clear\" || operation.kind === \"enter\";\n}\nexport const pinNumberErrorMessageStore = derived([now500, pinNumberFailureStore], ([$nowStore, $pinNumberFailureStore]) => {\n return $pinNumberFailureStore\n ? pinNumberErrorMessage($pinNumberFailureStore, $nowStore)\n : undefined;\n});\nfunction pinNumberErrorMessage(resp, now = 0) {\n let error;\n let nextRetryAt;\n now = Math.max(now, Date.now());\n if (resp.kind === \"pin_incorrect\") {\n if (resp.nextRetryAt > now) {\n error = \"pinIncorrectTryLater\";\n nextRetryAt = resp.nextRetryAt;\n }\n else {\n error = \"pinIncorrect\";\n }\n }\n else if (resp.kind === \"pin_required\") {\n error = \"pinRequired\";\n }\n else if (resp.kind === \"too_main_failed_pin_attempts\") {\n error = \"tooManyFailedAttempts\";\n nextRetryAt = resp.nextRetryAt;\n if (resp.nextRetryAt <= now) {\n return undefined;\n }\n }\n else {\n return undefined;\n }\n const duration = nextRetryAt !== undefined ? formatTimeRemaining(now, Number(nextRetryAt), true) : \"\";\n return {\n kind: \"resource_key\",\n key: \"pinNumber.\" + error,\n params: { duration },\n level: undefined,\n lowercase: false,\n };\n}\n","\n\n{#if confirming}\n {#if me}\n \n {:else}\n (confirming = false)} />\n {/if}\n{:else if showDetails}\n (showDetails = false)} />\n{/if}\n\n
\n
\n {#if content.status.kind === \"p2p_swap_open\"}\n
\n \n {timeRemaining}\n
\n {/if}\n
\n
\n \n
\n
{fromAmount} {content.token0.symbol}
\n
({fromAmountInUsd} USD)
\n
\n
\n\n
\n \n
\n\n
\n \n
\n
{toAmount} {content.token1.symbol}
\n
({toAmountInUsd} USD)
\n
\n
\n
\n
\n
\n {#if content.caption !== undefined}\n
\n {content.caption}\n
\n {/if}\n {#if summaryText !== undefined}\n
\n {/if}\n {#if instructionText !== undefined}\n
\n \n
\n {/if}\n
\n \n \n \n \n \n
\n
\n
\n\n\n","\n\n\n \n {#snippet header()}\n \n {/snippet}\n {#snippet body()}\n
\n \n
\n {/snippet}\n
\n
\n\n\n","\n\n\n\n{#if content.kind === \"text_content\"}\n \n{:else if content.kind === \"image_content\"}\n \n{:else if content.kind === \"video_content\"}\n \n{:else if content.kind === \"video_call_content\"}\n \n{:else if content.kind === \"audio_content\"}\n \n{:else if content.kind === \"file_content\"}\n \n{:else if content.kind === \"deleted_content\"}\n \n{:else if content.kind === \"blocked_content\"}\n \n{:else if content.kind === \"crypto_content\"}\n \n{:else if content.kind === \"placeholder_content\"}\n \n{:else if content.kind === \"bot_placeholder_content\"}\n \n{:else if content.kind === \"prize_content_initial\"}\n \n{:else if content.kind === \"p2p_swap_content_initial\"}\n \n{:else if content.kind === \"prize_content\"}\n \n{:else if content.kind === \"p2p_swap_content\"}\n \n{:else if content.kind === \"prize_winner_content\"}\n \n{:else if content.kind === \"poll_content\"}\n \n{:else if content.kind === \"giphy_content\"}\n \n{:else if content.kind === \"proposal_content\"}\n \n{:else if content.kind === \"message_reminder_created_content\" && !content.hidden}\n \n{:else if content.kind === \"message_reminder_content\"}\n \n{:else if content.kind === \"reported_message_content\"}\n \n{:else if content.kind === \"meme_fighter_content\"}\n \n{:else if content.kind === \"user_referral_card\"}\n \n{/if}\n","\n\n\n\n
\n \n
\n\n\n","\n\n\n\n{#if transferText !== undefined}\n
\n
\n \n
\n
\n
\n \n
\n
\n {#if transactionLinkText !== undefined}\n \n {/if}\n
\n
\n
\n{:else}\n
\n{/if}\n\n{#if content.caption !== undefined}\n \n{/if}\n\n\n","\n\n\n\n\n \n\n\n\n","\n\n\n\n
\n {#if !intersecting}\n \n {:else if $mobileWidth || hidden}\n {#if hidden && !$mobileWidth}\n
\n {#if !reply}\n
\n \n
\n {/if}\n
\n {/if}\n \n {:else}\n \n \n \n \n {/if}\n
\n\n\n\n\n","\n\n
\n ⏰ \n {client.toDatetimeString(new Date(content.remindAt))}\n
\n\n\n\n","\n\n
\n ⏰ \n
\n\n","\n\n
\n

\n {#if report.notes !== undefined && report.notes.length > 0}\n \n \n
\n {/snippet}\n {#snippet footer()}\n
\n \n \n dispatch(\"close\")}\n disabled={suspending}\n small\n secondary>\n \n \n \n
\n {/snippet}\n \n\n","\n\n{#if show}\n \n \n
\n{/if}\n\n\n","\n\n\n\n
\n \n

\n {`${client.toLongDateString(date)} @ ${client.toShortTimeString(date)}`}\n

\n
\n\n\n","\n\n\n\n\n","\n\n\n\n{#if joinedText !== undefined || deletedText !== undefined || roleChangedTextList?.length > 0}\n
\n {#if joinedText !== undefined}\n

\n \n

\n {/if}\n {#if deletedText !== undefined}\n \n {deletedText}\n

\n {/if}\n {#each roleChangedTextList as text}\n

\n \n

\n {/each}\n
\n{/if}\n\n\n","\n\n\n\n\n","\n\n\n","\n\n{#if event.event.kind === \"message\"}\n {@const sender = $userStore.get(event.event.sender)}\n {#if !hidden}\n \n {/if}\n{:else if event.event.kind === \"group_chat_created\"}\n \n{:else if event.event.kind === \"direct_chat_created\"}\n \n{:else if event.event.kind === \"members_added\"}\n \n{:else if event.event.kind === \"users_invited\"}\n \n{:else if event.event.kind === \"members_removed\"}\n \n{:else if event.event.kind === \"aggregate_common_events\"}\n \n{:else if event.event.kind === \"users_blocked\"}\n \n{:else if event.event.kind === \"users_unblocked\"}\n \n{:else if event.event.kind === \"name_changed\"}\n \n{:else if event.event.kind === \"desc_changed\"}\n \n{:else if event.event.kind === \"rules_changed\"}\n \n{:else if event.event.kind === \"avatar_changed\"}\n \n{:else if event.event.kind === \"gate_updated\"}\n \n{:else if event.event.kind === \"external_url_updated\"}\n \n{:else if event.event.kind === \"group_visibility_changed\"}\n \n{:else if event.event.kind === \"group_invite_code_changed\"}\n {#if canInvite}\n \n {/if}\n{:else if event.event.kind === \"permissions_changed\"}\n \n{:else if event.event.kind === \"events_ttl_updated\"}\n \n{:else if event.event.kind === \"chat_frozen\"}\n \n{:else if event.event.kind === \"chat_unfrozen\"}\n \n{:else if event.event.kind === \"bot_added\"}\n \n{:else if event.event.kind === \"bot_removed\"}\n \n{:else if event.event.kind === \"bot_updated\"}\n \n{:else if !client.isEventKindHidden(event.event.kind)}\n
Unexpected event type: {event.event.kind}
\n{/if}\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n{#if event.enabled || event.enabledPrev}\n \n{/if}\n","\n\n\n\n{#if showEvent}\n \n{/if}\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n\n\n\n","\n\n
\n {#if $isProposalGroup}\n \n {:else if chat.kind === \"direct_chat\" && client.isOpenChatBot(chat.them.userId)}\n \n {:else}\n \n

\n \n

\n
\n
\n \n
\n {#if state.description && state.description.length > 0}\n \n {/if}\n {#if state.bot !== undefined}\n \n {/if}\n {#if state.subtitle}\n \n {/if}\n {/if}\n
\n\n\n","\n\n
\n {client.formatMessageDate(timestamp, $_(\"today\"), $_(\"yesterday\"))}\n
\n\n\n","\n\n{#if floatingTimestamp !== undefined}\n \n{/if}\n\n \n
\n\n{#if scrollTopButtonEnabled}\n \n \n \n \n
\n{/if}\n\n{#if !readonly}\n \n scrollToMention(firstUnreadMention)}>\n
\n
@
\n
\n
\n
\n{/if}\n 0}\n class=\"fab to-bottom\"\n class:footer\n class:rtl={$rtlStore}>\n \n {#if loadingFromUserScroll}\n
\n {:else if unreadMessages > 0}\n
\n
{unreadMessages > 999 ? \"999+\" : unreadMessages}
\n
\n {:else}\n \n {/if}\n \n
\n\n\n","\n\n{#each messages as [percentage, lines]}\n
\n
\n
\n {#each lines as _}\n
\n {/each}\n
\n
\n{/each}\n\n
\n \n
\n\n\n","\n\n
\n\n\n","\n\n\n\n\n\n\n {#if !privatePreview}\n {#each timeline as timelineItem}\n {#if timelineItem.kind === \"timeline_date\"}\n \n {:else}\n {#each timelineItem.group as innerGroup (userGroupKey(innerGroup))}\n {#each innerGroup as evt, i (eventKey(evt))}\n toggleMessageExpansion(evt, true)}\n on:collapseMessage={() => toggleMessageExpansion(evt, false)}\n on:retrySend\n event={evt} />\n {/each}\n {/each}\n {/if}\n {/each}\n {/if}\n {#if privatePreview}\n \n {/if}\n {#if showAvatar}\n \n {/if}\n\n","\n\n\n
\n \n \n \n
\n

\n {displayName}\n

\n
\n \n
\n
\n\n\n","\n\n{#if supported}\n
\n \n {#if recording}\n \n {:else}\n \n {/if}\n \n
\n{/if}\n","\n\n{#if filtered.length > 0}\n \n \n p.userId} items={filtered} let:item let:itemIndex>\n mention(item)}>\n
\n {#if item.kind === \"user_group\" || item.kind === \"everyone\"}\n
\n \n
\n {:else}\n \n {/if}\n
\n
\n {#if item.kind === \"user_group\"}\n \n {item.name}\n \n {:else if item.kind === \"everyone\"}\n \n {\"everyone\"}\n \n {:else}\n \n {client.getDisplayName(item, $communityMembers)}\n \n \n @{item.username}\n \n {/if}\n
\n
\n
\n
\n
\n{/if}\n\n\n\n\n","\n\n
\n \n \n \n \n
\n","\n\n\n \n\n","\n\n\n {#if open}\n \n \n {:else}\n \n \n {/if}\n\n \n","\n\n\n \n\n","\n\n {\n if (drawOpen && messageAction === undefined) {\n drawOpen = false;\n }\n }} />\n\n{#if !narrow}\n {#if permittedMessages.get(\"text\") || messageAction === \"file\"}\n
\n \n \n \n
\n {/if}\n\n {#if !editing && (permittedMessages.get(\"file\") || permittedMessages.get(\"image\") || permittedMessages.get(\"video\"))}\n
\n \n
\n {/if}\n{/if}\n\n{#if useDrawer}\n
\n {#if showClose}\n \n \n \n {:else}\n \n \n \n {/if}\n
\n{/if}\n\n
\n {#if supportedActions.has(\"emoji\")}\n \n \n \n \n
\n {/if}\n {#if !editing}\n {#if supportedActions.has(\"attach\")}\n
\n \n
\n {/if}\n {#if supportedActions.has(\"crypto\")}\n \n \n \n \n
\n {/if}\n {#if supportedActions.has(\"giphy\")}\n \n \n \n \n
\n {/if}\n {#if supportedActions.has(\"meme\")}\n \n \n \n \n
\n {/if}\n {#if supportedActions.has(\"poll\")}\n \n \n \n \n
\n {/if}\n {#if supportedActions.has(\"prize\")}\n \n \n \n \n \n {/if}\n {#if supportedActions.has(\"swap\")}\n \n \n \n \n \n {/if}\n {/if}\n\n\n\n","\n\n{#if gates.length > 0}\n
\n {#each merged as gate, i}\n \n {#if merged.length > 1 && i < merged.length - 1}\n &\n {/if}\n {/each}\n
\n{/if}\n\n\n","\n\n
\n
\n \n
\n {#if lapsed}\n
\n \n
\n {/if}\n {#if $platformModerator}\n {#if isFrozen}\n \n {:else}\n \n {/if}\n {/if}\n {#if !lapsed}\n \n {/if}\n \n \n \n
\n\n\n","import { writable } from \"svelte/store\";\nexport const snowing = writable(false);\n","import { builtinBot, createArgsFromSchema, externalBots, argIsValid, } from \"openchat-client\";\nimport { derived, get, writable } from \"svelte/store\";\nimport { _ } from \"svelte-i18n\";\nfunction filterCommand(formatter, c, selectedCommand, parsedPrefix, prefixParts) {\n if (c.devmode && import.meta.env.OC_NODE_ENV === \"production\")\n return false;\n if (selectedCommand !== undefined) {\n return commandsMatch(selectedCommand, c);\n }\n if (prefixParts.length > 1) {\n return c.name.toLocaleLowerCase() === parsedPrefix;\n }\n else {\n const desc = c.description ? formatter(c.description).toLocaleLowerCase() : undefined;\n return (c.name.toLocaleLowerCase().includes(parsedPrefix) ||\n (desc?.includes(parsedPrefix) ?? false));\n }\n}\nfunction parseCommand(input) {\n const regex = /\"([^\"]+)\"|(\\S+)/g;\n const result = [];\n let match;\n while ((match = regex.exec(input)) !== null) {\n if (match[1]) {\n result.push(match[1]);\n }\n else if (match[2]) {\n result.push(match[2]);\n }\n }\n return result;\n}\nexport const error = writable(undefined);\nexport const prefix = writable(\"\");\nexport const selectedCommand = writable(undefined);\nexport const focusedCommandIndex = writable(0);\nexport const selectedCommandArgs = writable([]);\nexport const showingBuilder = writable(false);\nexport const prefixParts = derived(prefix, (prefix) => parseCommand(prefix));\nexport const maybeArgs = derived(prefixParts, (prefixParts) => prefixParts.slice(1) ?? []);\nexport const parsedPrefix = derived(prefixParts, (prefixParts) => prefixParts[0]?.slice(1)?.toLocaleLowerCase() ?? \"\");\nfunction sortByPrefix(prefix) {\n return (a, b) => {\n const aStartsWithPrefix = a.name.toLocaleLowerCase().startsWith(prefix);\n const bStartsWithPrefix = b.name.toLocaleLowerCase().startsWith(prefix);\n if (aStartsWithPrefix && !bStartsWithPrefix) {\n return -1;\n }\n else if (!aStartsWithPrefix && bStartsWithPrefix) {\n return 1;\n }\n else {\n return a.name.localeCompare(b.name);\n }\n };\n}\nexport const commands = derived([_, externalBots, selectedCommand, parsedPrefix, prefixParts], ([$_, externalBots, selectedCommand, parsedPrefix, prefixParts]) => {\n const bots = [builtinBot, ...externalBots.values()];\n return bots\n .flatMap((b) => {\n switch (b.kind) {\n case \"external_bot\":\n return b.definition.commands\n .map((c) => {\n return {\n ...c,\n kind: b.kind,\n botName: b.name,\n avatarUrl: b.avatarUrl,\n botId: b.id,\n botEndpoint: b.endpoint,\n botDescription: b.definition.description,\n };\n })\n .filter((c) => filterCommand($_, c, selectedCommand, parsedPrefix, prefixParts));\n case \"internal_bot\":\n return b.definition.commands\n .map((c) => {\n return {\n ...c,\n kind: b.kind,\n botName: b.name,\n botDescription: b.definition.description,\n };\n })\n .filter((c) => filterCommand($_, c, selectedCommand, parsedPrefix, prefixParts));\n }\n })\n .sort(sortByPrefix(parsedPrefix));\n});\nexport const instanceValid = derived([selectedCommand, selectedCommandArgs], ([selectedCommand, selectedCommandArgs]) => {\n if (selectedCommand === undefined)\n return false;\n return instanceIsValid(selectedCommand, selectedCommandArgs);\n});\nexport function instanceIsValid(command, params) {\n if (params.length !== command.params.length) {\n return false;\n }\n const pairs = command.params.map((p, i) => [p, params[i]]);\n return pairs.every(([p, i]) => argIsValid(p, i));\n}\nfunction commandsMatch(a, b) {\n if (a === undefined || b === undefined)\n return false;\n return a.botName === b.botName && a.name === b.name;\n}\nexport function focusPreviousCommand() {\n focusedCommandIndex.update((idx) => {\n return (idx + 1) % get(commands).length;\n });\n}\nexport function focusNextCommand() {\n focusedCommandIndex.update((idx) => {\n const cmds = get(commands);\n return (idx - 1 + cmds.length) % cmds.length;\n });\n}\nexport function createBotInstance(command) {\n switch (command.kind) {\n case \"external_bot\":\n return {\n kind: \"external_bot\",\n id: command.botId,\n endpoint: command.botEndpoint,\n command: {\n name: command.name,\n arguments: get(selectedCommandArgs),\n placeholder: command.placeholder,\n },\n };\n case \"internal_bot\":\n return {\n kind: \"internal_bot\",\n command: {\n name: command.name,\n arguments: get(selectedCommandArgs),\n },\n };\n }\n}\nexport function setSelectedCommand(commands, cmd) {\n cmd = cmd ?? commands[get(focusedCommandIndex)];\n // make sure that we don't set the same command twice\n if (!commandsMatch(get(selectedCommand), cmd)) {\n selectedCommand.set(cmd);\n if (cmd !== undefined) {\n focusedCommandIndex.set(0);\n if (cmd.params.length > 0) {\n selectedCommandArgs.set(createArgsFromSchema(cmd.params, get(maybeArgs)));\n }\n // if the instance is not already valid (via inline params) show the builder modal\n showingBuilder.set(!get(instanceValid));\n }\n }\n return selectedCommand;\n}\nexport function cancel() {\n selectedCommand.set(undefined);\n error.set(undefined);\n prefix.set(\"\");\n focusedCommandIndex.set(0);\n selectedCommandArgs.set([]);\n showingBuilder.set(false);\n}\n","\n\n
\n

\n \n

\n \n \n \n
\n
\n {#each commands as command, i}\n \n \n selectCommand(command)}>\n {#if command.kind === \"external_bot\"}\n \n {:else}\n \n {/if}\n
\n
\n
\n /{command.name}\n
\n {#each command?.params ?? [] as param}\n \n
\n \n
\n
\n \n \n \n
\n
\n {/each}\n
\n {#if command.description}\n
\n \n
\n {/if}\n
\n
\n \n
\n
\n {/each}\n\n\n{#if $error !== undefined}\n
\n \n {$error}\n \n
\n{/if}\n\n\n","\n\n
\n
\n \n
\n
\n {#if displayName !== undefined}\n {displayName}\n {/if}\n @{name}\n
\n \n \n \n
\n\n\n","\n\n
\n \n {#if firstError !== undefined && showError}\n
\n \n \n \n
\n {/if}\n \n
\n\n\n","\n\n
\n {#if showMentionPicker}\n \n {/if}\n {#if selectedReceiver !== undefined}\n \n {:else}\n
\n (showMentionPicker = true)}\n onblur={blur}\n {invalid}\n {error}\n {autofocus}\n bind:value={textValue}\n maxlength={100}\n placeholder={i18nKey(placeholder)}>\n \n
\n {/if}\n
\n\n\n","\n\n
\n \n
\n\n\n","\n\n\n","\n\n\n\n
\n {\n if (futureOnly && dateValue instanceof Date && dateValue < new Date()) {\n dateIsValid = false;\n } else {\n dateIsValid = true;\n }\n dateValue instanceof Date\n ? onchange?.(BigInt(dateValue.getTime()))\n : onchange?.(null);\n }}\n />\n {#if !dateIsValid}\n
\n \n
\n \n
\n
\n \n \n \n
\n
\n
\n {/if}\n
\n\n\n","\n\n\n \n {#snippet header()}\n {commandName}\n {/snippet}\n {#snippet body()}\n
\n {#if command.description}\n

\n {/if}\n {#if $selectedCommandArgs.length === command?.params?.length}\n {#each command?.params ?? [] as param, i}\n \n {/each}\n {/if}\n \n {/snippet}\n {#snippet footer()}\n \n \n \n {/snippet}\n
\n
\n","\n\n
\n {#if arg.kind === \"user\" && param.kind === \"user\"}\n \n ) => {\n arg.userId = ev.detail.userId;\n onChange();\n }}\n on:userRemoved={() => {\n arg.userId = undefined;\n onChange();\n }}\n autofocus={false}\n direction={\"down\"}\n placeholder={$_(param.placeholder ?? \"\")} />\n {:else if arg.kind === \"string\" && param.kind === \"string\"}\n 0\n ? undefined\n : i18nKey(`Max length ${param.maxLength}`)} />\n {#if param.choices?.length ?? 0 > 0}\n \n {:else if param.multi_line}\n \n {:else}\n \n {/if}\n {:else if arg.kind === \"boolean\" && param.kind === \"boolean\"}\n \n \n {:else if (arg.kind === \"integer\" && param.kind === \"integer\") || (arg.kind === \"decimal\" && param.kind === \"decimal\")}\n \n {#if param.choices?.length ?? 0 > 0}\n \n {:else if arg.kind === \"integer\" && param.kind === \"integer\"}\n \n {:else if arg.kind === \"decimal\" && param.kind === \"decimal\"}\n \n {/if}\n {:else if arg.kind === \"dateTime\" && param.kind === \"dateTime\"}\n \n {\n arg.value = value;\n onChange();\n }} />\n {/if}\n
\n\n\n","\n\n\n \n {#snippet header()}\n
\n \n
\n {/snippet}\n {#snippet body()}\n
\n \n \n \n
\n {/snippet}\n {#snippet footer()}\n
\n \n \n \n
\n {/snippet}\n
\n
\n\n\n","\n\n{#if showDirectBotChatWarning}\n (showDirectBotChatWarning = false)}\n title={i18nKey(\"bots.direct.warningTitle\")}\n warning={i18nKey(\"bots.direct.warning\")} />\n{/if}\n\n{#if $selectedCommand && $showingBuilder}\n cancelCommandSelector(true)}\n onCancel={() => cancelCommandSelector(false)}\n command={$selectedCommand} />\n{/if}\n\n{#if showMentionPicker}\n \n{/if}\n\n{#if showCommandSelector}\n cancelCommandSelector(true)}\n onNoMatches={() => cancelCommandSelector(false)}\n onCancel={() => cancelCommandSelector(false)} />\n{/if}\n\n{#if showEmojiSearch}\n (showEmojiSearch = false)}\n on:select={completeEmoji}\n query={emojiQuery} />\n{/if}\n\n\n {#if frozen}\n
\n \n
\n {:else if blocked}\n
\n \n
\n {:else if (preview || lapsed) && chat.kind !== \"direct_chat\"}\n \n {:else if externalContent}\n
\n \n \n
\n {:else if !canSendAny}\n
\n \n
\n {:else if $throttleDeadline > 0}\n \n {:else}\n {#if recording}\n
\n \n
\n {/if}\n {#if canEnterText}\n {#key textboxId}\n
\n {#if excessiveLinks}\n
{$_(\"excessiveLinksNote\")}
\n {/if}\n \n (dragging = true)}\n on:dragenter={() => (dragging = true)}\n on:dragleave={() => (dragging = false)}\n on:drop={onDrop}\n on:input={onInput}\n on:keypress={keyPress}>\n
\n\n {#if containsMarkdown}\n \n {/if}\n \n {/key}\n {:else}\n
\n \n
\n {/if}\n\n {#if directChatBotId === undefined}\n
\n {#if editingEvent === undefined}\n {#if permittedMessages.get(\"audio\") && messageIsEmpty && audioMimeType !== undefined && audioSupported}\n
\n \n
\n {:else if canEnterText}\n \n
\n \n \n \n
\n {/if}\n \n \n {:else}\n \n
\n \n \n \n
\n \n
\n \n \n \n
\n {/if}\n
\n {/if}\n {/if}\n\n\n\n","\n\n
\n \n e.unicode} items={matches} let:item let:itemIndex>\n select(item.unicode)}>\n
\n {item.unicode}\n
\n
\n :{item.code}:\n
\n
\n
\n
\n
\n\n\n\n\n","\n\n
\n \n
\n \n \n
\n
\n
\n\n\n","\n\n
\n \n \n \n
\n {#if enabled}\n \n {:else}\n \n {/if}\n
\n
\n \n \n \n
\n
\n
\n\n\n","\n\n{#if messageAction === \"emoji\"}\n
\n \n {#snippet body()}\n \n
\n

\n \n (messageAction = undefined)}>\n \n \n \n
\n \n
\n {/snippet}\n {#snippet footer()}\n \n {/snippet}\n
\n
\n{/if}\n\n
\n
\n {#if editingEvent === undefined && (replyingTo || attachment !== undefined)}\n
\n {#if replyingTo}\n \n {/if}\n {#if attachment !== undefined}\n \n {/if}\n
\n {/if}\n
\n onFileSelected(ev.detail)}\n on:audioCaptured />\n
\n\n\n","\n\n\n\n
\n {#if content.kind === \"video_content\"}\n \n {:else if content.kind === \"audio_content\"}\n \n {:else if content.kind === \"image_content\"}\n \n {:else if content.kind === \"file_content\"}\n
\n \n
\n {/if}\n
\n\n\n","\n\n
\n
\n \n
\n {#if label !== undefined}\n
\n \n
\n {/if}\n
\n\n\n","\n\n{#if open}\n \n \n {#snippet header()}\n \n {/snippet}\n {#snippet body()}\n
\n \n (showSettings = false)}\n >\n (showSettings = true)}\n >\n \n
\n {#if !showSettings}\n
\n
\n \n \n
\n\n
\n \n {#each [...poll.pollAnswers.values()] as answer (answer)}\n
\n
\n {answer}\n
\n
deleteAnswer(answer)}>\n \n
\n
\n {/each}\n {#if poll.pollAnswers.size < MAX_ANSWERS}\n
\n
\n = MAX_ANSWERS}\n minlength={1}\n maxlength={MAX_ANSWER_LENGTH}\n countdown\n on:enter={addAnswer}\n placeholder={i18nKey(\n poll.pollAnswers.size === MAX_ANSWERS\n ? \"poll.maxReached\"\n : \"poll.answerText\",\n )}>\n {#if answerError !== undefined}\n \n {/if}\n \n
\n
\n \n
\n
\n {/if}\n
\n
\n {:else}\n (poll.anonymous = !poll.anonymous)}\n label={i18nKey(\"poll.anonymous\")}\n checked={poll.anonymous} />\n\n \n (poll.allowMultipleVotesPerUser = !poll.allowMultipleVotesPerUser)}\n checked={poll.allowMultipleVotesPerUser} />\n\n (poll.allowUserToChangeVote = !poll.allowUserToChangeVote)}\n checked={!poll.allowMultipleVotesPerUser && poll.allowUserToChangeVote} />\n\n (poll.limitedDuration = !poll.limitedDuration)}\n checked={poll.limitedDuration} />\n\n {#if poll.limitedDuration}\n \n (poll.showVotesBeforeEndDate = !poll.showVotesBeforeEndDate)}\n checked={poll.showVotesBeforeEndDate} />\n\n \n {#each durations as d}\n (selectedDuration = d)}\n value={d}\n checked={selectedDuration === d}\n id={`duration_${d}`}\n label={i18nKey(`poll.${d}`)}\n group={\"poll_duration\"} />\n {/each}\n {/if}\n {/if}\n {/snippet}\n {#snippet footer()}\n \n (open = false)}>{$_(\"cancel\")}\n {$_(\"poll.start\")}\n \n {/snippet}\n
\n
\n{/if}\n\n\n","\n\n\n \n {#snippet header()}\n \n
\n
\n
\n
\n \n
\n
\n
\n (confirming = false)}\n on:refreshed={onBalanceRefreshed}\n on:error={onBalanceRefreshError} />\n
\n {/snippet}\n {#snippet body()}\n
\n
\n {#if zero || toppingUp}\n \n {#if zero}\n

\n \n

\n {/if}\n

\n {:else}\n {#if multiUserChat}\n
\n \n \n
\n {/if}\n
\n \n
\n
\n \n \n
\n {#if confirming}\n
\n
\n \n
\n
\n \n
\n
\n {/if}\n {#if errorMessage !== undefined}\n
\n \n
\n {/if}\n {/if}\n
\n
\n {/snippet}\n {#snippet footer()}\n \n \n \n {#if toppingUp || zero}\n \n {:else}\n \n {/if}\n \n \n {/snippet}\n
\n
\n\n\n","export function nowNanos() {\n return BigInt(Date.now()) * BigInt(1_000_000);\n}\n","\n\n\n\n{#if showMentionPicker}\n \n{/if}\n\n\n
\n \n \n \n
\n
\n \n {#if searching}\n
\n {:else}\n
{count}
\n {/if}\n
\n
\n \n \n \n
\n
\n \n \n \n
\n\n\n\n","\n\n{#if open}\n \n \n {#snippet header()}\n
\n
\n \n
\n
\n \n
\n
\n {/snippet}\n {#snippet body()}\n
\n {#if selectedImage !== undefined}\n
\n selectedImage.dims[1]}\n src={selectedImage.url}\n alt={selectedGif?.title} />\n
\n {:else}\n \n {#each Object.values(gifCache) as item (item.key)}\n selectGif(item)}\n src={item.media_formats.tinygif.url}\n style={`width: ${imgWidth}px; top: ${item.top}px; left: ${item.left}px`}\n alt={item.title} />\n {/each}\n
\n {/if}\n {#if selectedGif === undefined}\n
\n \"Powered\n
\n {/if}\n
\n \n
\n \n {/snippet}\n {#snippet footer()}\n \n {#if selectedGif !== undefined}\n \n \n \n \n \n {/if}\n \n \n \n \n \n {/snippet}\n \n \n{/if}\n\n\n","\n\n{#if open}\n \n \n {#snippet header()}\n
\n \n
Meme Fighter
\n
\n {/snippet}\n {#snippet body()}\n
\n {#if memeUrl}\n \n {:else}\n \n {/if}\n
\n {/snippet}\n {#snippet footer()}\n \n \n \n \n \n \n \n {/snippet}\n
\n
\n{/if}\n\n\n","import { writable } from \"svelte/store\";\nexport const messageToForwardStore = writable(undefined);\n","\n\n{#if communitiesList.length > 0}\n \n \n {#snippet header()}\n \n {/snippet}\n {#snippet body()}\n \n {#each communitiesList as community}\n selectCommunity(community)}\n class=\"card\"\n class:selected={community === selected}>\n
\n \n
\n
\n

{community.name}

\n
\n \n {/each}\n
\n {/snippet}\n {#snippet footer()}\n \n \n \n \n \n \n {/snippet}\n
\n
\n{/if}\n\n\n","const words = [\n \"Sustainable\",\n \"taiyaki\",\n \"semiotics\",\n \"mumblecore\",\n \"helvetica\",\n \"celiac\",\n \"selfies\",\n \"franzen\",\n \"etsy\",\n \"truffaut\",\n \"umami\",\n \"ugh\",\n \"swag\",\n \"fixie\",\n \"lumbersexual.\",\n \"Hoodie\",\n \"food\",\n \"truck\",\n \"sriracha\",\n \"squid\",\n \"selfies\",\n \"normcore\",\n \"cornhole\",\n \"marfa\",\n \"fingerstache\",\n \"twee\",\n \"flannel\",\n \"big\",\n \"mood.\",\n \"Try-hard\",\n \"bicycle\",\n \"rights\",\n \"tonx,\",\n \"celiac\",\n \"af\",\n \"3\",\n \"wolf\",\n \"moon\",\n \"craft\",\n \"beer\",\n \"etsy\",\n \"PBR&B\",\n \"man\",\n \"bun\",\n \"blue\",\n \"bottle\",\n \"fit\",\n \"Brooklyn\",\n \"mixtape.\",\n \"Activated\",\n \"charcoal\",\n \"taxidermy\",\n \"photo\",\n \"booth\",\n \"3\",\n \"wolf\",\n \"moon\",\n \"truffaut\",\n \"lumbersexual.\",\n];\nexport function randomSentence(min = 1, max = 50) {\n const count = Math.floor(Math.random() * (max - min + 1)) + min;\n const shuffled = words.sort(() => 0.5 - Math.random());\n return shuffled.slice(0, count).join(\" \");\n}\n","\n\n\n\n\n","\n\n\n \n {#snippet header()}\n \n
\n
\n
\n
\n \n
\n
\n
\n \n
\n {/snippet}\n {#snippet body()}\n
\n
\n {#if zero || toppingUp}\n \n {#if zero}\n

\n \n

\n {/if}\n

\n {:else}\n
\n \n
\n
\n \n \n
\n
\n \n
\n \n
\n \n
\n
\n
\n \n
\n (distribution = \"random\")}\n class=\"distribution\">\n
\n \n
\n
\n \n
\n
\n (distribution = \"equal\")}\n class=\"distribution\">\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n {#each durations as d}\n (selectedDuration = d)}\n value={d}\n checked={selectedDuration === d}\n id={`duration_${d}`}\n label={i18nKey(`poll.${d}`)}\n group={\"prize_duration\"} />\n {/each}\n
\n
\n \n \n \n {#if diamondOnly}\n
\n (diamondType = \"standard\")}\n checked={diamondType === \"standard\"}\n label={i18nKey(`prizes.standardDiamond`)}\n group={\"diamond\"} />\n (diamondType = \"lifetime\")}\n checked={diamondType === \"lifetime\"}\n label={i18nKey(`prizes.lifetimeDiamond`)}\n group={\"diamond\"} />\n
\n {/if}\n \n \n {#if streakOnly}\n \n {/if}\n
\n
\n {#if errorMessage !== undefined}\n
\n \n
\n {/if}\n {/if}\n \n
\n {/snippet}\n {#snippet footer()}\n \n \n \n {#if toppingUp || zero}\n \n {:else}\n \n {/if}\n \n \n {/snippet}\n
\n
\n\n\n","\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","\n\n{#if confirming}\n \n{/if}\n\n\n \n {#snippet header()}\n \n
\n \n
\n \n
\n {/snippet}\n {#snippet body()}\n
\n
\n
\n \n
\n t.balance > 0}\n bind:ledger={fromLedger}\n onSelect={onSelectFromToken} />\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n t.ledger !== fromLedger}\n bind:ledger={toLedger} />\n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n \n \n
\n {#if errorMessage !== undefined}\n
\n \n
\n {/if}\n
\n {/snippet}\n {#snippet footer()}\n \n \n \n \n \n \n {/snippet}\n
\n
\n\n\n","\n\n{#if frozen}\n
\n \n \n
\n{:else if privateChatPreview}\n
\n \n
\n{:else if error}\n
\n \n \n
\n{/if}\n\n{#if !frozen && !privateChatPreview}\n \n\n\n
\n

How does it work?

\n\n

\n In all contexts where you can create an access gate, it is now possible to specify a time\n interval on which that gate will be re-evaluated for all members.\n

\n\n \n\n

\n With that set, users will be able to see that, not only is there an access gate, but the\n access gate will be regularly re-evaluated.\n

\n\n \n\n

\n When a user attempts to join a group, community or channel that is protected by an access\n gate with an expiry, they will be reminded that that access gate will be re-evaluated\n according to the schedule set by the owner.\n

\n\n \n\n

What happens when a gate is re-evaluated?

\n\n

\n When a you join a group, community or channel with an expiring gate, your membership will be\n re-evaluated on the specified schedule. Exactly what this means depends on the type of gate.\n For example, if a channel has a Diamond membership access gate, we will simply check that\n you still have a Diamond membership. However, some access gates will require user interaction.\n For example, the channel may require a payment. In this case, another payment would need to be\n approved by you the user before your membership can be re-established.\n

\n\n

\n In the case where you no longer meet the access gate requirements or user\n interaction is required to establish whether or not you meet the access gate requirements,\n you will enter a lapsed membership state. You are still a member in this state, but\n you will no longer be able to interact until you have established once again that you meet the\n requirements of the access gate.\n

\n\n \n\n

The process for re-joining is exactly the same as the process for joining.

\n\n

\n Note that it is possible that there may be more than one access gate in play since it is\n possible to have an access gate on both the community and a channel at the same time. These\n access gates can have different expiry intervals and will be evaluated independently.\n

\n\n

Applications

\n\n

\n There are many possible reasons that you might want to use expiring access gates. The reason\n that we have a new channel for each monthly airdrop is because we didn't have this capability\n and we wanted to make sure that someone could not just buy a single month of Diamond membership\n and then participate indefinitely. We could model this with an expiring access gate now if we\n choose to instead.\n

\n\n

\n This feature also offers a way to provide content with a subscription model. It has always\n been possible to add payment gates, but it is now possible to make it a recurring payment\n enhancing the ability of content creators to fairly monetise their communities.\n

\n\n

\n And finally this feature fits nicely with verifiable credentials. Whatever credential is\n provided, whether it is proof of unique humanity or perhaps verified employee status, it\n stands to reason that you might want to verify periodically that your members can still provide any credential that is required.\n

\n
\n\n\n","\n\n
\n

\n In addition to Internet Identity, OpenChat users can now sign-in or sign-up using email, an\n Ethereum wallet or a Solana wallet. Coming soon are, email recovery, sign-in with a simple\n PassKey, flexible sessions and two-factor authentication (2FA).\n

\n \n
\n
\n

Sign in with email

\n

\n The default option for new sign-ups is email. Your email is not stored but is used to\n generate a unique (and deterministic) identifier. A secure magic link\n including this identifier is sent to your email and is used to prove ownership of the email.\n Having clicked the email link, enter a username to create your OpenChat account. No password\n is required. To sign in at a later date, simply repeat the process by entering your email and\n you will be sent a sign-in link.\n

\n \n
\n
\n

Sign-in with II

\n

\n Internet Identity\n is the gold standard for signing in to apps on the Internet Computer. It is super secure and\n soon will support\n verifiable credentials (VCs) This will allow users to acquire credentials/attributes\n from a 3rd party \"issuer\" and share these securely with OpenChat or other “relying parties”.\n Owners of OpenChat communities, channels and groups will be able to gate access using VCs. Some\n examples:\n

\n
    \n
  • Is the user over 18?
  • \n
  • Are they a unique person?
  • \n
  • Did they attend conference XYZ?
  • \n
  • Are they an employee of ABC?
  • \n
\n

\n Going forwards the primary way to be eligible for airdrops on OpenChat will be to prove\n unique personhood using a verified credential.\n

\n
\n
\n

Sign-in with Ethereum wallet

\n

\n For users coming from the Ethereum ecosystem, OpenChat now offers sign-in by Ethereum wallet\n such as MetaMask, increasing the potential pool of OpenChat users. In the future, we\n anticipate signing in with your Ethereum wallet will enable you to send/swap/tip/gift ETH\n ecosystem tokens as you currently can with ICP tokens, albeit not so quickly or cheaply!\n

\n \n
\n
\n

Sign-in with Solana wallet

\n

See the Ethereum wallet above. The same goes for the Solana wallet and ecosystem!

\n \n
\n
\n

What has changed?

\n

\n Up until recently, to sign in to OpenChat, users would authenticate with II then use the\n returned key to sign requests to OpenChat canisters. This worked fine, and was simple to\n implement, but it prevented OpenChat from supporting things such as email account recovery,\n or having multiple sign in options per account.\n

\n

\n To solve this, we have introduced the Identity canister which can link multiple authentication identities to a\n single OpenChat account, allowing users to sign in using any of them.\n

\n

\n Now, when a user signs in to OpenChat, they first authenticate via their chosen provider,\n then use the returned signing key to authenticate with the Identity canister. The Identity\n canister checks which OpenChat account the key is linked to (or creates a new one) and\n returns a new key which is used to sign requests to OpenChat canisters on behalf of the\n user.\n

\n

\n To generate email magic links, two private keys are used, one in the canister and one in\n AWS. Using this mechanism, even someone with physical access to the nodes is unable to\n generate valid links since they would not know the key in AWS. However, the emails\n themselves are sent from AWS servers and as a result email sign-in is only as secure as\n other web2 services. For the security paranoid it is recommended to use II.\n

\n
\n
\n

Multiple sign-in providers

\n

\n Now that multiple sign-in providers can be linked to the same OpenChat account the following\n use cases will be supported.\n

\n

\n Firstly, as a backup, in case you lose access to your account. Whilst II does allow you to\n recover your account by seed phrase and to set up multiple devices, it isn't foolproof and\n many users lost access when they changed mobile phone or laptop. Users will be able to\n associate an email with their account for simple recovery. Even if your primary sign-in is\n by email, you will be able to add an additional recovery email.\n

\n

\n Secondly, to gain access to the specific features offered by a particular provider while\n keeping the same OpenChat account. So for example, by signing in with II, users will be able\n to provide Verifiable Credentials.\n

\n
\n
\n

Simple Passkey

\n

\n A PassKey is a password replacement\n typically using a biometric device for a faster, easier, and more secure user sign-in experience.\n This is the same technology used by II but without the complication of \"II anchors\". Using a\n PassKey won't be possible for sign-up but only as an additional provider. This is because if\n you were to lose access to your PassKey device (say your phone or laptop) then you would lose\n access to your OpenChat account. A good combination will be to sign up with an email and then\n add a PassKey. The PassKey (e.g. a fingerprint scan) can be used day to day to provide quick\n and secure access to your account, and if you ever lose access you can recover by email.\n

\n
\n
\n

Enhanced session management

\n

\n A \"session\" is the period you have been signed in for. This was limited by II to 30 days but\n with the introduction of the Identity canister this can now be any duration. Some likely\n options are:\n

\n
    \n
  • \n indefinite sessions which lasts until you manually sign out (default for mobile devices)\n
  • \n
  • 30 day sessions (default for non-mobile devices)
  • \n
  • secure mode which requires sign-in whenever you open OpenChat
  • \n
\n

Also coming is the option to sign out of your account across all devices simultaneously.

\n
\n
\n

2FA

\n

\n The new system will also support Two-factor authentication (2FA). Users will be able to\n configure their accounts to require sign-in by 2 providers, say Metamask and a Passkey, or a\n PassKey and an authenticator app.\n

\n
\n","\n\n
\n

\n We are pleased to introduce the first phase of video and voice chat support in OpenChat. The\n web2 apps that we are striving to compete with all provide a voice and video feature and it\n has always been an important item on our roadmap.\n

\n\n

\n Phase one will include one-to-one video calls in direct chats and group video calls of up to\n twenty people in private chats.\n

\n\n

\n Phase two will target community broadcasts. Exactly what this looks like is to be decided.\n But think Twitter spaces and/or Twitch streams.\n

\n\n \"Inside\n\n

Wait! Video calls! On-chain! That's huge!

\n\n

\n Yes it would be! And that is what we always wanted to achieve but it is very\n important to be clear that we are not there yet! There remain some aspects of voice\n and video which are simply not feasible on the IC as it stands today. So we have to choose\n between partnering with an off-chain provider to fullfill a much requested feature or being unable\n to deliver the feature at all.\n

\n\n

\n Voice and video is also a very complex and technical thing to achieve in a reliable and\n scalable way and so it also makes sense from that perspective to take advantage of the hard\n work and expertise of a third party specialist. This allows us to get the feature in your\n hands and find out how best to develop it in the future.\n

\n\n

\n We know that we have a lot of technically astute users and users who care deeply about the\n goals of decentralisation so we want to be very transparent about how this currently works\n so that those who care can make an informed decision about whether they want to use the\n feature or not.\n

\n
\n\n
\n

How it works

\n\n
\n
\n

\n Each private or direct chat in the system will be associated with a \"room\". There is\n one room per chat. Video calls take the form of \"meetings\" in the associated room.\n As such, there is only ever one ongoing video call in any one chat at any one time.\n You can see which of your chats have ongoing video calls in them via icons\n throughout the UI (in much the same way as you are notified of unread messages).\n

\n

\n To start a call, just choose the \"Start video call\" option from the chat menu. This\n will initiate the call and notify other parties. When a new call is started a video\n call message will appear in the timeline. This message will show other members of\n the chat that there is an ongoing video call taking place and who is involved. The\n message will also serve as the root of a thread that can be used to exchange\n messages during the call.\n

\n

\n If a call is already in progress, you can join from the chat menu, or by clicking on\n the join button in the timeline message.\n

\n

\n During a call, you can open the associated thread to exchange text messages, you can\n maximise the chat to take up as much of the screen as possible, you can freely\n continue to browse around other chats within OpenChat and remain on the video call\n in the background.\n

\n
\n
\n \"Inside\n
\n
\n
\n\n
\n

Is it secure?

\n\n
\n
\n

\n Initiating a call requires coordination between the OpenChat backend and the Daily platform's apis. This is coordinated\n via a bridging service running on AWS such that we never run the risk of leaking the\n Daily api key.\n

\n

\n All Daily rooms are private. The user must obtain a room token which they can only\n obtain when they have already obtained an OpenChat access token. This way we are\n able to protect the video chat rooms using both the OpenChat security model and the\n Daily security model in combination.\n

\n\n

\n Of course, the calls themselves are only as secure as Daily itself. One reason for\n selecting Daily is that they have focused on security from the start. We would\n prefer to have full control, of course, but for now, this is the next best thing.\n You can find a wealth of information about the security of Daily by following this link.\n

\n\n

\n And finally, if you have any concerns about any of this from a security point\n of view, you can simply ignore this feature.\n

\n
\n
\n \n
\n
\n
\n\n
\n

Who is paying for this?

\n\n

\n Since we are relying on a third party for this feature, there are costs involved. For this\n initial beta period we intend to provide this service for free. But ultimately we will need\n to look at how much it is costing the DAO and decide how that cost should be met.\n

\n\n

\n It could be that we have some sort of free allowance and metered access from there. It could\n be that group or community owners could pay for access for their members. It could be that\n the DAO decides that it would like to continue to provide access for free. It is hard to\n rule any of these in or out until we have a clearer picture of usage and cost.\n

\n
\n\n
\n

Next steps

\n\n

\n Direct calls and small group chats are the first and most obvious use-case for voice and\n video. And we can think of this as the WhatsApp case. But OpenChat is as much about large\n public groups and communities as it is about small scale chats with friends and family.\n

\n\n

\n We think it would be great to also support large scale live broadcasts where the balance is\n more toward a small number of streamers and speakers and a large number of listeners. We can\n think of this as the Twitter spaces use-case. Phase one lays the ground work for this case\n as well.\n

\n\n

We would also like to support scheduled meetings rather than just impromptu calls.

\n\n

The road to decentralisation

\n\n

\n We will continue to keep an eye on developments on the IC of course in the hope that we can\n decentralise this solution in the future. The key technologies that are needed are: IC\n native STUN and TURN servers, video range headers, an IC native selective forwarding unit of\n some kind. Without this, we would be limited to strict peer-to-peer WebRTC and there is no way\n to get that to scale to the levels required.\n

\n
\n\n\n","\n\n
\n

The problem

\n\n

\n We have always wanted OpenChat to be a global experience and so included multi language\n capability from the start. But with a small development team who only speak English we had\n to rely on automated translation software (Google translate) to provide our translations.\n

\n\n

\n Our translations are typically short words and phrases which lack context and this makes it\n very difficult for Google translate to disambiguate between multiple possible meanings in\n all cases. In practice this might mean that it picks the wrong meaning and we end up with a\n translation in one or more languages that is a bit odd or flat out wrong to a native speaker\n who understands the intended context. We get this feedback quite a lot and we would like to\n do something about it.\n

\n\n

\n The traditional solution would be to engage a professional translation service on an ongoing\n basis for each of our supported languages. But this would impose an ongoing cost (that would\n increase with the number of languages supported) and it would slow us down.\n

\n\n

\n In the spirit of decentralization, we would prefer to engage our enthusiastic userbase of\n non-english speakers who are ready and willing to help us correct our translation mistakes.\n The issue is that it is currently too difficult for them to do so. Currently if a user spots\n a mistake, they must file a bug report or reach out to the dev team in person to tell us\n about the error. Alternatively, if they have the technical know-how, they may submit a pull\n request which updates the translations in the source code themselves. This is neither\n scalable nor user friendly.\n

\n
\n\n
\n

The solution

\n\n

\n When a user spots a translation error now they will be able to submit a correction via the\n app itself without needing to talk to a developer or follow any complex procedure to modify\n the code themselves.\n

\n\n

\n This is done via a new switch within the user profile which appears immediately below the\n language selector in the user profile.\n

\n\n \n\n

\n Note that this switch only appears if you have a language other than English selected\n - we think we speak English pretty well already.\n

\n\n

\n When you have enabled this translation correction mode, you will notice that there is a\n small translation icon next to every piece of translatable text in the user interface.\n

\n\n \n\n

\n If you spot something that looks wrong, simply click the icon next to the text that you want\n to correct. This will open up a dialog telling you the language you are correcting, the\n correct English value and the current value for the selected language. You must then enter\n your proposed correction and hit save.\n

\n\n \n\n

\n Note that you cannot correct the translation of the translation correction page itself -\n that would lead to translation correction inception 😂.\n

\n\n

\n Your suggestion will now show in place in the user interface. Make sure to double check that\n it looks ok. If, for example, the translation you came up with looks too long, try to\n replace it with something more concise that works in the space available. You can repeat\n this process as many times as you like until you are happy with your suggestion.\n

\n\n

\n Some translated text is dynamic. This means that various pieces of context specific\n data may be injected into the text at runtime. In this case the English text will contain\n certain special tokens contained within curly braces {like so}. Your\n translation must contain the exact same tokens as the original or you will not be able\n to save the correction. Of course, you may change the order of the tokens in such a way that\n makes more sense for the target language.\n

\n\n \n\n

\n Having saved your suggestions, you will remain in edit mode and your suggestions will\n continue to appear in the UI for you unless or until you refresh the page (so that you can\n verify them in place). You suggestions will not yet appear for other users.\n

\n
\n\n
\n

What next?

\n\n

\n If you have suggested corrections, the dev team will be notified and they will review your\n suggestions.\n

\n\n

\n We will be looking for two things: Firstly, does the suggested translation fit into the user\n interface without causing significant layout problems? Secondly, is the meaning of the\n original English broadly preserved?\n

\n\n

\n This approval step is just there to stop any mischief. We don't want to limit the ability to\n make suggestions but we also need to make sure someone doesn't just deface the app.\n

\n\n

\n Once your suggestion(s) have been reviewed you will be notified (either for approval or\n rejection) and the suggestion is likely to make its way into the next release.\n

\n\n

Approved translation corrections will be rewarded with a tip in CHAT to the translator.

\n
\n\n
\n

Can I still review translations the old way?

\n\n

\n We are incredibly grateful to those of you who have helped us correct translations in the\n past whether it is via a github pull request which directly updates\n the language files or by just reaching out to us in whatever way you choose\n with individual corrections. You can of course continue to do this as well if you prefer. We\n just hope that this new mechanism will make things a little bit easier and allow as many of you\n as possible to help us continuously improve OpenChat.\n

\n
\n","\n\n
\n

Introduction

\n\n

\n Communities have arrived! I explained the motivation for building the Communities feature in\n a previous post. In this post I want to introduce you\n to the real thing and try to cover some common use cases and anticipate some questions that\n you may have about the feature.\n

\n
\n\n
\n
\n \n\n
\n

Orientation

\n

\n While a lot has changed, things should feel still feel quite familiar. You will\n notice that you now see a new navigation bar on the left of the screen. Let's first\n run through what is available from this new navigation interface.\n

\n

\n At the top, you will see a root level menu (1). This will provide access to items\n that don't relate to specific communities, groups or channels. This includes a full\n breakdown of all of our landing pages which were not easily accessible from within\n the app before.\n

\n\n

\n Next you will see your own avatar (2). Click here to navigate to your user profile\n which will open in the right hand panel as before.\n

\n\n

\n Below your avatar you will see three new icons representing Direct chats (3), Global\n Group chats (4) and Favourites (5). Direct chats are all the chats where you are\n having a one to one converstation with another user. Global group chats are exactly\n like group chats were before. They are simply groups that do not belong inside a\n Community. It's perfectly ok for groups to remain global and not form part of a new\n community. And finally we have favourite chats. This is a place where you can add any\n chat. So if you would prefer to have a single uncategorised view with all the chats that\n you use most frequently you can set it up that way. By default you should see that any\n chat you previously had pinned will now automatically appear in your favourites\n list. It is still possible to pin chats within any of these three lists.\n

\n
\n
\n\n
\n
\n

\n Below the top level chat lists, you will see an icon for each community that you\n belong to. A community also acts as a list of chats - you will see a community's\n list of chats when you select it. Chats within communities are referred to as \"Channels\"\n to make it clear that they are part of a community. Just like direct and group chats,\n channels can also be added to favourites so you can still have everything you're interested\n in in one place.\n

\n

\n Finally, at the bottom of the navigation panel you will see a link to explore\n communities. This is a good place to get started to find out what is on offer. In\n addition, there is a link to expand and collapse the navigation panel which will\n show labels next to each item making it clear exactly what everything is. You may\n find that you don't need to expand this panel after getting used to the new\n features.\n

\n
\n \n
\n
\n\n
\n

Where did my groups go???

\n\n

\n If it seems like any of your groups have disappeared it might be that they have been\n converted to communities. Don't worry, when a group is converted to a community, all the\n group's members will automatically become members of the community. If one or more of your\n groups has been converted, you will receive a message from the OpenChatBot (found within the\n Direct Chats section) telling you about it and giving you a link to the converted community\n and channel.\n

\n\n

We'll find out how to find other communities next.

\n
\n\n
\n

Finding Communities

\n\n

\n To explore public communities, click on the icon in the left hand navigation panel. Here you\n can search for communities. You can use the filters to restrict the results to communities\n with specific primary languages or to communities that have been given particular flags.\n

\n\n \n\n

\n We expect to expand the filtering system in the future to include user defined tags making\n it even easier for community builders to connect with the right audience.\n

\n\n

\n To select a community, simply click on the result in the explorer. You can then preview the\n community's default channels and make a decision about whether you would like to join or\n not.\n

\n\n

\n When you join a community you will be automatically enlisted in that community's default\n channels. There may of course be other channels that you are not automatically enlisted\n in. There are a couple of different ways to find the other channels that you might be interested\n in within the community.\n

\n\n

\n First, you can click the \"Browse channels\" item in the left hand panel. This will open the\n channel browser in the right hand panel. From here you can search and click on any channel\n that interests you to preview and / or join it.\n

\n\n

\n Alternatively, if you know the name of the channel that you're looking for, you can just\n search for it using the search box in the left hand panel.\n

\n\n

Seeing community details

\n\n

\n When you have a community selected you can access the full details of the community from the\n menu in the header of the left hand panel. This will open up the community details in the\n right hand panel (similar to viewing the details of a group). From there, you can also\n access the community's channels and its members.\n

\n
\n\n
\n
\n
\n

Creating Communities

\n\n

When to create a community.

\n\n

\n If you are (or would like to be) the owner of a larger community with a shared\n interest of some kind and with the potential to have multiple separate streams of\n conversation - then a community would be a good fit. The sort of thing that you\n might use a Discord server for today.\n

\n\n

\n Note that if you already run a public group and are quite happy with the way things\n are then there is no need to change anything at all. Your group can carry on as\n before as a global level public group.\n

\n\n

\n If you do decide that you want to create a community of your own? There are\n a couple of common scenarios...\n

\n

Creating a community from scratch

\n

\n To create a community from scratch, simply navigate to the Community explorer and\n click the Create Community button to launch the wizard.\n

\n

\n The wizard should be relatively easy to understand and offers many similar choices\n to the existing group creation wizard. There are some key decisions that will need\n to be made. Do you want to create a public community which anyone can discover and\n join or would you prefer it to be private so that only those invited or provided\n with an invite link can join? Will you apply an access gate that users must pass?\n

\n

\n You will also need to set up permissions for the community to control what your\n users can do.\n

\n

\n You will also have an opportunity to quickly define one or more default channels.\n You will be able to further configure these channels later after the community has\n been created.\n

\n

\n Finally, you may decide to invite users to your community right away. You can of\n course do this later.\n

\n
\n
\n \n
\n
\n\n

Convert a group to a community

\n

\n It's possible that you are already the owner of a group and you would like to promote this\n group to a community. This will allow you to grow your community and still have\n fine-grained, focused and productive conversations within channels.\n

\n

\n To convert a group to a community, simply select the group and then choose \"Convert to\n community\" from the group chat's menu and we will take care of the rest. Note that you must\n be a group owner to perform this operation.\n

\n\n \n\n

\n The conversion process will create a new community with the same name as your group, then\n create a single default channel, again with the same name as your original group. All\n members of the old group will then be added to the community and all messages will be copied\n across to the new channel. Finally, the existing group will be deleted.\n

\n\n

\n Keep in mind that for a large group, this process might take a little while so be patient.\n

\n\n

Importing groups

\n\n

\n Alternatively, you may wish to create the community yourself manually (giving you more\n control over the name, description and imagery etc) and then import your existing group into\n that community afterwards.\n

\n\n

\n To do that, again simply select the group you wish to import and select \"Import to\n community\" from the group chat's menu. You will then be asked to choose the target community\n to import into from a list of any communities that you own. Note that you must be an owner\n of both the source group and the target community to perform this operation.\n

\n\n

\n Once your community has been created, you can invite users, send messages, create more\n channels or import more groups and get the word out.\n

\n
\n\n
\n

The future

\n\n

\n This is an important step in getting our structure right for the future but it is only the\n beginning.\n

\n\n

\n Having got this foundation in place we can iterate fast and add more and more community\n building features.\n

\n\n

This important step will also form the basis for community based integrations.

\n\n

\n Let us know what you think. Let us know what you would like to see next. And please also let\n us know if you find the odd bug!\n

\n
\n\n\n","\n\n
\n

Introduction

\n\n

\n In our roadmap we introduce the idea of Communities. We hope you\n will agree that this is an important and exciting evolution of OpenChat. In this post, we'll\n do a deeper dive into the feature and explain what it's all about.\n

\n

\n When we began the development of OpenChat we had in mind something along the lines of\n WhatsApp or Signal. One very important difference was the support for public groups. We\n initially underestimated the significance of this feature. It took OpenChat out of the\n realms of a chat tool used largely between small groups of friends and family, and closer to\n the territory of communication platforms like Discord or Slack.\n

\n\n

\n We noticed that large public groups started to emerge revolving around certain communities\n of users that shared some commonality. That commonality could be anything: perhaps they all\n use the same language, or they all relate to a particular area of interest, or they all\n relate to a particular project. In this sense, these informal communities are a bit\n like Discord servers.\n

\n\n

\n Furthermore, a community may wish to restict and control its membership creating private\n communities. We see this as an important step for the future monetization of OpenChat as it enables\n us to easily support its use as an internal communication tool\n within a corporate setting. In that sense, communities can also be thought of like Slack\n workspaces.\n

\n
\n\n
\n

The problem

\n\n

\n Public groups are great for communities up to a point, but as the community grows we notice\n that the groups become unfocused. This in turn makes them difficult for the owners and\n admins to moderate. And this in turn tends to reduce the quality of the discourse in\n the groups.\n

\n\n

\n If a community leader wishes to address this at the moment they might choose to create\n multiple groups with more targeted topics. But then nothing binds these groups together,\n nothing unites their members, and there is no tooling that helps us see these groups as part\n of a larger whole.\n

\n\n

\n What's missing is another level in the hierarchy and that is what we are calling Communities.\n

\n
\n\n

How will it work?

\n\n
\n

Navigation

\n

\n Essentially, this will just be another organisational layer above the existing level of\n groups. Let's try to visualise this with some proposed designs. Keep in mind that these\n designs are provisional and represent our current thinking. Things can and no doubt will\n change.\n

\n\n \n\n

\n As you can see there will be a new navigation panel on the left that will allow the\n selection of a community. From that point on things remain much as they currently are. A\n community will contain a list of groups and you will also still be able to access the\n threads related to that community's groups.\n

\n\n

\n Of course, everything we do must also work well on mobile. It's a little more challenging\n but we think it can work in much the same way.\n

\n
\n\n
\n

Exploration

\n\n

\n It's important that people are able to categorise and find communities that they might be\n interested in. As such, our current \"What's hot\" page will be replaced by a much more\n feature rich community exploration page.\n

\n\n

\n Communities should be tagged with keywords making it easy both for community owners to reach\n an audience and for users to find communities of interest to them.\n

\n\n \n\n

\n Once you have found a community of interest you will be able to see the details of the\n community including all of the public groups that it contains.\n

\n
\n\n\n\n
\n

Private Communities

\n\n

\n Keep in mind that communities need not be public. The idea of a private community with\n controlled user access might be something that aligns more closely to corporate usage (perhaps\n more similar to a Slack workspace).\n

\n\n

\n The ability to create a private community is very likely to be a paid feature and offers\n OpenChat another important revenue stream.\n

\n
\n\n
\n

Migration

\n\n

\n There are many questions that remain around how we get from where we are to where we want to\n be. Lots of details will still need to be discussed and decided. What will happen to\n existing public groups? What about private groups and direct chats? In general, our vision\n is that all public groups will be converted to communities. The community can then be\n built and sub-divided from there by the owners and admins of the original group as they see fit.\n Private groups and direct chats will remain global.\n

\n
\n\n
\n

The future

\n\n

\n This is just a glimpse of this new feature and we hope that it gets you as excited about the\n future as we are.\n

\n\n

\n We feel like this is an important structural change to OpenChat which will open up a huge\n amount of opportunity for us. It will form the bedrock of our roadmap going forward and help\n us to support powerful community building on the platform in addition to preserving our\n roots as a simple chat app.\n

\n
\n","\n\n
\n

Introduction

\n

\n Now that OpenChat is controlled by an SNS you might be wondering how to take part in the\n governance of OpenChat and earn voting rewards. In this blog post we'll summarise the key\n concepts and also give some step by step guides.\n

\n

\n A good place to start to understand more about SNS DAOs is the article What you need to know about SNS DAOs.\n

\n

\n The dev team beacon neuron id is
\n 9adf350c7388dfe7277213a5fc8d817c2d5bc6ff6be5870f0d33d9d6dab01fc6\n

\n
\n
\n

Neurons

\n

\n CHAT neurons are very similar in their function to ICP neurons. They allow users to\n “time-lock” their CHAT tokens to gain voting power, which can be used to vote on proposals\n submitted to the SNS. Neurons can be made to follow each other in various ways such that\n they vote automatically, representing a form of liquid democracy.\n

\n

\n Users can also dissolve their neurons to release the CHAT tokens inside the neuron.\n

\n \n
\n\n
\n

Proposals

\n

\n Changes to the OpenChat SNS, which include the SNS treasury of ICP and CHAT tokens, the\n various tokenomic parameters, and the OpenChat dapp itself, can only be made by the OpenChat\n SNS governance canister upon successful execution of proposals.\n

\n

\n Other than \"Motion\" proposals all other types result in some automatic action by the SNS\n such as...\n

\n
    \n
  • Transfer ICP or CHAT out of the treasury
  • \n
  • Upgrade an OpenChat canister
  • \n
  • Change SNS meta data such as the \"proposal rejection cost\"
  • \n
  • Call a custom SNS function for example to add a \"platform moderator\"
  • \n
\n

\n Join this group to view, discuss, and vote on\n OpenChat SNS proposals. Press the filter icon to see the full list of proposal types and to filter\n by them.\n

\n

\n Anyone who owns a neuron can use it to make proposals although this currently requires\n knowledge of the command line tools dfx and quill. In time this process should become easier. If a proposal is rejected then 10 CHAT tokens\n are subtracted from the proposing neuron and burned to discourage spam.\n

\n \n
\n
\n

Dev team proposals

\n

\n Before working on a substantial new feature or other change to OpenChat the dev team will\n describe their plan as a message in the OpenChat Governance group. This is gated to CHAT neuron holders and we invite anyone\n who plans to submit a proposal, to introduce it here first for discussion.\n

\n

\n Having talked through the feature and explored different options we can then use a poll\n message with the various options and members can vote. Once some sort of consensus has been\n reached we will make a motion proposal describing the change and the SNS DAO can decide\n whether we should go ahead with it. Later on when the feature/change has been coded we will\n make an upgrade proposal for each canister affected.\n

\n

\n Alongside substantial features/changes the dev team will also work on smaller features/fixes/code\n improvements/changes on our own initiative without necessarily go through the above procedure.\n Of course all changes to the dapp ulitmately need to be made using upgrade proposals.\n

\n
\n
\n

Voting

\n

\n You can vote to \"adopt\" or \"reject\" any proposals with any eligible neurons you own. This\n allows you take part in the governance of OpenChat and help steer it in a direction of your\n choosing while also earning voting rewards - see bottom section. To be eligible to vote on a\n given proposal a neuron must exist and have a dissolve delay of at least 1 month at the time\n the proposal was made.\n

\n

\n For any given proposal, your percentage vote contribution is calculated as the ratio of the voting power\n of your neurons compared to all other eligible neurons. Voting power for a neuron is calculated\n as (stake x dissolve delay bonus x age bonus). The dissolve delay bonus starts at 1 for a neuron\n with 0 dissolve delay and rises linerarly to 2 for neurons with a dissolve delay of 1 year. The\n age bonus starts at 1 for neurons with 0 age, climbing to 1.25 for neurons with an age of 6 months.\n To age a neuron must be kept in the undissolving state but as soon it starts dissolving\n the age resets to 0. For example if you have a neuron with a stake of 1000 CHAT tokens, a dissolve\n delay of 1 year, and an age of 6 months its voting power will be 2500.\n

\n

\n For a proposal to be adopted the sum of the voting power of the “adopt” votes must exceed\n the sum of the voting power of the “reject” votes after 4 days or after a period of quiet.\n Also the “adopt” votes must have at least 3% of the total voting power. The vote will end\n immediately if either the “adopt” or “reject” votes exceed 50% of available voting power. It\n is possible to participate in a vote for a proposal if still within the 4 day period even if\n it has already been resolved. This is so the neuron can still be a beneficiary of voting\n rewards.\n

\n
\n
\n

Vote using OpenChat

\n

\n At the time of writing the easiest way to vote is from within OpenChat. Coming soon it will\n also be possible to vote from the NNS dapp. If you took part in the decentralization sale\n using the NNS dapp your CHAT neurons will be controlled by your NNS dapp principal.\n Before you can vote on OpenChat you must first configure your OpenChat User Id as a\n hot-key for your neurons. In the future, if you end up buying more CHAT tokens and staking\n them into new neurons, remember to add the OpenChat User Id as a hot-key to these neurons too.\n To find your OpenChat User Id...\n

\n
    \n
  • Launch the app and open the main menu
  • \n
  • Select \"profile settings\"
  • \n
  • \n At the bottom of the your \"profile settings\" you should find an \"Advanced\" section\n showing your User Id\n
  • \n
\n \n

\n If you took part in the decentralization sale your neurons are configured to follow\n the neuron with the longest dissolve delay which means if you vote with that neuron the other\n neurons will implicitly vote the same way. This also means you only need to add your OpenChat\n User Id as a hot-key to this one neuron and the rest will follow.\n

\n
    \n
  • \n Sign-in to the NNS dapp and\n navigate to \"My Neuron Staking\"\n
  • \n
  • \"Select Nervous System\" OpenChat
  • \n
  • If your neurons are configured to follow your oldest neuron then select that neuron
  • \n
  • At the bottom of the neuron page press the button \"Add Hotkey\"
  • \n
  • At the prompt paste in your OpenChat User Id
  • \n
\n

\n If your neurons aren't already configured to follow your oldest neuron, then either do that\n first, or instead you can add your OpenChat User Id as a hotkey to each of your neurons.\n

\n \n
\n
\n

Following

\n

\n You can either vote explicitly on each proposal or you can choose for your neurons to follow another neuron. This means your neurons will automatically vote when it does.\n

\n

\n For a given neuron you can choose to follow different neurons for different topics. You can\n also choose to follow a neuron on the so-called \"Unspecified\" topic which is a catch-all\n meaning follow this neuron on all topics. It is also possible to follow multiple neurons\n on the same topic. In this case your neuron will vote only when a majority of the neurons you\n follow on that topic vote the same way.\n

\n

\n It is possible to configure topic exclusions in a slightly quirky manner. This\n allows a neuron to follow another on the catch-all topic but exclude certain topics so that\n the user can vote for themselves. For example a reasonable choice might be to follow the\n OpenChat dev team beacon neuron (see below) on the catch-all but exclude motions, token\n transfers and SNS parameter changes. To exclude a particular topic you can configure your\n neuron to follow itself on this topic. This works because the explicit following relationship\n overrides the implicit catch-all and by using your own neuron id you ensure you are following\n no other neuron.\n

\n

\n Going forwards we hope that rather than every SNS \"action\" being mapped 1-1 to a topic, the\n actions can be grouped into topics. This will make it easier to configure following. We also\n hope it will be possible to have something like \"named\" neurons in the NNS.\n

\n

\n As mentioned earlier, if you have multiple neurons it is good practice to set the younger\n ones (in this case meaning lower dissolve delay) to follow your eldest. The easiest way to\n do this is to use the catch-all topic. Then you only need to setup a more nuanced following\n scheme on your eldest neuron.\n

\n \n
\n
\n

Dev team beacon neuron

\n

\n The dev team have configured a small neuron to be a \"beacon\" which anyone is welcome to\n follow on any topic. This beacon neuron will itself follow the neurons of each member of the\n dev team and so will implicitly vote when a majority of the dev team vote the same way. The\n dev team will vote on every proposal so if you are happy to follow their lead you will\n implicitly participate in every vote and so maximise your voting rewards.\n

\n

\n The dev team beacon neuron id is
\n 9adf350c7388dfe7277213a5fc8d817c2d5bc6ff6be5870f0d33d9d6dab01fc6\n

\n

\n Having set the beacon neuron to follow the dev team neurons we removed its controller making\n it immutable and unable to vote itself.\n

\n
\n
\n

Voting rewards

\n

\n Voting rewards are generated by the SNS and accumulate in neurons that have participated in\n voting as maturity. For a given proposal ballot, the voting reward earned by a\n given neuron is in proportion to its voting power compared to the overall voting power of\n participating neurons. This encourages token holders to lock-up their tokens and take a long\n term interest in the success of OpenChat.\n

\n

\n Maturity can be disbursed causing the SNS to mint CHAT into the given account\n according to maturity modulation. Alternatively it can be staked or auto-staked to grow the value of the neuron.\n

\n

\n Voting rewards are distributed daily and take into account all of the ballots that ended on\n that day. If there are no proposal ballots on a given day the rewards are carried over to\n the following day. 2.5% of the total token supply is generated annually for voting rewards.\n In practice, given that much of the supply will not be in voting neurons, a neuron with a 1\n year dissolve delay would expect to receive a voting reward significantly higher than this\n figure.\n

\n

\n Note that if you fail to vote on any proposal you will not earn voting rewards for that\n proposal so if you anticipate you won't be able to vote manually on every proposal it is\n worth configuring your neurons to follow other neurons you can trust.\n

\n
\n","\n\n
\n
\n
\n
\n
OpenChat
\n
\n {#if $mobileWidth}\n \n
\n \n \n \n
\n
\n \n
\n
\n {:else}\n
\n \n
\n {/if}\n
\n
\n\n\n","\n\n
\n OpenChat blog\n\n {#each posts as post}\n \n {/each}\n
\n\n\n","\n\n
\n
\n {title}\n
\n \n
\n
\n
\n {`by ${author}, on ${posted.toLocaleDateString()}`}\n
\n
\n\n\n","\n\n\n\n{#if $identityState.kind === \"registering\"}\n \n \n \n{/if}\n\n{#if $framed}\n \n{:else}\n {#if showMenu}\n
\n {/if}\n\n
\n {#if $pathParams.kind === \"features_route\"}\n \n {:else}\n \n {#if isBlogRoute($pathParams)}\n {#if $pathParams.slug !== undefined}\n {#await import(\"./BlogPostPage.svelte\")}\n
\n \n
\n {:then { default: BlogPostPage }}\n \n {/await}\n {:else}\n \n {/if}\n {:else if isRoadmapRoute($pathParams)}\n {#await import(\"./RoadmapPage.svelte\")}\n
\n \n
\n {:then { default: RoadmapPage }}\n \n {/await}\n {:else if isWhitepaperRoute($pathParams)}\n {#await import(\"./WhitepaperPage.svelte\")}\n
\n \n
\n {:then { default: WhitepaperPage }}\n \n {/await}\n {:else if isArchitectureRoute($pathParams)}\n {#await import(\"./ArchitecturePage.svelte\")}\n
\n \n
\n {:then { default: ArchitecturePage }}\n \n {/await}\n {:else if isGuidelinesRoute($pathParams)}\n {#await import(\"./GuidelinesPage.svelte\")}\n
\n \n
\n {:then { default: GuidelinesPage }}\n \n {/await}\n {:else if isTermsRoute($pathParams)}\n {#await import(\"./TermsPage.svelte\")}\n
\n \n
\n {:then { default: TermsPage }}\n \n {/await}\n {:else if isFaqRoute($pathParams)}\n {#await import(\"./FAQPage.svelte\")}\n
\n \n
\n {:then { default: FAQPage }}\n \n {/await}\n {:else if isDiamondRoute($pathParams)}\n {#await import(\"./DiamondPage.svelte\")}\n
\n \n
\n {:then { default: DiamondPage }}\n \n {/await}\n {:else}\n client.login()} />\n {/if}\n
\n {/if}\n
\n{/if}\n\n\n","\n\n
\n
\n \n
\n

powered by OpenChat

\n
\n \n
\n
\n\n\n","\n\n\n\n{#if showLandingPage}\n \n{:else if showLoader}\n
\n
\n \n
\n
\n{:else}\n \n{/if}\n\n\n","\n\n\n\n dispatch(\"close\")} />\n","\n\n{#if route !== undefined}\n {@const RouteComponent = route}\n \n{/if}\n","\n\n
\n
\n \n
\n
\n
\n \n
\n
\n\n\n","\n\n\n

\n\n
\n \n
\n
\n\n\n","\n\n{#if showBanner}\n
\n
\n \n \n \n \n
\n
\n{/if}\n\n\n","class ProfileLink extends HTMLElement {\n constructor() {\n super();\n }\n get text() {\n return this.getAttribute(\"text\") || \"\";\n }\n set text(value) {\n this.setAttribute(\"text\", value);\n this.textContent = `@${value}`;\n }\n get userId() {\n return this.getAttribute(\"user-id\") || \"\";\n }\n set userId(value) {\n this.setAttribute(\"user-id\", value);\n }\n get suppressLinks() {\n return this.getAttribute(\"suppress-links\") === \"true\";\n }\n set suppressLinks(value) {\n this.setAttribute(\"suppress-links\", value.toString());\n }\n // Called when the element is connected to the DOM\n connectedCallback() {\n const template = document.querySelector(\"#profile-link-template\");\n const instance = document.importNode(template.content, true);\n this.appendChild(instance);\n this.setAttribute(\"style\", template.style.cssText);\n this.textContent = `@${this.text}`;\n // Add a click event listener to raise the custom event\n if (!this.suppressLinks) {\n this.addEventListener(\"click\", () => {\n const event = new CustomEvent(\"profile-clicked\", {\n detail: {\n userId: this.userId,\n chatButton: true,\n inGlobalContext: false,\n },\n bubbles: true,\n });\n this.dispatchEvent(event);\n });\n }\n }\n}\n// Define the custom element tag name\ncustomElements.define(\"profile-link\", ProfileLink);\nexport {};\n","\n\n\n {details.title}\n \n \n \n \n \n \n\n","\n\n{#if $mobileWidth}\n {#if $activeVideoCall?.status === \"joined\"}\n \n
\n \n \n \n
\n
\n \n {#if !$hasPresence}\n \n \n \n \n {/if}\n {#if $activeVideoCall?.messageId !== undefined && $activeVideoCall.chatId.kind !== \"direct_chat\"}\n \n \n \n \n {/if}\n {#if chat.chatId && chat.messageIndex !== undefined}\n \n \n \n \n {/if}\n \n \n \n \n \n \n \n \n \n
\n
\n {/if}\n{:else}\n
\n {#if !$hasPresence && $activeVideoCall?.status !== \"joining\"}\n \n \n \n {/if}\n {#if $activeVideoCall?.messageId !== undefined && $activeVideoCall.chatId.kind !== \"direct_chat\"}\n \n \n \n {/if}\n {#if chat.chatId && chat.messageIndex !== undefined}\n \n \n \n {/if}\n \n \n \n \n \n \n \n \n \n
\n{/if}\n\n\n","\n\n\n
\n {#if $mobileWidth}\n \n \n \n {#if $rtlStore}\n \n {:else}\n \n {/if}\n \n
\n {/if}\n
\n {#if $activeVideoCall?.status === \"joining\"}\n
\n \n
\n {:else}\n
\n \n
\n {/if}\n

{chat.name}

\n {#if $activeVideoCall?.status === \"joining\"}\n \n {/if}\n
\n\n \n
\n\n\n\n","\n\n{#if confirmSwitchTo}\n \n{/if}\n\n{#if hostEnded}\n \n \n {#snippet body()}\n
\n \n
\n {/snippet}\n {#snippet footer()}\n \n \n \n {/snippet}\n
\n
\n{/if}\n\n{#if denied}\n \n \n {#snippet body()}\n
\n \n
\n {/snippet}\n {#snippet footer()}\n \n \n \n \n \n {/snippet}\n
\n
\n{/if}\n\n\n {#if chat !== undefined}\n \n {/if}\n
\n
\n\n\n","\n\n{#each requests as request, i}\n \n
\n \n
\n \n \n \n
approve(request)} class=\"btn\">\n \n
\n \n \n
reject(request)} class=\"btn\">\n \n
\n \n{/each}\n\n\n","\n\n{#if chat !== undefined}\n {#if !isOnAnotherCall}\n \n {/if}\n\n \n \n {#snippet body()}\n \n
\n
\n \n
\n
\n
\n {chat.name}\n
\n
\n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n \n \n
\n
\n \n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n {/snippet}\n
\n
\n{/if}\n\n\n","\n\n{#if show && !dismissed && !$isLoading}\n \n \n {#snippet header()}\n
\n \n
\n {/snippet}\n {#snippet body()}\n
\n
\n \n
\n \"add\n
\n \n \n
\n
\n {/snippet}\n
\n
\n{/if}\n\n\n","\n\n{#if !$anonUser && $notificationStatus === \"prompt\"}\n \n \n {#snippet header()}\n \n {/snippet}\n {#snippet body()}\n \n {/snippet}\n {#snippet footer()}\n \n \n \n \n {/snippet}\n \n \n{/if}\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n//@ts-ignore\nBigInt.prototype.toJSON = function () {\n return this.toString();\n};\nimport \"svelte\";\nimport { mount } from \"svelte\";\nimport App from \"./components/App.svelte\";\nconst app = mount(App, { target: document.body });\nexport default app;\n","\n\n{#if $currentTheme.burst || landingPageRoute}\n \n \n{/if}\n\n\n\n page(routeForScope($chatListScope))}\n bind:this={videoCallElement} />\n\n\n\n\n\n\n\n\n\n\n\n{#if isCanisterUrl}\n \n{:else if upgrading}\n \n{:else if $identityState.kind === \"anon\" || $identityState.kind === \"logging_in\" || $identityState.kind === \"registering\" || $identityState.kind === \"logged_in\" || $identityState.kind === \"loading_user\" || $identityState.kind === \"challenging\"}\n {#if !$isLoading || $reviewingTranslations}\n \n {/if}\n{/if}\n\n{#if profileTrace}\n \n{/if}\n\n\n\n{#if $snowing}\n \n{/if}\n\n\n menuStore.hideMenu()} />\n\n\n","\n\n\n
\n

\n

\n
\n
\n
\n\n\n","\n\n\n\n
\n \n\n {#if selectedMethod !== \"\"}\n
\n
\n Avg: {average.toFixed(2)}ms\n
\n
\n Min: {min.toFixed(2)}ms\n
\n
\n Max: {max.toFixed(2)}ms\n
\n
\n\n
\n \n \n \n \n \n
\n {/if}\n
\n\n\n","\n\n
\n {#each flakes as _}\n
\n \n
\n {/each}\n
\n\n\n"],"names":["configKeys","locale","profile","primeCacheLimit","primeCacheBatchSize","lastCryptoSent","fontSize","enterSend","chitPopup","hideChitIcon","disableChit","showHomeScreenPrompt","userInfoSection","appearanceSection","chatsSection","restrictedSection","videoSection","accountSection","referralSection","storageSection","verificationSectionOpen","accountsSectionOpen","userStatsSection","userAdvancedSection","userDeleteAccountSection","groupInfoSection","groupVisibilitySection","groupRulesSection","groupPermissionSection","groupStatsSection","groupInviteUsersSections","groupAdvancedSection","theme","scrollStrategy","selectedAuthProvider","selectedAuthEmail","userCreated","lowBandwidth","renderPreviews","utcMode","videoCameraOn","videoMicOn","videoSpeakerView","dclickReply","shownAirdropPrompt","exploreGroupsDismissed","communityVisibilitySection","communityRulesSection","communityPermissionSection","communityStatsSection","communityAdvancedSection","communityInviteUsersSections","referredUsersOpen","browseChannels","useBlockLevelMarkdown","hideTokenBalances","isLeafGate","gate","kind","shouldPreprocessGate","includes","isLocked","undefined","isCompositeGate","isLockedGate","operator","gates","some","every","isNeuronGate","isPaymentGate","isBalanceGate","isCredentialGate","defaultChatRules","level","text","enabled","version","AuthProvider","InMemoryAuthClientStorage","constructor","this","_map","Map","get","key","Promise","resolve","set","value","remove","delete","bigIntMax","args","reduce","m","e","toBigInt64","BigInt","integerRegex","parseBigInt","length","test","userIdsFromEvents","events","fakeFormatter","k","userIds","event","forEach","u","add","sender","repliesTo","senderId","extractUserIdsFromMentions","getContentAsFormattedText","content","id","transfer","recipient","reports","r","reportedBy","transaction","reactions","userId","changedBy","created_by","addedBy","removedBy","blockedBy","unblockedBy","pinnedBy","unpinnedBy","updatedBy","invitedBy","frozenBy","unfrozenBy","console","warn","Set","formatter","cryptoLookup","captionedContent","caption","name","values","token","ledger","symbol","config","proposal","title","notes","UnsupportedValueError","trim","getContentAsText","type","indexRangeForChat","chat","getMinVisibleEventIndex","latestEventIndex","minVisibleEventIndex","getDisplayDate","latestUpdate","dateCreated","membership","joined","latestMessage","timestamp","eventsTtlLastUpdated","compareChats","a","b","Number","compareRoles","routeForMessage","scope","ctx","messageIndex","threadRootMessageIndex","routeForMessageContext","chatId","open","routeForChatIdentifier","prefix","groupId","communityId","channelId","chatIdentifierToString","contentTypeToPermission","contentType","KEY_STORAGE_EMAIL_LINK","KEY_STORAGE_EMAIL_LINK_CONTEXT","buildDelegationIdentity","userKey","sessionKey","delegation","signature","delegations","delegationChain","DelegationChain","fromDelegations","buffer","DelegationIdentity","fromDelegation","toDer","Uint8Array","getPublicKey","KEY_STORAGE_AUTH_PRINCIPAL","KEY_STORAGE_KEY","KEY_STORAGE_DELEGATION","IdentityStorage","dbName","storage","IdbStorage","createForAuthIdentity","createForOcIdentity","authPrincipal","storedAuthPrincipal","chainJson","chain","fromJSON","isDelegationValid","ECDSAKeyIdentity","fromKeyPair","getKeyPair","JSON","stringify","toJSON","OPENCHAT_VIDEO_CALL_USER_ID","OPENCHAT_VIDEO_CALL_AVATAR_URL","OPENCHAT_BOT_USER_ID","OPENCHAT_BOT_AVATAR_URL","MIN_DOWNLINK","ONE_MINUTE_MILLIS","ONE_HOUR","ONE_DAY","LARGE_GROUP_THRESHOLD","offline","navigator","onLine","connection","downlink","rollbar","SafeMap","toString","fromString","map","fn","mapped","entries","v","merge","other","val","filter","agg","clone","empty","clear","keys","size","callbackfn","has","toMap","GlobalMap","super","_","ChatMap","parse","fromList","things","c","fromMap","json","MessageContextMap","CommunityMap","MessageMap","random32","bytes","Uint32Array","crypto","getRandomValues","random64","BigUint64Array","random128","ObjectSet","_set","Array","from","toSet","HEX_REGEX","RegExp","toTitleCase","str","replace","txt","charAt","toUpperCase","substr","toLowerCase","isPrincipalValid","Principal","fromText","_e","isHexString","ValidationErrors","errors","addErrors","isArray","current","push","isAttachmentContent","isTransfer","ProposalDecisionStatus","ProposalRewardStatus","NnsProposalTopic","messageContextsEqual","chatIdentifiersEqual","nullMembership","role","mentions","latestThreads","myMetrics","audioMessages","edits","icpMessages","sns1Messages","ckbtcMessages","giphyMessages","deletedMessages","reportedMessages","fileMessages","pollVotes","textMessages","imageMessages","replies","videoMessages","polls","notificationsMuted","readByMeUpTo","archived","rulesAccepted","lapsed","E8S_PER_TOKEN","ICP_SYMBOL","BTC_SYMBOL","CKBTC_SYMBOL","LEDGER_CANISTER_ICP","LEDGER_CANISTER_CHAT","DEFAULT_TOKENS","Error","msg","NoMeetingToJoin","AnonymousOperationError","applyOptionUpdate","original","update","updateFromOptions","updated","chatRoles","communityRoles","messagePermissionsList","botChatPermissionList","botCommunityPermissionList","CommonResponses","error","Stream","initialiser","subscribed","final","onResult","onEnd","reason","onError","subscribe","subscription","deletedUser","blobUrl","username","displayName","MAX_VALUE","suspended","diamondStatus","chitBalance","streak","isUniquePerson","totalChitEarned","UserStatus","AvatarSize","ANON_USER_ID","ANON_USERNAME","ANON_DISPLAY_NAME","anonymousUser","cryptoAccount","isPlatformModerator","isPlatformOperator","suspensionDetails","isSuspectedBot","moderationFlagsEnabled","isBot","ModerationFlags","Offensive","Adult","UnderReview","missingUserIds","userLookup","missing","mentionRegex","matchAll","userOrUserGroupName","userOrUserGroupId","Version","major","minor","patch","toText","parts","split","parseInt","isGreaterThan","featureRestrictions","gb","achievements","MIN_NAME_LENGTH","MIN_PARAM_NAME_LENGTH","flattenCommandPermissions","definition","commands","p","p1","p2","permissions","chatPermissions","mergeLists","communityPermissions","messagePermissions","l1","l2","hasEveryPermissionOfType","required","granted","g","hasEveryRequiredPermission","grantedSet","perm","emptyBotInstance","ownerId","endpoint","description","registrationStatus","createArgsFromSchema","params","maybeArgs","singleStringParam","join","i","boolVal","toLocaleLowerCase","choices","find","numParam","isNaN","strParam","arg","parseDateTime","now","Date","date","chrono.parseDate","instant","timezone","getTimezoneOffset","forwardDate","getTime","i18nKey","lowercase","validBotComponentName","min","n","validEndpoint","origin","URL","validOrigin","validateBot","principal","bot","mode","validatePrincipal","autonomousConfig","containsDuplicateCommands","command","errorPath","valid","nameErrors","containsDuplicateParams","paramPath","param","validateParameter","validateCommand","commandSupportsDirectMessages","first","rest","directMessages","boolFromLS","def","localStorage","getItem","createLsBoolStore","store","writable","state","setItem","toggle","AIRDROP_BOT_USER_ID","createSetStore","storeValue","ids","addMany","newIds","toAdd","deleteMany","toDelete","airdropBotUser","videoCallBotUser","openChatBotUser","anonymousUserSummary","specialUsers","normalUsers","allUsers","derived","$specialUsers","$normalUsers","all","suspendedUsers","overwriteUser","lookup","user","userStore","users","partitionSuspendedUsers","newUsers","notSuspended","setUpdated","currentUser","currentUserIdStore","$currentUser","anonUser","suspendedUser","platformModerator","platformOperator","setsAreEqual","element","groupWhile","predicate","items","grouped","prev","groups","item","groupBy","keySelector","existing","toRecord","xs","keyFn","toRecord2","x","valFn","toRecordFiltered","valueFn","filterFn","rec","keepMax","keep","max","splice","partition","yes","no","thing","mergeKeepingOnlyChanged","orig","l","Math","res","zip","Object","maybe","ok","ov","uv","immutableStore","createMapStore","insert","updater","recentlySentMessagesStore","window","setInterval","oneMinuteAgo","newMap","unconfirmedReadByThem","unconfirmed","filterMessages","messages","message","revokeObjectURL","revokeObjectUrls","messageIds","messageId","result","s","newState","getMessages","overwriteContent","botContext","blockLevelMarkdown","contains","markAccepted","pendingAcceptance","initialVal","createUnconfirmedStore","networkInformation","addEventListener","removeEventListener","networkOffline","online","offlineStore","$networkInformation","$networkOffline","ephemeralMessages","createEphemeralStore","MessagesRead","readUpTo","threads","dateReadPinned","threadsList","markReadUpTo","index","updateThread","rootIndex","setThreads","t","markReadPinned","messagesRead","serverState","waiting","subscribers","executingBatch","publishRequired","sub","triggerLoop","api","timeout","setTimeout","sendToServer","start","log","onbeforeunload","stop","clearTimeout","req","data","sendMarkReadRequest","catch","err","finally","publish","stateForId","markMessageRead","context","chatState","to","markPinnedMessagesRead","dateLastPinned","confirmMessage","removeUnconfirmedMessage","staleThreadCountForChat","thread","threadReadUpTo","latestMessageIndex","total","local","server","unconfirmedReadCount","staleThreadsCount","forChat","unreadThreadMessageCount","unreadMessageCount","readUpToServer","readUpToLocal","unreadPinned","getFirstUnreadMessageIndex","readUpToConfirmed","unconfirmedMessageIndexes","getFirstUnreadMention","isRead","markAllRead","batchUpdate","syncWithServer","localState","messageActivityFeedReadUpToLocally","networkUnsub","referenceEqual","safeWritable","eq","currentValue","proposed","debug","LocalUpdatesStore","initialValue","pruneLocalUpdates","applyUpdate","updateFn","lastUpdated","deleteKey","newStoreValue","updates","localGlobalUpdates","updateWallet","walletConfig","installBot","botId","installedDirectBots","removedDirectBots","removeBot","nervousSystemLookup","exchangeRatesLookupStore","cryptoBalanceStore","cryptoBalance","balance","record","bitcoinAddress","lastCryptoSentStore","enhancedCryptoLookup","$lookup","$balance","$exchangeRatesLookup","xrICPtoDollar","toUSD","xrBTCtoDollar","xrETHtoDollar","xrDollarToICP","xrDollarToBTC","xrDollarToETH","symbolLower","balanceWholeUnits","pow","decimals","rates","xrUSD","dollarBalance","icpBalance","btcBalance","ethBalance","zero","urlFormat","transactionUrlFormat","serverWalletConfigStore","minDollarValue","walletConfigStore","$serverWalletConfig","$localGlobalUpdates","cryptoTokensSorted","sort","compareTokens","walletTokensSorted","$tokens","$walletConfig","meetsAutoWalletCriteria","tokens","meetsManualWalletCriteria","swappableTokensStore","aNonZero","aDollarBalance","bDollarBalance","defA","indexOf","defB","localeCompare","installedServerDirectBots","$serverBots","$local","localInstalled","localDeleted","directApiKeys","chitStateStore","streakEnds","nextDailyChitClaim","globalStateStore","communities","directChats","groupChats","favourites","pinnedChats","referrals","messageActivitySummary","readUpToTimestamp","latestTimestamp","unreadCount","chatListScopeStore","emptyUnreadCounts","muted","unmuted","mergeUnreadCounts","unreadMessages","counts","increment","videoCallsInProgressForChats","chats","videoCallInProgress","combinedUnreadCountForChats","hasUnreadMentions","unreadThreads","mergeCombinedUnreadCounts","mergePairOfUnreadCounts","mergeListOfCombinedUnreadCounts","count","mergePairOfCombinedUnreadCounts","unreadGroupCounts","$global","_$messagesRead","groupVideoCallCounts","unreadDirectCounts","unreadActivityCount","readUpToLocally","directVideoCallCounts","getAllServerChats","global","channels","flatMap","allServerChats","unreadFavouriteCounts","allChats","favouritesVideoCallCounts","communityChannelVideoCallCounts","community","unreadCommunityChannelCounts","globalUnreadCount","$groupCounts","$directCounts","$communities","setGlobalState","chitState","installedBots","apiKeys","direct","group","channelsByCommunityId","partitionChats","curr","acc","setDataForCommunity","updateDataForCommunity","createDerivedPropStore","prop","next","storeVal","initialised","$store","nextValue","localCommunitySummaryUpdates","removedBots","updateIndex","updateDisplayName","updateRulesAccepted","markAdded","summary","added","removedAtTimestamp","markRemoved","hasOwnerRights","isPermitted","permissionRole","canEditCommunity","updateDetails","canCreatePublicChannel","createPublicChannel","canCreatePrivateChannel","createPrivateChannel","canManageUserGroups","manageUserGroups","canChangeCommunityPermissions","isCommunityLapsed","canDeleteCommunity","canBlockUsers","public","removeMembers","canUnblockUsers","canInviteUsers","inviteUsers","canRemoveMembers","communityPreviewsStore","removeCommunityPreview","summaries","$globalStateStore","$localUpdates","$previews","merged","localUpdates","localUpdate","mergeLocalUpdates","userGroupSummaries","userGroups","ug","communitiesList","memberCount","communityStateStore","init","byCommunity","$chatListScope","$all","getProp","updateProp","setProp","createCommunitySpecificObjectStore","members","blockedUsers","lapsedMembers","invitedUsers","rules","bots","selectedCommunity","currentServerCommunityBots","currentCommunityBots","$community","currentCommunityApiKeys","currentCommunityUserGroups","currentCommunityMembers","currentCommunityBlockedUsers","currentCommunityLapsedMembers","currentCommunityReferrals","currentCommunityInvitedUsers","currentCommunityRules","nextCommunityIndex","formatLastOnlineDate","lastOnline","secondsSinceLastOnline","minutesSinceLastOnline","floor","durationText","duration","hoursSinceLastOnline","daysSinceLastOnline","buildUsernameList","myUserId","maxUsernames","includesMe","usernamesArray","slice","uid","usernames","nullUser","compareUsername","u1","u2","sensitivity","compareIsNotYouThenUsername","yourUserId","u1IsYou","userAvatarUrl","dataContent","getStartOfToday","year","getFullYear","month","getMonth","day","getDate","getStartOfDay","addDays","days","copy","setDate","toDateString","toLocaleDateString","toLongDateString","weekday","dayOfMonth","ordinal","getOrdinal","shortTimeFormatters","toShortTimeString","Intl","DateTimeFormat","hour","minute","hourCycle","format","rtcConnectionsManager","connections","sendMessage","connectionIds","connectionId","conn","send","_mobile","isMobileDevice","cacheConnection","myConnectionId","theirConnectionId","on","onMessage","getIceServers","meteredApiKey","fetch","then","resp","userAgent","getMyConnectionId","me","_peer","iceServers","Peer","_id","peer","reconnect","unsubscribe","exists","create","them","connect","serialization","disconnectFromUser","defaultDecimalSeparator","validateTokenInput","powTenPerWhole","replacementText","amount","decimalSeparatorsRegex","integral","integralString","fractionalString","replaceText","fractional","validateInput","formatTokens","decimalSeparatorOverride","fullPrecision","units","maxSignificantFigures","unitsPerWhole","decimalSeparator","NumberFormat","formatToParts","part","padStart","maxFractionalDecimalPlaces","substring","significantFigures","indexToRemove","minDecimalPlaces","tallyKey","governanceCanisterId","proposalId","proposalTallies","setTally","tally","MAX_RTC_CONNECTIONS_PER_CHAT","MERGE_MESSAGES_SENT_BY_SAME_USER_WITHIN_MILLIS","isPreviewing","isLapsed","isFrozen","frozen","getUsersToMakeRtcConnectionsWith","blocked","activeUsers","maxUsers","isUpToDate","tenMinsAgo","activeUser","activeUserIdFromEvent","getRecentlyActiveUsers","makeRtcConnections","getMembersString","memberIds","unknownUser","you","compareUsersFn","truncate","sorted","createMessage","replyingTo","forwarded","tips","edited","deleted","mentionsFromMessages","messageMentionsUser","eventIndex","scopeMatchesChat","mergeLocalSummaryUpdates","mergedGate","gateConfig","mergePermissions","expiry","eventsTTL","mergeUnconfirmedIntoSummary","chatSummary","translations","currentUserId","messageFilters","unconfirmedMessages","incomingMentions","incoming","m1","m2","latestUnconfirmedMessage","translation","senderBlocked","failedMessageFilter","doesMessageFailFilter","unconfirmedMsgs","msgIdx","evtIdx","mergeUnconfirmedThreadsIntoSummary","changeRoles","updateGroup","addMembers","deleteMessages","pinMessages","reactToMessages","mentionAllMembers","startVideoCall","mergeMessagePermissions","threadPermissions","mergeThreadPermissions","default","image","video","audio","file","poll","giphy","prize","memeFighter","p2pSwap","sameUser","abs","groupBySender","groupEvents","expandedDeletedMessages","groupInner","timeline","dayGroup","flattenTimeline","sameDate","isEventKindHidden","getLatestAggregateEventIfExists","latest","previous","newEvent","hidden","messageIsHidden","usersJoined","usersLeft","rolesChanged","messagesDeleted","pop","changedByMap","alreadyChanged","usersToAdd","newRoleSet","newRole","reduceJoinedOrLeft","groupMessagesByDate","left","right","containsReaction","reaction","mergeServerEvents","newEvents","messageContext","sourceContext","updateReplyContexts","output","distinctBy","sortByTimestampThenEventIndex","serialiseMessageForRtc","messageEvent","updatePollContent","votes","vote","answerIdx","answerIndex","removeVoteFromPoll","addVoteToPoll","updatedVotes","allowMultipleVotesPerUser","previousVote","canImportToCommunity","canChangePermissions","canDeleteOtherUsersMessages","canEditGroupDetails","canPinMessages","canAddMembers","permittedMessagesInGroup","canSendGroupMessage","PERMISSIONS_BLOCKED_FOR_NEW_USERS","permission","mp","permittedMessagesInDirectChat","proposalsBotUserId","canSendDirectMessage","canReactToMessages","canMentionAllMembers","canLeaveGroup","canDeleteGroup","canConvertToCommunity","canChangeVisibility","mergeChatMetrics","metricsEqual","same","canForward","buildUserAvatarUrl","pattern","avatarId","buildBlobUrl","buildIdenticonUrl","canisterId","blobId","blobType","Identicon","md5","margin","mergeEventsAndLocalUpdates","expiredEventRanges","recentlySentMessages","eventIndexes","DRange","confirmedMessageIds","processEvent","replyContextUpdates","replyTranslation","tallyUpdate","repliesToSenderBlocked","unconfirmedAdded","subranges","low","high","sortFn","recentlySent","aTimestampOverride","bTimestampOverride","createMessageSortFunction","filters","f","regex","replyContextLocalUpdates","deletedBy","hiddenMessageRevealed","cancelledReminder","editedContent","linkRemoved","undeletedContent","revealedContent","prizeClaimed","winners","prizesPending","prizesRemaining","p2pSwapStatus","status","localReaction","applyLocalReaction","mergeLocalTips","threadSummary","participantIds","followedByMe","numberOfReplies","latestEventTimestamp","applyTranslation","findMessageById","buildTransactionUrl","buildTransactionUrlByIndex","blockIndex","transactionIndex","buildCryptoTransferText","tokenDetails","amountE8s","receiver","stopTyping","currentChatUserIds","startTyping","getTypingString","typing","typers","number","getMessageText","diffGroupPermissions","diff","diffMessagePermissions","threadPermissionsDiff","isProposalsChat","subtype","storageKeyPrefix","SnsFunctions","_functionsMap","_loaded","snsCanisterId","fromStorage","list","functions","toStorage","snsFunctions","fs","FilteredProposals","_canisterId","_messageState","_filters","filteredProposals","hasFilter","topic","isCollapsed","action","isFiltered","toggleFilter","enableAll","disableAll","toggleMessageExpansion","expand","currState","filteredProposalsStore","modifyFilteredProposals","fp","enableAllProposalFilters","disableAllProposalFilters","toggleProposalFilter","toggleProposalFilterMessageExpansion","setDataForChat","updateDataForChat","localMessageUpdates","markCancelled","revertCancelled","markDeleted","markUndeleted","markContentRevealed","markBlockedMessageRevealed","setBlockLevelMarkdown","markContentEdited","revertEditedContent","markLinkRemoved","revertLinkRemoved","markReaction","markTip","obj","prototype","hasOwnProperty","call","isEmpty","markPrizeClaimed","setP2PSwapStatus","markPollVote","markThreadSummaryUpdated","threadRootMessageId","summaryUpdates","localChatSummaryUpdates","favourite","favourited","unfavourited","unfavourite","pin","pinned","unpinned","unpin","markUpdated","createMessageContextSpecificObjectStore","updateDataForMessageContext","setDataForMessageContext","newValue","failedMessagesStore","messageIdString","initialise","createFailedMessagesStore","translationStore","translate","untranslate","messageFiltersStore","draftMessagesStore","setTextContent","textContent","setAttachment","attachment","setEditing","editingEvent","setReplyingTo","createDraftMessages","currentScope","selectedMessageContext","selectedThreadRootMessageIndex","$messageContext","selectedChatId","chatStateStore","byChat","$selectedChatId","createChatSpecificObjectStore","membersMap","pinnedMessages","userGroupKeys","confirmedEventIndexesLoaded","serverEvents","serverEventsStore","currentServerChatBots","currentChatBots","$chatId","currentChatApiKeys","focusMessageIndex","focusThreadMessageIndex","currentChatRules","currentChatMembers","currentChatMembersMap","currentChatLapsedMembers","currentChatBlockedUsers","currentChatInvitedUsers","currentChatPinnedMessages","expiredEventRangesStore","hideMessagesFromDirectBlocked","currentChatBlockedOrSuspendedUsers","chatBlocked","communityBlocked","directBlocked","hideBlocked","favouritesStore","mergedFavs","pinnedChatsStore","mergedPinned","unshift","myServerChatSummariesStore","$allState","$scope","$favourites","favs","uninitializedDirectChats","groupPreviewsStore","serverChatSummariesStore","previews","communityPreviews","concat","$direct","$group","$localSummaryUpdates","reduced","chatSummariesStore","localSummaryUpdates","blockedOrSuspendedUsers","$currentUserId","$messageFilters","chatSummariesListStore","pinnedByScope","findIndex","userMetrics","$chats","chatsLoading","chatsInitialised","selectedServerChatStore","$serverChats","selectedChatStore","$chatSummaries","nextEventAndMessageIndexesForThread","maxEvtIdx","maxMsgIdx","evt","sortByIndex","nextEventAndMessageIndexes","localMessages","lastUnconfirmed","getNextEventAndMessageIndexes","isProposalGroup","$selectedChat","threadsByChatStore","threadsFollowedByMeStore","threadsByChat","proposalTopicsStore","$snsFunctions","isNns","snsFunctionsMap","numberOfThreadsStore","ts","threadServerEventsStore","threadEvents","$serverEvents","$unconfirmed","$failedMessages","$proposalTallies","$translationStore","$blockedOrSuspendedUsers","$recentlySentMessagesStore","$ephemeralMessages","failed","confirmedThreadEventIndexesLoadedStore","ranges","confirmedEventIndexesLoadedStore","selected","setSelectedChat","clientChat","serverChat","threadMessageIndex","listNervousSystemFunctions","clearSelectedChat","resetFilteredProposalsStore","newSelectedChatId","addGroupPreview","removeUninitializedDirectChat","removeGroupPreview","eventsStore","$serverEventsForSelectedChat","$localMessageUpdates","$expiredEventRanges","failedForChat","isContiguousInternal","range","indexes","minIndex","maxIndex","end","contiguousCheck","isContiguous","intersect","currentChatDraftMessage","draftMessages","currentChatTextContent","currentChatReplyingTo","currentChatAttachment","currentChatEditingEvent","isTyping","usersTyping","userTyping","_delete","existingEntry","byContext","$users","undeletingMessagesStore","identityState","pinNumberRequiredStore","capturePinNumberStore","pinNumberFailureStore","captureRulesAcceptanceStore","selectedAuthProviderStore","NFID","stored","initial","enm","enumFromStringValue","authProvider","createStore","isDiamond","$diamondStatus","expiresAt","isLifetimeDiamond","MONTH_IN_MS","YEAR_IN_MS","canExtendDiamond","diamondDurationToMs","moderationFlags","hasFlag","mask","flag","flags","localStorageKey","throttleDeadline","mostRecentStore","checkTimes","diamond","times","maxMessagesPerMinute","getMaxMessagesPerMinute","withinLastMinute","throttled","timeToWait","notificationsSupported","softDisabledStore","browserPermissionStore","setSoftDisabled","softDisabled","notificationStatus","browserPermission","isAnonUser","permissionToStatus","async","askForNotificationPermission","Notification","requestPermission","profileStore","capture","newStream","shift","ONE_GB","ONE_MB","storageStore","byteLimit","bytesUsed","updateStorageLimit","limit","percentageStorageUsed","$storageStore","ceil","percentageStorageRemaining","remainingStorage","storageInGb","gbLimit","gbUsed","getMessagePermissionsForSelectedChat","messagePermissionsForSelectedChat","$chat","$userStore","$user","threadPermissionsForSelectedChat","externalBots","minutesOnlineStore","gaTrack","category","label","gtag","showTrace","background","readable","document","visibilityState","setVisibility","Poller","interval","idleInterval","immediate","stopped","statusStore","$background","$offlineStore","unsubscribeStatus","runnerId","Symbol","timeoutId","firstInterval","lastExecutionTimestamp","runThenLoop","_err","LoadedNewMessages","CustomEvent","detail","SendMessageFailed","alert","LoadedPreviousMessages","initializing","ReactionSelected","RemoteVideoCallEndedEvent","RemoteVideoCallStartedEvent","currentUserIsParticipant","participants","VideoCallMessageUpdated","SendingMessage","SentMessage","LoadedMessageWindow","initialLoad","ChatUpdated","ChatsUpdated","Event","SelectedChatInvalid","UserSuspensionChanged","ThreadSelected","threadRootEvent","initiating","ThreadClosed","UserLoggedIn","ChitEarnedEvent","earned","SummonWitch","CreatePoll","CreateTestMessages","SearchChat","search","AttachGif","TokenTransfer","RegisterBot","UpdateBot","CachePrimer","userCanisterLocalUserIndex","onVideoStart","onVideoEnded","pending","runner","processChats","lastUpdatedTimestamps","getCachePrimerTimestamps","shouldEnqueueChat","callback","requestIdleCallback","runOnceIdle","processNextBatch","getNextBatch","localUserIndex","batch","responses","getEventsBatch","request","response","callType","ended","getUsers","updatedSince","localUserIndexForBatch","getEventsArgs","latestKnownUpdate","eventIndexRange","MAX_MESSAGES","firstUnreadMessage","midPoint","ascending","startIndex","requests","chatEventsBatch","cachedLocalUserIndexForCommunity","RecentlyActiveUsersTracker","track","consume","lastActive","lastOnlineDates","expired","createLastOnlineDatesStore","recommendedGroupExclusions","userCreatedStore","dataToBlobUrl","blob","Blob","createObjectURL","unitTypes","unitType","showDecimal","toFixed","calculateMediaDimensions","parentWidth","containerPaddingWidth","windowHeight","maxWidthFraction","ratio","height","width","availWidth","availHeight","THUMBNAIL_DIMS","dimensions","MAX_DIMENSIONS","FREE_MAX_SIZES","DIAMOND_MAX_SIZES","changeDimensions","mimeType","originalDimensions","newDimensions","toScale","maxDimensions","aspectRatio","maxAspectRatio","scaleToFit","canvas","createElement","getContext","drawImage","toBlob","reader","FileReader","url","toDataURL","readAsArrayBuffer","fillMessage","audioRecordingMimeType","MediaRecorder","isTypeSupported","messageContentFromFile","reject","onload","target","isImage","isGif","isVideo","isAudio","isFile","maxSizes","byteLength","extract","img","Image","src","extractImageThumbnail","stripMetaDataAndResize","blobData","thumbnailData","thumb","attempts","loop","clearInterval","currentTime","videoWidth","videoHeight","extractVideoThumbnail","imageData","videoData","fileSize","twitterLinkRegex","youtubeRegex","spotifyRegex","isSocialVideoLink","match","matchesLink","isYoutubeLink","containsSocialVideoLink","containsLink","containsYoutubeLink","findChatByChatType","filterWebRtcMessage","fromChat","selectedChat","isBlockedUser","hydrateBigIntsInContent","feeE8s","durationFromMilliseconds","seconds","minutes","hours","pad","num","formatDuration","ms","formatTimeRemaining","deadline","excludeDays","time","startsIn","defaultFormatter","RelativeTimeFormat","numeric","formatters","en","timeDivisions","POSITIVE_INFINITY","trackEvent","eventName","Usergeek","poller","checkServiceWorker","reg","serviceWorker","getRegistration","LiveState","anon","mod","confirmedThreadEventIndexesLoaded","serverChatSummaries","myServerChatSummaries","chatSummaries","groupPreviews","selectedServerChat","chatSummariesList","threadsFollowedByMe","chatListScope","globalState","pinNumberRequired","capturePinNumber","indexIsInRanges","isDisplayNameValid","startsWith","endsWith","isUsernameValid","iiWindow","eventHandler","reqId","INTERRUPT_CHECK_INTERVAL","cleanUp","close","checkInterruption","closed","verifyCredential","iiUrl","issuerOrigin","issuerCanisterId","credentialType","credentialArguments","derivationOrigin","pathname","onSuccess","ev","method","jsonrpc","issuer","credentialSubject","credentialSpec","arguments","postMessage","verifiablePresentation","getEventHandler","URL_REGEX","LINK_REMOVED","LINK_REMOVED_REGEX","stripLinkDisabledMarker","extractEnabledLinks","extractLinkUrls","preview","disableLinksInText","urls","links","matches","extractUrls","applyTranslationCorrection","addMessages","expanded","keyParts","nestedKey","toLocaleDictionary","getUserCountryCode","retries","delay","statusText","country_code","primaryErr","BASE_URL","ip","country_code2","secondaryApi","secondaryErr","createWebAuthnIdentity","saveKeyInCacheFn","opts","rpId","getHours","getMinutes","suffix","authenticatorSelection","userVerification","requireResidentKey","excludeCredentials","challenge","pubKeyCredParams","alg","rp","webAuthnCreationOptions","credential","credentials","publicKey","attestationObject","attObject","borc","decodeFirst","authenticatorAttachment","identity","WebAuthnIdentity","rawId","authData","dataView","DataView","ArrayBuffer","idLenBytes","setUint8","credentialIdLength","getUint16","authDataToCose","aaguid","getAuthenticatorData","credentialId","crossPlatform","MultiWebAuthnIdentity","SignIdentity","lookupPubKeyFn","_actualIdentity","innerIdentity","sign","options","pubkey","unwrapDER","DER_COSE_OID","cbor","encode","Tagged","authenticator_data","authenticatorData","client_data_json","TextDecoder","decode","clientDataJSON","SESSION_TIMEOUT_NANOS","MAX_TIMEOUT_MS","CHAT_UPDATE_IDLE_INTERVAL","BOT_UPDATE_INTERVAL","BOT_UPDATE_IDLE_INTERVAL","USER_UPDATE_INTERVAL","REGISTRY_UPDATE_INTERVAL","EXCHANGE_RATE_UPDATE_INTERVAL","MAX_INT32","OpenChat","EventTarget","worker","unresolved","connectedToWorker","authIdentityStorage","ocIdentityStorage","authClient","webAuthnKey","ocIdentity","userLocation","liveState","logger","lastOnlineDatesPending","lastOnlineDatesPromise","cachePrimer","membershipCheck","referralCode","userLookupForMentions","chatsPoller","botsPoller","registryPoller","userUpdatePoller","exchangeRatePoller","recentlyActiveUsersTracker","inflightMessagePromises","currentAirdropChannel","formatFileSize","botsLoaded","proposalBotCanister","icUrl","userGeekApiKey","apiKey","host","initialiseTracking","AuthClient","idleOptions","disableIdle","disableDefaultIdleCallback","getIdentity","authIdentity","loadedAuthenticationIdentity","AuthPrincipal","clearCachedData","sendRequest","deleteCurrentUser","success","logout","chatUpdated","updatedEvents","handleConfirmedMessageSentByOther","refreshUpdatedEvents","loadChatDetails","dispatchEvent","clearPostLoginState","postLogin","updateIdentityState","getPrincipal","isAnonymous","connectToWorkerResponse","connectToWorker","II","EMAIL","PASSKEY","webAuthnCredentialId","challengeAttempt","loadUser","logError","optionalParams","logMessage","logDebug","getAuthClientOptions","provider","identityProvider","buildAuthProviderUrl","maxTimeToLive","iiDerivationOrigin","login","internetIdentityUrl","nfidUrl","encodeURIComponent","startSession","setPrincipal","trackSession","startTrackingSession","durationUntilSessionExpireMS","expiryDateTimestampMs","getDelegation","d","expiration","getTimeUntilSessionExpiryMs","durationUntilLogoutMs","self","submitChallenge","startRegistryPoller","getCurrentUser","onCreatedUser","code","userIsDiamond","userIsLifetimeDiamond","diamondExpiresIn","division","round","formatRelativeTime","snsGovernanceCanisterId","payload","maxMediaSizes","onRegisteredUser","blobReference","blobUrlPattern","setDiamondStatus","initialiseMostRecentSentMessageTimes","startSwCheckPoller","startChatsPoller","startBotsPoller","startUserUpdatePoller","query","onchange","permissionStateToNotificationPermission","initNotificationStores","startOnlinePoller","startBtcBalanceUpdateJob","updateUsers","pauseEventLoop","resumeEventLoop","loadBots","loadChats","minutesOnline","updateRegistry","startExchangeRatePoller","updateExchangeRates","location","previouslySignedIn","generateIdentityChallenge","identityCanister","markThreadRead","rtc","sendRtcMessage","isMessageRead","initWebRtc","handleWebRtcMessage","previewChat","toggleMuteNotifications","muteAllChannels","archiveChat","unarchiveChat","pinChat","unpinChat","blockUserFromDirectChat","unblockUserFromDirectChat","setUserAvatar","partialUser","_resp","deleteGroup","removeChat","deleteDirectChat","blockUser","leaveGroup","addCommunityLocally","removeCommunityLocally","verifyAccessGate","iiPrincipal","approveAccessGatePayments","entity","approvals","promptForCurrentPin","spender","results","approval","approveAccessGatePayment","markActivityFeedRead","subscribeToMessageActivityFeed","subscribeFn","sendStreamRequest","since","getMissingUsers","approveTransfer","expiresIn","approvalFee","joinGroup","paymentApprovals","approveResponse","credentialArgs","buildVerifiedCredentialArgs","userIIPrincipal","iiOrigin","credentialJwts","setMemberDisplayName","newAchievement","followThread","follow","groupAvatarUrl","snsLogo","getSnsLogo","getCommunityForChannel","communityAvatarUrl","avatar","toMonthString","formatMessageDate","today","yesterday","timeIfToday","short","startOfToday","toDayOfWeekString","toDatetimeString","communityBannerUrl","communityPredicate","canBlockCommunityUsers","chatPredicate","canSendMessage","permittedMessages","canStartVideoCalls","isChatPrivate","isChatOrCommunityFrozen","canChangeRoles","currentRole","currRole","canChangeCommunityRoles","canPromote","canDemote","identifier","canUnblockCommunityUsers","canRemoveCommunityMembers","canInviteCommunityUsers","canManageBots","canCreateChannel","canDeleteChannel","multiUserChatPredicate","canConvertGroupToCommunity","isChatFrozen","isCommunityFrozen","isOpenChatBot","isVideoCallBot","isChatReadOnly","registerPollVote","messageIdx","voteType","deleteMessage","asPlatformModerator","recipients","_undelete","directChatWithBot","undeleteMessage","chatType","revealDeletedMessage","revealBlockedMessage","selectReaction","undoLocally","loadThreadEventWindow","eventsResponse","clearThreadEvents","handleThreadEventsResponse","loadEventWindow","isPrivatePreview","handleEventsResponse","keepCurrentEvents","updateUserStoreFromEvents","addServerEventsToStores","updateUserStoreFromCommunityState","allUserIds","getTruncatedUserIdsFromMembers","blockCommunityUserLocally","unblockCommunityUserLocally","addToMembers","blockUserLocally","unblockUserLocally","blockCommunityUser","unblockCommunityUser","unblockUser","formatDisappearingMessageTime","milliseconds","i18nFormatter","createDirectChat","getUser","readByThemUpTo","metrics","uninstalledBotChat","loadPreviousMessages","openThreadFromMessageIndex","_chatId","openThread","closeThread","loadThreadMessages","clearEvents","removeCommunity","haveCommunityPermissionsChanged","haveGroupPermissionsChanged","hasAccessGateChanged","currentConfig","originalConfig","governanceCanister","minDissolveDelay","minStakeE8s","ledgerCanister","minBalance","getTokenDetailsForAccessGate","tryGetNervousSystem","tryGetCryptocurrency","getMinDissolveDelayDays","getPaymentAmount","getMinStakeInTokens","earliestLoadedThreadIndex","previousThreadMessagesCriteria","minLoadedEventIndex","criteria","previousMessagesCriteria","loadEvents","earliestLoadedIndex","earliestAvailableEventIndex","confirmedLoaded","loadNewMessages","newThreadMessageCriteria","newMessageCriteria","morePreviousMessagesAvailable","earliestIndex","moreNewMessagesAvailable","confirmedThreadUpToEventIndex","confirmedUpToEventIndex","loadCommunityDetails","communityLastUpdated","chatLastUpdated","achievementLogo","achievementUrlPath","userIndexCanister","rehydrateDataContent","ref","confirmedThreadLoaded","currentChatEvents","currentThreadEvents","chatEventsPromise","threadEventPromise","loadedUpTo","messageIsReadByThem","addPinnedMessage","removePinnedMessage","idx","unpinMessage","pinMessage","removeMessage","forwardMessage","sendMessageWithContent","recentlyActiveCutOff","newLatestMessage","anyFailedMessages","inflightMessagePromise","sendMessageWebRtc","deleteFailedMessage","retrySendMessage","currentEvents","eventsForMessageContext","nextEventIndex","nextMessageIndex","retryEvent","sendMessageCommon","eventWrapper","mentioned","retrying","acceptedRules","rulesNeedAccepting","promptForRuleAcceptance","throttleSendMessage","postSendMessage","canRetry","messageFilterFailed","isNewSendMessageAchievement","extractLedgerFromContent","sendMessagePromise","mergeSendMessageResponse","markChatRulesAcceptedLocally","markCommunityRulesAcceptedLocally","onSendMessageFailure","refreshAccountBalance","token0","message_context","achievement","chatRules","communityRules","combineRulesText","chatRulesEnabled","communityRulesEnabled","selectedCommunityId","eventExpiry","msgFn","draftMessage","isThrottled","shouldThrottle","sendMessageWithAttachment","getMessageContent","captioned","buildTransactionLink","markAllReadForCurrentScope","editMessageWithAttachment","disabledLinks","extractDisabledLinks","isCaptionedContent","updatedBlockLevelMarkdown","hideLinkPreview","link","notificationReceived","notification","messageEventIndex","isMessageNotification","expiredMessageRanges","setFocusMessageIndex","setFocusThreadMessageIndex","expandDeletedMessages","messageIndexes","remoteUserToggledReaction","matchingMessage","doesUserMeetAccessGates","doesUserMeetAccessGate","gatePreprocessingRequired","getAllPreprocessLeafGates","accessGatesForChat","excludeInvited","isInvited","createRemoteVideoStartedEvent","createRemoteVideoEndedEvent","fromChatId","parsedMsg","parseWebRtcMessage","handleWebRtcMessageInternal","remoteUserSentMessage","checkUsername","searchUsers","searchTerm","maxResults","lookupChatSummary","searchUsersForInvite","newGroup","channelMembers","communityMatches","searchCommunityUsersForChannelInvite","maxToSearch","globalMatches","searchCommunityMembersToAdd","term","termLower","member","clearReferralCode","removeItem","setReferralCode","extractReferralCodeFromPath","URLSearchParams","captureReferralCode","captured","getReferringUser","registerBot","updateRegisteredBot","avatarUrl","registerUser","resolved","getDisplayNameById","communityMembers","getDisplayName","subscriptionExists","p256dh_key","pushSubscription","removeSubscription","inviteUsersLocally","uninviteUsersLocally","channel","callerUsername","cancelInvites","addMembersToChannel","removeCommunityMember","removeMember","ps","changeCommunityRole","oldRole","changeRole","registerProposalVote","adopt","getProposalVoteDetails","latestTally","getRecommendedGroups","exclusions","searchGroups","exploreBots","pageIndex","pageSize","exploreCommunities","languages","exploreChannels","dismissRecommendation","groupInvite","setCommunityInvite","setCommunityReferral","referredBy","searchChat","refreshTranslationsBalance","translationsCanister","getAccountTransactions","ledgerIndex","fromId","transactions","threadPreviews","rootMessage","latestReplies","userIdsSet","allowStale","deletedUserIds","deletedUsers","serverTimestamp","usersReturned","allOtherUsers","created","getUserStatus","getLastOnlineDate","None","Online","Offline","userStatus","lastOnlineCached","getLastOnlineDatesBatched","getPublicProfile","setUsername","overwriteUserInStore","setDisplayName","setBio","bio","getBio","withdrawCryptocurrency","domain","getGroupMessagesByMessageIndex","getInviteCode","enableInviteCode","disableInviteCode","resetInviteCode","desc","eventsTimeToLive","isPublic","messagesVisibleToNonMembers","externalUrl","rulesVersion","isMultiUserChat","maskChatMessages","createGroupChat","candidate","historyVisible","minVisibleMessageIndex","previewed","groupChatFromCandidate","freezeCommunity","unfreezeCommunity","freezeGroup","onChatFrozen","unfreezeGroup","deleteFrozenGroup","addHotGroupExclusion","removeHotGroupExclusion","addRemoveSwapProvider","swapProvider","addMessageFilter","removeMessageFilter","suspendUser","unsuspendUser","setCommunityModerationFlags","setGroupUpgradeConcurrency","setCommunityUpgradeConcurrency","setUserUpgradeConcurrency","markLocalGroupIndexFull","full","setDiamondMembershipFees","fees","setTokenEnabled","stakeNeuronForSubmittingProposals","stake","topUpNeuronForSubmittingProposals","userIdsFromChatSummaries","usersToUpdate","oneDayAgo","handleChatsResponse","updateRegistryTask","chatsResponse","anyUpdates","suspensionChanged","updateReadUpToStore","updatedCommunity","favouriteChats","pinnedGroupChats","pinnedDirectChats","pinnedFavouriteChats","pinnedChannels","pinNumberSettings","newAchievements","filtered","achievementsLastSeen","refreshSwappableTokens","refreshBalancesInSeries","setExternalBots","processLastOnlineDatesQueue","validMouseEvent","MouseEvent","isTrusted","claimPrize","acceptP2PSwap","reservedBy","acceptedBy","token1TxnIn","token0TxnOut","token1TxnOut","mapAcceptP2PSwapResponseToStatus","cancelP2PSwap","mapCancelP2PSwapResponseToStatus","joinVideoCall","setVideoCallPresence","presence","mapVideoCallParticipants","participant","videoCallParticipants","updatesSince","updateDiamondStatusInUserStore","diamondMembershipFees","payForDiamondMembership","recurring","expectedPriceE8s","setMessageReminder","remindAt","cancelMessageReminder","reminderId","reportMessage","declineInvitation","updateMarketMakerConfig","hasModerationFlag","setModerationFlags","previousValue","tipMessage","currentTip","totalTip","loadSavedCryptoAccounts","saveCryptoAccount","namedAccount","isMemberOfAirdropChannel","airdropChannel","registry","cryptoRecord","nervousSystemSummary","ns","ledgerCanisterId","exchangeRates","logo","nsLookup","getUserLookupForMentions","lookupUserForMention","includeSelf","userOrGroup","submitProposal","nervousSystem","proposalRejectionFee","transactionFee","transferFee","tokenLedgers","getTokenSwaps","inputTokenLedger","outputTokenLedgers","getTokenSwapQuotes","outputTokenLedger","amountIn","swapTokens","swapId","minAmountOut","dex","inputTokenDetails","outputTokenDetails","tokenSwapStatus","previewTranslationCorrection","proposeTranslationCorrection","getProposedTranslationCorrections","rejectTranslationCorrection","approveTranslationCorrection","sendVideoCallUsersWebRtcMessage","ringOtherUsers","getRoomAccessToken","authToken","headers","Headers","append","videoBridgeUrl","getLocalUserIndexForBotActionScope","getLocalUserIndex","getLocalUserIndexForCommunity","flipDirect","endVideoCallOnBridge","endVideoCall","accessTokenType","getVideoChatAccessToken","addr","updateBtcBalance","getBtcAddress","address","withdrawBtc","getCkbtcMinterDepositInfo","getCkbtcMinterWithdrawalInfo","signUpWithWebAuthn","assumeIdentity","webAuthnOrigin","webAuthnIdentity","storeWebAuthnKeyInCache","tempKey","generate","finaliseWebAuthnSignin","signInWithWebAuthn","lookupWebAuthnPubKey","reSignInWithCurrentWebAuthnIdentity","initialKey","webAuthnIdentityFn","pubKey","generateMagicLink","email","sessionKeyDer","session","storeEmailSignInSession","removeEmailSignInSession","getExternalAchievements","markAchievementsSeen","handleMagicLink","qs","signInWithEmailCanister","keyPair","contextString","getEmailSignInSession","getSignInWithEmailDelegation","getDelegationResponse","siwePrepareLogin","siwsPrepareLogin","signInWithWallet","loginResponse","ETH","SOL","updateCommunityIndexes","orderedCommunities","setSelectedCommunity","inviteCode","clearChat","addCommunityPreview","importToCommunity","submitProofOfUniquePersonhood","joinCommunity","deleteCommunity","leaveCommunity","createCommunity","defaultChannels","defaultChannelRules","addToFavourites","removeFromFavourites","saveCommunity","banner","primaryLanguage","convertGroupToCommunity","deleteUserGroupLocally","userGroup","undeleteUserGroupLocally","deleteUserGroup","userGroupIds","createUserGroup","userGroupId","ch","updateUserGroup","toRemove","usersToRemove","setChatListScope","getDefaultScope","getUserLocation","country","swapRestricted","featureRestricted","feature","jurisdiction","setPinNumber","verification","newPin","accepted","getStreak","getBotDefinition","callBotCommandEndpoint","generateBotApiKey","getApiKey","executeInternalBotCommand","RemoveBot","path","addQueryStringParam","messageIdFromBotActionScope","getAuthTokenForBotCommand","initiator","commandName","meta","resolvedOptions","timeZone","language","grantedPermissions","installBotLocally","uninstallBotLocally","updateInstalledBot","previousPermissions","uninstallBot","sendPlaceholderBotMessage","msgId","ephemeral","executeBotCommand","finalised","removePlaceholder","placeholder","messageContent","contentTypeSupportsEdit","isEditableContent","claimDailyChit","chitEarned","chitLeaderboard","chitEvents","authProviderFromAuthPrincipal","originatingCanister","signInWithEthereumCanister","signInWithSolanaCanister","isIIPrincipal","getAuthenticationPrincipals","principals","getLinkedIIPrincipal","iiPrincipals","linkIdentities","initiatorKey","initiatorDelegation","initiatorIsIIPrincipal","initiatorWebAuthnKey","approverKey","approverDelegation","removeIdentityLink","linked_principal","removeTokenFromWallet","setWalletConfig","walletConfigChanged","withdrawFromIcpSwap","inputToken","fee","websiteVersion","workerUrl","Worker","initResponse","openStorageIndexCanister","groupIndexCanister","notificationsCanister","onlineCanister","registryCanister","enableMultiCrypto","marketMakerCanister","rollbarApiKey","env","bitcoinMainnetEnabled","onmessage","subkind","threadsRead","resolveResponse","resolveError","logUnexpected","correlationId","timedOut","sentAt","promise","responseHandler","connecting","DEFAULT_WORKER_TIMEOUT","sendRequestInternal","getBotConfig","metricsUrl","ocPublicKey","oc_public_key","icHost","emptyPermissions","builtinBot","defaultRole","directBotDisabled","minLength","maxLength","multi_line","minValue","maxValue","devmode","translationCodes","cn","de","es","fr","hi","it","iw","jp","ru","uk","vi","pl","fa","ar","supportedLanguages","supportedLanguagesByCode","lang","setLocale","setDialectIfMatchesBrowserLocale","localeFromNavigator","getLocaleFromNavigator","interpolate","levelTxt","register","import","fallbackLocale","initialLocale","getStoredLocale","editmode","editingLabel","reviewingTranslations","synonymousUrlRegex","isCanisterUrl","removeQueryStringParam","nomenuRoutes","scrollingRoutes","landingPageRoutes","copyToClipboard","clipboard","writeText","scrollToSection","section","exec","one","getElementById","rect","getBoundingClientRect","top","scrollY","scrollTo","classList","renderer","href","marked","use","scream","Audio","rtlStore","$locale","innerWidth","innerHeight","resize","ScreenWidth","ScreenHeight","screenWidth","$dimensions","ExtraExtraSmall","ExtraSmall","Small","Medium","Large","ExtraLarge","ExtraExtraLarge","mobileWidth","ipadWidth","availableHeight","pixelsFromRems","toPixel","rem","intervalStore","now500","textLength","longestWord","position","align","autoWidth","maxWidth","mobile","MIN_WIDTH","MAX_WIDTH","CHAR_WIDTH","numChars","sqrt","calculateMaxWidth","$mobileWidth","classes","rtl","$.transition","div","fade","centerOfScreen","elementRect","viewport","w","documentElement","clientWidth","h","clientHeight","centerY","y","defaults","variantFlipOrder","middle","positionFlipOrder","bottom","padding","force","reposition","trigger","popup","opt","pos","repositionInternal","container","arrow","originalLeft","originalTop","style","triggerBox","popupBox","positionStore","variantStore","vs","vm","ve","hs","hm","he","posKey","varKey","positions","variants","vertical","positionVal","positionKey","variantKey","overrideProp","positionSize","variantSize","positionMaximum","variantMaximum","positionMinimum","variantMinimum","positionTotal","setProperty","variantVal","variantTotal","refBoxCenterOffset","arrowVariantVal","tooltipAnchor","tooltip","removeChild","className","body","appendChild","tooltipStore","triggerEl","gutter","show","currentTooltip","hide","isTouchDevice","maxTouchPoints","msMaxTouchPoints","supportsHover","matchMedia","isTouchOnlyDevice","mobileOperatingSystem","vendor","opera","MSStream","getMobileOperatingSystem","enable","fill","longPressed","$.mutable_state","tooltipContainer","hovering","closeTooltip","onDestroy","$.set","$.get","tick","getDomElement","showTooltip","HOVER_DELAY","hoverTimer","longPressTimer","enableLongPress","coords","containerDiv","startX","startY","startHover","clientX","clientY","endHover","handleDocumentTouchStart","cancelLongPress","handleTouchStart","changedTouches","once","stopPropagation","handleTouchMove","diffX","diffY","handleTouchEnd","clearLongPressTimer","onContextMenu","preventDefault","onMount","$.bind_this","$$value","$$render","consequent","span","hexPercent","hex","alpha","backgroundBlack","dark60pc","borderDark","textBlack","textBodyLight","textBodyDark","hoveredChat","chatPanelDark","dark25","txtLow","primary","blueAccent","accent","orangeAccent","pinkAccent","textBox","txtLight","txtDark","txtDark75pc","disabledTxt","txt70","txt50","txt60","white","red100","componentBg","green","offWhite","matteBlack","gold","lightGold","notificationAccent","yourMessageBackground","pink1","pink2","pink3","barbieYellow","barbieBlue","raspberry","darkGray","silver","veryDarkGray","lighterDarkGray","lightPurple","veryDarkCyan","darkCyan","darkCyan2","darkBlue","olive","shadow","orange","darkOrange","lightGreen","yellow","darkBrown","lighterBrown","black","powderBlue","red","txt40","txt80","trolleyGray","msBlue","magenta","errorRed","deepMerge","source","createLocalStorageStore","blueTheme","author","burst","bg","bd","rd","bw","accentDarker","font","unread","mute","progress","collapsible","header","notificationBar","toast","failure","input","sh","hv","entry","panel","nav","modal","chatSearch","del","spinner","menu","separator","button","disabled","underline","modalPage","currentChat","msgs","inert","r1","r2","icon","inverted","scrollbar","findUser","edit","pill","recommended","color","card","outer","inner","note","landing","brag","op","phone","launch","auth","roadmap","daily","accentText","backgroundAccent","baseText","border","mainAreaBg","mainAreaBgAccent","mainAreaText","supportiveText","defaultLight","base","cloneTheme","defaultDark","defaultTheme","communityThemes","getSubmarineTheme","getNightvisionTheme","getMatteBlackGoldTheme","getBarbieTheme","getTokyoNightTheme","fontUrl","getWindoge98Theme","getSolarizedDarkTheme","getHalloweenTheme","getSignalsTheme","themes","dark","writeCssVars","comp","props","varStr","prefersDarkQuery","osDarkStore","updateDarkPref","mediaQueryList","setModifiedTheme","baseName","newName","overrides","overridden","themeOverride","themeType","preferredDarkThemeName","preferredLightThemeName","preferredDarkTheme","darkName","preferredLightTheme","lightName","currentThemeName","$themeType","preferredDark","preferredLight","prefersDark","override","themeName","currentTheme","setAttribute","getElementsByTagName","loadFont","translatable","node","resourceKey","editable","dictionary","$dictionary","$editmode","localeValues","isTranslatable","destroy","canEdit","innerHTML","parentNode","insertBefore","nextSibling","$$props","alternate","client","showStatus","$.prop","Default","statusBorder","verified","specialisation","$.derived","$.state","$.proxy","userStatusUserId","$.user_effect","$rtlStore","expression","consequent_2","consequent_1","consequent_3","Tiny","flush","slim","gap","filterRightPanelHistory","rightPanelHistory","history","popRightPanelHistory","pushRightPanelHistory","notFound","pathContextStore","routerReady","getRouter","checkReadiness","iterations","page","pageReplace","pageRedirect","redirect","routePath","querystring","adminRoute","_ctx","communitesRoute","shareRoute","$qs","blogRoute","slug","chatListRoute","globalDirectChatSelectedRoute","chatSelectedRoute","globalGroupChatSelectedRoute","createCommunityIdentifier","selectedCommunityRoute","routeForScope","selectedChannelRoute","fav","pathParams","FRAME_ANCESTORS","framed","disableLeftNav","broadcastMessage","queuedRoute","externalMessage","isRouterReady","settings","Boolean","ready","navOpen","fullWidth","$screenWidth","layoutStore","$rightPanelHistory","$pathParams","$fullWidth","$disableLeftNav","showRight","showMiddle","route","showLeft","showNav","rightPanel","floatRight","rightPanelWidth","createPanelWidthStore","menuAnchor","removeProperty","menuStore","centered","dim","positionInCenter","showMenu","currentMenu","hideMenu","contextMenu","$menuStore","closeMenu","compact","tabindex","iconSize","fit","warning","unpadded","alternate_1","toUint8Array","base64String","atob","charCodeAt","PUBLIC_VAPID_KEY","subscribeToNotifications","onNotification","registration","getRegistrations","active","scriptURL","unregister","unregisterOldServiceWorker","registerServiceWorker","pushManager","getSubscription","extract_p256dh_key","subscribeOptions","userVisibleOnly","applicationServerKey","subscribeUserToPush","trySubscribe","unsubscribeNotifications","closeNotificationsForChat","notifications","getNotifications","ToastType","toastStore","showFailureToast","Failure","showSuccessToast","Success","hideToast","subscriptions","canMarkAllRead","dispatch","createEventDispatcher","doubleCheck","communityDetails","newChannel","embedContent","showMembers","invite","canInvite","editCommunity","canLeave","canDelete","isCommunityMuted","$chatSummariesListStore","$iconSize","$.derived_safe_equal","expression_1","expression_2","expression_3","expression_4","expression_5","expression_7","expression_8","consequent_4","expression_9","consequent_5","expression_10","consequent_6","consequent_7","expression_11","expression_12","consequent_8","consequent_9","$.template_effect","$.set_class","div_1","$.rest_props","clearSearch","__1","timer","searching","inputStyle","$.action","$$node","$$action_arg","buildDisplayName","bold","trimLeadingAtSymbol","searchResultsAvailable","groupSearchResults","userAndBotsSearchResults","postSearch","sortUsersOrBots","_a","_b","searchBots","getPlaceholder","legacySearch","groupSearch","userAndBotSearch","viewBox","clamp","swipe","threshold","swiping","touchMove","diffx","screenX","bubbles","cancelable","touchStart","touchEnd","passive","DOMPurifyDefault","domPurify","DOMPurify","setConfig","ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","tagNameCheck","tag","attributeNameCheck","attr","allowCustomizedBuiltInElements","createDefault","DOMPurifyOneLine","FORBID_TAGS","addHook","tagName","outerHTML","createOneLine","emojiSet","emojiDatabase","Database","initEmojiSet","getAllNativeEmojis","emojis","unicode","skins","inline","oneLine","twoLine","suppressLinks","singleEmoji","isSingleEmoji","breaks","sanitized","parsed","replaceEveryone","replaceUserGroupIds","replaceUserIds","replaceDatetimes","parseInline","sanitize","_node","transform","css","elasticOut","onShowMenu","medium","light","blueDiamondHue","goldDiamondHue","deriveColours","hue","colour","colours","statusName","getStatusName","streakFromDays","streakNumber","classes_1","userInfoOpen","appearanceSectionOpen","chatsSectionOpen","restrictedSectionOpen","videoSectionOpen","referralOpen","storageSectionOpen","statsSectionOpen","advancedSectionOpen","deleteAccountSectionOpen","groupInfoOpen","groupVisibilityOpen","groupRulesOpen","groupPermissionsOpen","groupStatsOpen","groupInviteUsersOpen","groupAdvancedOpen","communityVisibilityOpen","communityRulesOpen","communityPermissionsOpen","communityStatsOpen","communityAdvancedOpen","communityInviteUsersOpen","uniquePerson","delOffset","externalContent","unreadMentions","_now","$favouritesStore","$_","private","$selectedCommunity","normaliseChatSummary","lastMessage","latestMessageText","formatLatestMessage","displayDate","readonly","getCanDelete","maxDelOffset","swiped","updateUnreadCounts","getUnreadMentionCount","leftSwipe","rightSwipe","selectChat","CameraTimer","node_3","$.set_text","text_1","text_2","text_3","MutedIcon","node_13","PinIcon","node_15","Heart","node_17","div_12","text_5","div_13","alternate_2","consequent_10","expression_6","onclick","consequent_11","alternate_3","consequent_12","consequent_13","consequent_14","alternate_4","consequent_15","consequent_16","consequent_17","consequent_18","consequent_19","$.set_attribute","div_16","consequent_20","$.event","showSpinner","cls","loading","secondary","small","tiny","hollow","square","danger","random","darkenedDanger","percent","darkenHexColour","$currentTheme","colors","menuCloser","unsub","anchorElement","getBoundingRect","hover","emojiPicker","querySelector","skinTone","large","inp","invalid","autofocus","minlength","maxlength","rows","scroll","outerHeight","focus","remaining","textarea","setPlayingMedia","paused","pause","draft","reply","videoPlayer","withCaption","landscape","previousCalls","activeStore","incomingStore","microphone","hasPresence","camera","sharing","selectedRingtone","incomingVideoCall","updateCall","updateParticipant","participantId","activeVideoCall","setCall","setView","view","askToSpeak","canAdmin","sendAppMessage","session_id","demote","user_id","findParticipantId","updatePermissions","canSend","rejectAccessRequest","approved","accessRequests","approveAccessRequest","captureAccessRequest","threadOpen","participantsOpen","isOwner","endCall","changeTheme","setTheme","joining","ringtoneUrls","boring","pleasant","boomboom","garage","siren","Ringtone","playing","play","joinCall","incall","leaveCall","$communityMembers","$activeVideoCall","endedDate","missed","$.index","$$anchor","alignBottomOnMobile","dismissible","alignLeft","popState","portal","divElement","hideHeader","hideBody","hideFooter","compactFooter","fadeDuration","fadeDelay","fixedWidth","fitToContent","alignTo","actualWidth","closeIcon","backgroundImage","overflows","overflowVisible","useAlignTo","bgStyle","closeMenus","calculatePosition","modalRect","Close","onClick","toggleZoom","onDoubleClick","imgElement","intersecting","zoom","zoomedWidth","zoomedHeight","recalculateZoomedDimensions","contentAspectRatio","imageWidth","imageHeight","normalised","fallback","loadMsg","normaliseContent","zoomable","$$events","click","ArrowExpand","node_5","div_3","onClose","ArrowCollapse","node_8","img_1","classes_2","div_4","audioPlayer","percPlayed","circum","circle_1","fractionPlayed","finished","answer","voted","txtColor","voters","numVotes","showVotes","buildTooltipText","buildPollUsernames","votedFor","percentageOfVote","votesForAnswer","numberOfVotes","endDate","haveIVoted","totalVotes","cannotVote","allowUserToChangeVote","showVotesBeforeEndDate","voteCount","anonymous","unobserveOnIntersect","IntersectionObserver","observer","isIntersecting","unobserve","observe","eventListScrollTop","eventListLastScrolled","eventListScrolling","communityListScrollTop","rendered","previewWrapper","previewPromise","imageLoaded","$eventListScrolling","metaIsEmpty","imageAlt","checkIfMetaEmpty","loadPreview","$.await","node_1","a_1","previousLinks","buildPreview","regexMatch","tweetId","adjustScroll","wrapper","el","selector","parentElement","closestAncestor","scrollTop","offsetHeight","arraysAreEqual","$.each","$$index","div_2","removePreview","tweetWrapper","supported","rendering","twttr","$.mutate","widgets","createTweet","conversation","youtubeMatch","youtubeCode","youtubeStartTime","searchParams","iframe","buildUrl","renderPreview","$lowBandwidth","$renderPreviews","truncateText","previewUrls","extractPreviewUrls","iconColour","$0","span_1","nowrap","nogap","mirror","spin","coinSize","claimsStore","suspectedAutomationBot","botCheck","botd","detect","suspiciousUserIds","mouseMove","analyzer","MouseMovementBuffer","performance","currentData","velocity","acceleration","distance","prevIndex","prevData","dx","dy","dt","dv","getBuffer","bufferSize","analyseClick","human","clickX","clickY","velocities","distances","totalDistance","penultimateEvent","distanceToClick","closeToClick","meanVelocity","sum","meanDistance","velocityVariance","details","PAUSE_TRESHOLD","lastMoved","mousemove","probablyBot","fakePause","stack","analysis","trace","isSuspectesdBot","$suspectedAutomationBot","onMouseDown","isDragging","startAngle","normaliseAngle","getMouseAngle","userRotation","leftImage","imagePath","targetRotation","PI","rightImageTransform","leftImageTransform","correct","mouseUp","checkAnswer","centerX","mouseX","mouseY","TouchEvent","touches","atan2","onMouseMove","angleDifference","angle","onDiamondClick","onUniquePersonClick","onStreakClick","progressWidth","claim","passedChallenge","showChallenge","userEligible","percentage","claimedByYou","$now500","allClaimed","diamondOnly","lifetimeDiamondOnly","uniquePersonOnly","streakOnly","timeRemaining","restrictedPrize","onChallengeResult","Clock","div_17","fullWidthOnMobile","smaller","larger","$cryptoLookup","winner","transactionLinkText","chatButton","inGlobalContext","undeleting","timestampStr","modclub","NamedNeurons","afdbb46396374af0baad270f06e738fbf60997359e3f1bbea2293312e3278aef","f513314523830ed270c65c4fa2bd6473b2bba3e4faf91b0e0782bf21c2e4ab25","eda6976220ea999ed4d5df28b217e4d452786b6c9dc8f3d892256eaca00017ce","fd052a2a6648357c984cd8a04edcb9e34a48967a46f44db9264f5156d7e96c61","proposalVotes","voting","iconColor","adoptPercent","rejectPercent","votingEnded","minYesPercentageOfTotal","minYesPercentageOfExercised","deadlineDate","div_6","div_7","round2","EPSILON","numbers","toggleSummary","showFullSummary","summaryExpanded","__2","collapsed","on_click","__3","showPayload","dashboardUrl","showNeuronInfo","onVote","votingDisabled","mId","registerProposalVoteErrorMessage","getProposalTopicLabel","proposalTopics","rootCanister","rootCanisterId","voteStatus","myVote","positive","Adopted","Executed","negative","Failed","Rejected","Unspecified","proposalUrl","proposerUrl","proposer","disable","typeValue","payloadTextRendering","payloadEmpty","text_4","neuronId","renderNeuronId","orangeTarget","phase","easing","cubicInOut","purpleEnd","tweened","orangeStart","orangeEnd","plotOrange","clearRect","drawDoughnut","fillStyle","createPurple","drawPurple","createLinearGradient","addColorStop","createOrange","endAngle","counterClockwise","startRad","endRad","startOfOuterArcX","cos","startOfOuterArcY","sin","beginPath","arc","lineTo","closePath","purple","$purpleEnd","$orangeStart","$orangeEnd","$.store_unsub","$$stores","canvas_1","handleInput","oninput","currentTarget","keyDown","onenter","countdown","onblur","onfocus","yesLabel","noLabel","inProgress","canConfirm","account","disableCopy","collapseAccount","qrSize","toppingUp","showTopUp","showRefresh","refreshing","conversion","hideBalance","refresh","errorMessage","topUp","formattedValue","convertValue","Refresh","balanceWithRefresh","reset","ledger1","tokenDetails0","ledger0","tokenDetails1","symbol0","symbol1","transferFees","insufficient","amount1","amount0Text","amount0","amount1Text","amountOther","tokenOther","calculateDollarAmount","e8s","exchangeRate","step","strokeWidth","foregroundColour","backgroundColour","ellipse","steps","labelValues","$.animation","flip","pinNumberErrorMessageStore","$nowStore","$pinNumberFailureStore","nextRetryAt","pinNumberErrorMessage","buttonText","instructionText","summaryText","confirming","showDetails","onAcceptOrCancel","buttonDisabled","cancel","accept","accepting","$pinNumberErrorMessageStore","fromDetails","toDetails","token1","acceptedByYou","fromAmount","token0Amount","toAmount","token1Amount","fromAmountInUsd","toAmountInUsd","fromToken","toToken","labelPrefix","user1","toUser","fullSteps","fullResult","user0","token0TxnIn","node_4","onExpandMessage","transferText","desktop","datetime","reasons","report","reasonCode","toLocaleString","CopyIcon","consequent_23","consequent_22","consequent_21","alternate_5","alternate_6","alternate_7","alternate_8","alternate_9","alternate_10","alternate_11","alternate_12","alternate_13","alternate_14","alternate_15","alternate_16","alternate_17","alternate_18","alternate_19","alternate_20","alternate_21","alternate_22","isTextContent","isP2PSwap","getUrl","percentageExpired","markers","CENTER","rads","degrees","marker","circle_2","reactionCode","emoji","getEmojiByUnicodeOrName","shortcodes","annotation","buildReactionCode","buildReactionUsernames","indent","lastMessageIndex","isFollowedByMe","$threadsFollowedByMeStore","div_5","permittedMimeTypes","copyMessageUrl","buildMessageUrl","canShare","share","canShareMessage","shareMessage","files","extractBlobUrl","filename","ext","buildDummyFilename","Accept","File","fetchBlob","transactionUrl","buildShareFromMessage","shareLink","emojiDb","EmojiDatabase","defaultReactions","quickReactions","getUnicodeBySkintone","skintone","tone","loadQuickReactions","getTopFavoriteEmoji","favUnicode","em","getEmojiByShortcode","defUnicode","loadSkintoneAndQuickReactions","getPreferredSkinTone","incrementFavourite","incrementFavoriteEmojiCount","reload","initQuickReactions","isProposal","publicGroup","confirmed","canPin","supportsReply","canQuoteReply","canStartThread","multiUserChat","canBlockUser","canUndelete","canRevealDeleted","canRevealBlocked","canReact","translated","threadRootMessage","canTip","selectQuickReaction","showEmojiPicker","menuIcon","quickReactionIconSize","collapseMessage","remindMe","cancelReminder","shareFunctions.shareMessage","shareFunctions.copyMessageUrl","copyMessage","inThread","initiateThread","forward","retrySend","canDeleteMessage","untranslateMessage","translateMessage","translatedText","getTranslation","canFollow","canUnfollow","canRemind","canCancelRemind","$now","$quickReactions","expression_13","expression_14","expression_15","expression_16","expression_17","expression_18","expression_19","expression_20","expression_21","expression_22","consequent_24","expression_23","expression_24","consequent_25","consequent_26","expression_25","consequent_27","expression_26","consequent_28","expression_27","consequent_29","expression_28","consequent_30","busy","selectedIntervalIndex","intervals","deriveRemindAt","toNine","tomorrow","getDay","nextWeek","setHours","setMinutes","setSeconds","setMilliseconds","createReminder","remindAtMs","remindAtDate","option_value","option","__value","checked","selectedReasonIndex","createReport","SCROLL_PROXIMITY","minAmount","maxAmount","showDollarAmount","inputElement","validate","trimDecimals","toTrim","tokenDecimals","amountInUsd","inputAmount","padEnd","cryptoTokensFiltered","selectToken","selectedLedger","onSelect","buttonScale","spring","showCustomTip","increments","dollar","tokenChanging","dollarTop","dollarOpacity","dollarScale","centAmount","validAmount","draftAmount","calculateAmount","onBalanceRefreshed","onBalanceRefreshFinished","onBalanceRefreshError","remainingBalance","clickAmount","buttonRect","hDiff","wDiff","quadOut","bounceMoneyMouthFrom","createdAtNanos","createTextNode","to2SigFigs","parseFloat","toPrecision","displayDraftAmount","displayFee","cents","calculateCentAmount","$dollarScale","amountLabel","userTips","userTipsList","totalAmount","$$item","chatMembers","communityRole","chatRole","MAX_COMMAND_LENGTH","paramValues","botCommand","paramValue","paramsLength","paramMode","CogOutline","node_6","onCopy","sendApiKeyToBot","$.snapshot","botExecutionContext","allowSend","syncApiKey","initialIndex","nested","selectedIndex","tab","__click","$.snippet","node_2","tabs","snippet","$.noop","togglePermission","requested","filterTabs","communityTab","chatTab","messageTab","permitted","ShieldAccount","SwapHorizontal","on_click_1","padded","showAvatar","showCommands","owner","cta","choosePermissions","getInitialGrantedPermissions","newApiKey","currentApiKey","getExistingApiKey","confirmingRegeneration","generateApiKey","mainButton","doubleClickMessage","$dclickReply","editMessage","msgElement","msgBubbleWrapperElement","msgBubbleElement","messageMenu","dateFormatter","showRemindMe","showReport","tipping","mediaCalculatedHeight","msgBubbleCalculatedWidth","botProfile","createReplyContext","isThreadRoot","replyPrivately","toggleReaction","isQuickReaction","recalculateMediaDimensions","mediaDimensions","msgBubblePaddingWidth","msgBubbleStyle","getComputedStyle","paddingLeft","paddingRight","borderRightWidth","borderLeftWidth","messageWrapperWidth","offsetWidth","targetMediaDimensions","openUserProfile","registerVote","readByMe","ttl","age","extractDimensions","msgUrl","isPrize","supportsEdit","deletedByMe","permanentlyDeleted","showChatMenu","senderDisplayName","canTranslate","skintoneChanged","readByThem","pinnedColor","AlertCircleOutline","DeletedIcon","CheckCircle","CheckCircleOutline","Pin","onlongpress","onTouchStart","screenY","lastScroll","onTouchMove","longpress","div_14","rotate","headerText","transition","slide","expoInOut","lastMsgIdx","selectThread","syncDetails","missingMessages","totalReplies","$chatSummariesStore","chatData","div_9","chatListView","$identityState","gateLabel","no_gate","composite_gate","credential_gate","diamond_gate","lifetime_diamond_gate","neuron_gate","nft_gate","payment_gate","token_balance_gate","unique_person_gate","locked_gate","referred_by_member_gate","formatLabel","comingSoon","noGate","diamondGate","lifetimeDiamondGate","uniquePersonGate","lockedGate","referredByMemberGate","neuronGateFolder","paymentGateFolder","balanceGateFolder","nftGate","uniquePersonCredentialGate","credentialName","credentialGate","minExpiry","e1","e2","deleteArgument","MIN_LENGTH","MAX_LENGTH","selectedCredentialIssuer","stringValid","sync","fromEntries","maybeNumber","addArgument","originValid","validateOrigin","nameValid","canisterValid","canister","validateCanister","typeValid","argsValid","isValid","node_9","selectedGateKey","selectedNeuronGateKey","selectedPaymentGateKey","selectedBalanceGateKey","minStake","minBalanceText","initialMinBalance","amountText","initialPaymentAmount","credentialIssuerValid","tokenParams","amountFromText","updateGate","selectedGate","neuronGateBindings","paymentGateBindings","balanceGateBindings","gateBindings","candidateTokenDetails","minPayment","invalidAmount","invalidMinBalance","invalidDissolveDelay","invalidMinStake","allowNone","$$array","option_1","option_1_value","option_2","option_2_value","option_3","option_3_value","buildPaymentInfoMessage","msToMinutes","msToHours","msToDays","ONE_MINUTE","unitFilter","unit","updateAmount","ttlNum","allUnits","supportedDurations","durationString","gateValidity","selectedGateIndex","getGateBindings","evaluationIntervalValid","nsLedgers","$nervousSystemLookup","getNeuronGateBindings","supportedStandards","getPaymentGateBindings","getBalanceGateBindings","canAdd","addLeaf","newGate","oldGate","toggleEvaluationInterval","subgate","opened","getGateText","deleteGate","showNoGate","clickable","showDetail","formatParams","defaultColor","img_2","getGateResourceKey","gateText","refreshingBalance","onClickPrimary","insufficientFunds","originalBalance","$cryptoBalanceStore","approvalMessage","distributionMessage","para","extendBy","extendTo","extendByMs","durationToMs","expiresAtMs","relative","accountBalance","allowBack","lifetime","showExpiry","autoRenew","selectedOption","diamondFees","indexToDuration","amountInE8s","features","confirm","selectedDuration","toPayE8s","proof","errorKey","toPay","Diamond","change","$cryptoBalance","EmailIcon","restrictTo","emailInvalid","currentProvider","showMore","providerName","supportsII","o","buildOptions","$selectedAuthProviderStore","showAllOptions","isEmailValid","enter","EmailPollerError","EmailPollerSuccess","EmailSigninHandler","trackingCategory","polling","stopPolling","verificationCode","startPoller","copyCode","explanations","linkInternetIdentity","onProceed","emailSigninHandler","substep","providerStep","linking","loggingInInitiator","accounts","emailEvent","authComplete","initiateLinking","loginProvider","generalError","approver","loginInternetIdentity","currentIdentity","approverPrincipal","selfAuthenticating","isCurrentIdentity","explanation","SigninWithEth","$$source","connected","SigninWithSol","verifying","checkingPrincipal","verify","proceed","iterator","preprocessGates","currentGate","optionalGatesByIndex","optionalInvalid","nextGate","done","leafGatesMatch","approvePayment","credentialReceived","parent","found","toggleIndex","joiningCommunity","gateCheckFailed","checkingAccessGate","doJoinCommunity","accessGatesEvaluated","gateCheck","previewingCommunity","gateConfigWithLevel","gc","closeModal","children","lower","searchTermLower","postfix","solid","selectChannel","matchedCommunityId","searchResults","autoOpen","more","myChannels","filteredResults","$browseChannels","apply","$$args","onDeleteChannel","after","deleteChannel","goToCall","toggleShare","$sharing","stopScreenShare","startScreenShare","toggleMic","setLocalAudio","localAudio","toggleCamera","setLocalVideo","localVideo","hangup","userAndBotSearchResults","chatsScrollTop","previousScope","previousView","$chatListView","unreadCounts","cancelPreview","chatMatchesSearch","lowercaseSearch","chatWith","chatSelected","$.user_pre_effect","chatListElement","onViewChanged","showPreview","showExploreGroups","showBrowseChannnels","anythingUnread","$numberOfThreadsStore","showCommunityMembers","$threadsByChat","$serverChatSummariesStore","node_14","userOrBotKey","node_24","selectGroup","activityFeedShowing","activityEvents","getChatName","pluraliseMessage","root","others","buildEventSummary","activity","otherTippers","numVoters","numberOfPeopleVoting","eventUsername","messageUsername","eventSummary","chatName","average_height","itemHeight","height_map","contents","viewport_height","visible","mounted","content_height","row","$.set_custom_element_data","svelte_virtual_list_contents","svelte_virtual_list_viewport","old_start","row_height","expected_height","actual_height","selectedEvent","uptodate","$activityEvents","selectEvent","$layoutStore","offset","$toastStore","$reactiveResourceKey","withDetail","reactiveResourceKey","sineIn","on_click_2","on_click_3","__4","targets","initialGlobalState","$globalState","targetsFromChatList","normalisedChannels","filterChatSelection","normaliseCommunity","communityMatchesSearch","buildListOfTargets","noTargets","getNumberOfTargets","matchesSearch","compare","buildDirectChatDescription","buildGroupChatDescription","text_6","text_7","text_8","text_9","flagsArray","serialiseFlags","div_10","gotoGroup","locked","select","dismiss","hotGroups","cancelRecommendations","remote","mapFn","loadData","createSearchStore","scrollPos","setSearchTerm","setScrollPos","nextPage","setResults","setTotal","appendResults","createSearchState","SearchState","communitySearchState","groupSearchState","botSearchState","save","serialised","communityFiltersStore","toggleLanguage","exploreCommunitiesFilters","communityFilters","scrollableElement","showFab","onScroll","calculatePageSize","$exploreCommunitiesFilters","$ipadWidth","CloudOffOutline","channelCount","showSuspendUserModal","botIdToUninstall","selectedChatSummary","canMakeProposals","submittingProposalsEnabled","isSuspended","lastState","groupDetailsSelected","pinnedSelected","membersSelected","inviteMembersSelected","canConvert","videoMenuText","canStartOrJoinVideoCall","hasUnreadPinned","setUnreadPinned","hasPinned","showGroupDetails","showPinned","showProposalFilters","showGroupMembers","showInviteGroupUsers","convertToCommunity","onSuspendUser","makeProposal","$isProposalGroup","$platformModerator","expression_29","expression_30","expression_31","expression_32","expression_33","expression_34","expression_35","clickableMembers","onMembersClick","subtext","checkLastOnline","goto","$selectedMessageContext","hasCall","clearSelection","hasUserProfile","navigateToCommunity","navigateToChannel","isMultiUser","suspending","showError","onSuspend","resume","changed","changedByStr","deletedMessagesElement","buildRoleChangedTextList","meChanged","buildUserList","buildRoleChangedText","joinedText","buildJoinedText","deletedText","roleChangedTextList","p_1","property","botname","last","focused","canSendAny","canReplyInThread","editing","onReplyTo","userSummary","editEvent","levelType","templateValues","enabledPrev","showEvent","changedStr","newTimeToLive","frozenByStr","chatFrozenByText","unfrozenByStr","alternate_23","leftEye","rightEye","lx","ly","rx","ry","lpos","rpos","center","move","eye","mouse","rad","dl","dr","rect_1","rect_2","groupName","subtitle","BotCommands","$.spread_props","floating","FROM_END_THRESHOLD","heightObserver","rootSelector","messagesDiv","messagesDivHeight","firstUnreadMention","footer","maintainScroll","scrollTopButtonEnabled","interrupt","morePrevAvailable","moreNewAvailable","loadingFromUserScroll","previousScrollHeight","previousScrollTopByHeight","scrollingToMessage","scrollToBottomOnSend","destroyed","messageObserver","labelObserver","messageReadTimers","withScrollableElement","fromBottom","fromTop","scrollHeight","insideBottomThreshold","insideTopThreshold","scrollTimeout","showGoToBottom","showGoToTop","floatingTimestamp","loadingNewMessages","loadingPrevMessages","updateShowGoToBottom","updateShowGoToTop","clientEvent","scrollBottom","onLoadedNewMessages","resetScroll","interruptScroll","onLoadedPreviousMessages","onMessageWindowLoaded","loadMoreIfRequired","afterSendMessage","findLastMessage","afterReaction","behavior","fromScroll","loadPromises","findMessageEvent","findElementWithMessageIndex","scrollToMessageIndex","preserveFocus","filling","hasLookedUpEvent","scrollIntoView","block","scrollToElement","msgEvent","checkIfTargetMessageHasAThread","requestAnimationFrame","loadIndexThenScrollToBottom","scrollToTop","beforeUpdate","scrollTopByHeight","afterUpdate","messageObserverOptions","rootMargin","MutationObserver","previousScrollHeightVal","scrollHeightDiff","previousScrollTop","scrollTopDiff","sensitivityThreshold","diffDiff","needsAdjustment","loadingFromScroll","eventCount","attributes","childList","subtree","attributeFilter","idxAttrs","getNamedItem","idAttr","intersectionRatioRequired","boundingClientRect","intersectionRatio","labelObserverOptions","_entries","labels","querySelectorAll","opacity","getAttribute","$eventListScrollTop","disconnect","_unconf","_failed","_store","mention","$.store_set","rand","lines","privateChatPreview","chatEventList","currentChatId","goToMessageIndex","doGoToMessageIndex","replyTo","replyContext","onEditEvent","externalGoToMessage","ew","aKind","bKind","isCollpasedProposal","inSameGroup","privateCommunityPreview","privatePreview","isEmptyChat","earliestLoadedEventIndex","shouldShowAvatar","reverse","$expandedDeletedMessages","timelineItem","innerGroup","firstKey","userGroupKey","eventKey","isFailed","$failedMessagesStore","isAccepted","isConfirmed","confirmedRead","isReadByThem","isReadByMe","isMe","isPinned","mediaRecorder","recording","percentRecorded","stopRecording","mediaDevices","getUserMedia","stream","recordedChunks","totalSize","truncated","arrayBuffer","getTracks","direction","mentionSelf","supportsUserGroups","usersOnly","usersAndGroups","order","everyone","user_group","compareMatchNames","borderWidth","maxHeight","prefixLower","itemIndex","up","down","fileinput","blinkTimes","startBlinking","messageAction","drawOpen","createTokenTransfer","createPrizeMessage","createP2PSwapMessage","openEmojiPicker","openFilePicker","toggleDraw","showClose","createPoll","sendGif","makeMeme","cssValues","useDrawer","narrow","showActions","supportedActions","includeAll","actions","buildListOfActions","$.document","g1","g2","canGatesBeMerged","mergeAccessGates","freezingInProgress","freeze","unfreeze","snowing","filterCommand","selectedCommand","parsedPrefix","prefixParts","commandsMatch","focusedCommandIndex","selectedCommandArgs","showingBuilder","parseCommand","botName","botEndpoint","botDescription","aStartsWithPrefix","bStartsWithPrefix","sortByPrefix","instanceValid","argIsValid","schema","instanceIsValid","createBotInstance","setSelectedCommand","cmd","selectCommand","userPermission","chatRolePermitted","communityRolePermitted","chatPermitted","communityPermitted","$messagePermissionsForSelectedChat","$threadPermissionsForSelectedChat","userHasPermissionForCommand","hasPermissionForCommand","$selectedChatStore","sendCommandIfValid","$selectedCommand","$instanceValid","onkeydown","cmds","$error","firstError","selectedReceiver","showMentionPicker","textValue","inputHeight","selectReceiver","removeReceiver","blur","defaultValue","shouldClamp","valueNum","trunc","futureOnly","inputId","inputClasses","pickerOnly","startDate","dateIsValid","localDate","toISOString","onDateChange","dateValue","form","onSubmit","isTextBox","HTMLInputElement","HTMLTextAreaElement","isFocusable","offsetParent","onParamChange","$selectedCommandArgs","formElements","HTMLElement","focusFirstInput","userSelected","userRemoved","choice","option_4","option_5","option_6_value","option_6","future_only","form_1","USER_TYPING_EVENT_MIN_INTERVAL_MS","MARK_TYPING_STOPPED_INTERVAL_MS","emojiRegex","typingTimer","rangeToReplace","audioMimeType","selectedRange","dragging","previousEditingEvent","lastTypingUpdate","audioSupported","showCommandSelector","showEmojiSearch","mentionPrefix","emojiQuery","messageEntryHeight","messageActions","previousChatId","containsMarkdown","showDirectBotChatWarning","commandSent","textboxId","replaceSelection","restoreSelection","getSelection","getRangeAt","deleteContents","insertNode","collapse","inputContent","onInput","commandMatch","commandPrefix","cancelCommand","triggerCommandSelector","uptoCaret","triggerMentionLookup","triggerEmojiLookup","detectMarkdown","selection","anchorNode","anchorOffset","cancelCommandSelector","sent","sendADirectBotMessage","userMessageId","botMessageId","commandInstance","directMessageCommandInstance","$useBlockLevelMarkdown","keyPress","shiftKey","directBot","messageIsEmpty","formatUserMentions","formatUserGroupMentions","cancelEdit","innerText","parseCommands","mentionedMap","expandMentions","saveSelection","intersectsNode","Range","selectNodeContents","removeAllRanges","addRange","onDrop","replaceTextWith","replacement","replaced","createRange","setStart","sel","setCaretTo","cancelMention","setCaretToEnd","completeEmoji","directChatBotId","$externalBots","$anonUser","canEnterText","excessiveLinks","onCommandSent","onCancel","onNoMatches","ITEM_HEIGHT","getEmojiBySearchQuery","$throttleDeadline","div_8","$.effect","messageEntry","onDataTransfer","getData","getAsFile","fileFromDataTransferItems","messageContentFromDataTransferItemList","emojiSelected","clipboardData","dataTransfer","onFileSelected","bigGap","bottomMargin","deleteAnswer","MAX_ANSWER_LENGTH","durations","emptyPoll","nextAnswer","answerError","showSettings","pollQuestion","limitedDuration","pollAnswers","answerIsValid","trimmed","addAnswer","ONE_WEEK","createPollEndDate","createPollContent","node_21","sending","defaultReceiver","lastSearchTerm","currentMatch","searchBoxHeight","onNext","gotoMatch","onPrevious","clearMatches","performSearch","isGroup","mentionedSet","expandedText","extractMentions","topScore","score","keepThreshold","filterAndSortMatches","onKeyPress","selectionEnd","onInputKeyup","setRangeText","setSelectionRange","selectGif","containerElement","gifs","gifCache","modalWidth","selectedGif","imgWidth","TRENDING_API_URL","SEARCH_API_URL","sumOfHeightsForColumn","cache","col","gif","calculatedHeight","onChange","media_formats","mp4","dims","tinygif","clearSelectedGif","addKey","getMoreGifs","selectedImage","mediumgif","containerWidth","numCols","scale","calcHeight","reduceGifs","memeUrl","styleVariables","skipInsertButton","onMemeCreated","iframe_1","messageToForwardStore","selectCommunity","words","randomSentence","fat","trackHeight","thumbSize","distribution","streaks","numberOfWinners","diamondType","streakValue","tokenInputState","anyUser","prizeFees","totalFees","recipientFromContext","getEndDate","prizes","fund","compensateRounding","generateEquallyDistributedPrizes","intermediate","totalAdded","ensureMinPrizeAtLeastTransferFee","generateRandomlyDistributedPrizes","generatePrizes","onAnyUserChecked","RandomDistribution","EqualDistribution","node_20","node_30","div_15","fromLedger","fromAmountValid","toLedger","toAmountValid","onSend","onSelectFromToken","frame","targetOrigin","contentWindow","Cancel","botSummaryMode","generatingKey","autonomousPermissionsEmpty","filterRequestedPermissions","collection","canGenerateKey","commandContextId","apiKeyPermissions","reviewApiKey","reviewCommandPermissions","viewBotDetails","botUser","currentChatMessages","creatingPoll","creatingCryptoTransfer","creatingPrizeMessage","creatingP2PSwapMessage","selectingGif","buildingMeme","pollBuilder","giphySelector","memeBuilder","showSearchHeader","importToCommunities","removeLinkPreviewDetails","createTestMessages","tokenTransfer","attachGif","getUnreadMessageCount","resetPoll","$lastCryptoSent","fileSelected","onSearchChat","$currentChatEditingEvent","$currentChatAttachment","onRemovePreview","defaultCryptoTransferReceiver","$currentChatReplyingTo","onSendMessageWithContent","showChatHeader","$framed","$messageToForwardStore","showFooter","$suspendedUser","isBlocked","$directlyBlockedUsers","importing","performImport","cancelEditEvent","requestedCommandPermissions","grantedCommandPermissions","requestedAutonomousPermissions","grantedAutonomousPermission","nextStep","install","render_arg","render_arg_1","render_arg_2","render_arg_3","render_arg_4","closeInstaller","installed","middlePanel","uninstalledBotId","installingBot","alignVideoCall","layout","callContainer","$rightPanelWidth","noChat","Admin","getMessageForScope","$$d","onGoToMessageIndex","selectTab","selectedTab","externalAchievements","chitReward","internalAchieved","internalNotAchieved","totalAchievements","$$d_1","externalAchieved","externalNotAchieved","achieved","percComplete","validExternalNotAchieved","budgetExhausted","expires","node_10","node_16","node_22","perc","totalEarned","learnToEarn","LearnToEarn","afterBlock","handleOpenDirectChat","showUserProfile","task1","task2","canBlock","blockedChatUsers","blockedCommunityUsers","$blockedUsers","$currentChatBlockedUsers","$currentCommunityBlockedUsers","canUnblock","canUnblockUser","ClockOutline","node_11","placeholderKey","clearFilter","$.bind_value","node_7","selectedUsers","labelKey","selectStep","rolePermission","roles","defaultText","defaultRoleText","selectedRoleText","$.stopPropagation","selectors","roleLabels","admin","partitioned","dict","partitionPermissions","ul","Check","originalRules","toggleNewVersion","newVersion","rulesDirty","buildRulesExplanation","cropData","overlayIcon","originalImage","showModal","addPhoto","cropImage","pixels","SAVE_DIMS","array","onCrop","getSaveDimensions","CROP_SHAPE","getIconSize","crop","readAsDataURL","defaultPermissions","createCandidateCommunity","canEditDisappearingMessages","gateDirty","embeddedContent","disappearingMessages","gateUpdated","toggleScope","toggleVisibleToNonMembers","toggleDisappearingMessages","requiresUpgrade","$isDiamond","nextChannelName","addChannel","createdAt","containsDuplicates","containsBlanks","containsInvalid","editingChannel","stopEditing","showingVerificationWarning","structuredClone","candidateRules","channelsValid","detailsValid","rulesValid","visibilityValid","changeStep","makePrivate","visDirty","verificationWarning","permissionsDirty","avatarDirty","bannerDirty","languageDirty","getSteps","canEditPermissions","nameDirty","descDirty","infoDirty","dirty","stepIndex","freeInfo","diamondInfo","Minus","expression_36","expression_40","expression_42","buildNoticeText","actionDate","actionText","none","moderator","isCommunityPublic","isChannel","generalPartition","messagePartition","threadPartition","partitionMessagePermissions","mps","filterPermissions","translationExt","String","originalGroup","templateGroup","candidateGroup","changeVisibility","updatedGroup","ttlDirty","messagesVisibleToNonMembersDirty","externalUrlDirty","groupUpdateErrorMessage","createGroup","groupCreationErrorMessage","hideInviteUsers","onGroupCreated","chatIdentifierUnset","urlValid","overrideChatMessages","onOverrideChatMessagesChanged","openDashboard","transactionData","ledgerSelected","loadTransactions","indexCanisterId","oldestTransactionId","accountLookup","snsLedgers","moreAvailable","moreTransactionsAvailable","trans","memo","translateMemo","ledgerIn","swapState","ledgerOut","swaps","swapMessageValues","bestQuote","userAcceptedWarning","warnValueUnknown","warnValueDropped","dexName","loadSwaps","initialized","onLedgerInSelected","onSwapFinished","outcome","onPrimaryClick","detailsIn","tokenIn","dexId","quote","amountOutText","detailsOut","rate","amountInText","minAmountOutText","usdInText","usdOutText","amountOut","tokenOut","usdOut","usdIn","ledgerInLocal","ledgerOutLocal","bestQuoteLocal","balanceCheckSuccess","swap","anySwapsAvailable","swapping","balanceIn","primaryButtonText","getPrimaryButtonText","pinNumberError","decimalsOut","notifyFinished","updateSteps","newSteps","updatePercent","newPercent","querySwapProgress","amountSwapped","withdrawnFromDex","notifyDex","depositAccount","autoscan","canvasElement","scan","facingMode","MediaStream","getVideoTracks","srcObject","checkResult","drawLine","begin","moveTo","lineWidth","strokeStyle","stroke","readyState","HAVE_ENOUGH_DATA","getImageData","jsQR","inversionAttempts","topLeftCorner","topRightCorner","bottomRightCorner","bottomLeftCorner","removeTrack","targetAccount","selectedName","selectAccount","scanner","saveAccountElement","amountToSend","validAccountName","capturingAccount","targetAccountValid","isAccountIdentifierValid","validSend","unknownAccount","saveAccount","trimmedName","selectOption","networkOptions","btcAddress","selectedNetwork","btcDepositFeePromise","depositInfo","depositFee","conversionOptions","selectedConversion","balanceError","actionMode","transactionsFormat","hideManageModal","manualWalletConfig","calculateTotal","$accountsSorted","showSend","showReceive","showSwap","restricted","showTransactions","removeFromWallet","complete","selectTextOnFocus","prevValue","setCode","characters","char","getInputs","prevInput","nextInput","focusNextInput","android","androidHack","KEYBOARD","modifierKeyDown","dispatchUpdate","$.set_value","authStep","currPinArray","newPinArray","isPinValid","changePin","reauthenticated","while","onForgot","operation","verificationValid","changeValid","setValid","clearValid","showCurrentPin","selectMode","toggleMode","defaultLedgers","ledgerLookup","bySymbol","getDefaultLedgers","filteredTokens","pinAction","managing","WalletIcon","$hideTokenBalances","player","bullets","invaders","currentScore","highScore","newHighScore","invaderSize","invaderSpeed","invaderDirection","nextDirection","tiltAngle","tiltSpeed","invaderImg","playerImg","laserSound","ArrowLeft","speed","ArrowRight","visibleInvaders","invader","ySpeed","leftmost","moveInvaders","bullet","collides","createInvaders","draw","drawGameObject","textAlign","fillText","drawGameOver","fireBullet","columns","j","fillRect","obj1","obj2","keydown","keyup","handleOrientation","gamma","gameLoop","DeviceOrientationEvent","setUpTilt","y1","y2","animate","v1","v2","polygon","changeMode","showGame","on_click_4","__5","scrollingSection","navWrapper","avatarSize","communityExplorer","claimChitAvailable","communityItems","initCommunitiesList","scrollLeft","toggleNav","$navOpen","viewProfile","showActivityFeed","Hamburger","MessageOutline","ForumOutline","HeartOutline","BellRingOutline","flipDurationMs","dropTargetStyle","outline","dragDisabled","Compass","node_18","OC_GOVERNANCE_CANISTER_ID","createAddTokenPayload","infoUrl","IDL.encode","IDL.Record","info_url","IDL.Text","payer","IDL.Opt","IDL.Principal","token_standard","IDL.Variant","icrc1","IDL.Null","ledger_canister_id","transaction_url_format","createUpdateTokenPayload","optionalStringToCandid","createPublishExternalBotPayload","bot_id","createRegisterExternalAchievementPayload","expiryTimestampMillis","maxAwards","IDL.Nat32","submitted_by","canister_id","chit_reward","IDL.Nat64","max_awards","treasury","recipientOwner","recipientSubaccount","amountValid","recipientOwnerValid","recipientSubaccountValid","isSubAccountValid","subaccount","selectMatch","setCommunityValidityPayload","community_id","setGroupValidityPayload","group_id","clearSelected","onRemove","functionId","onSearchEntered","onPerformSearch","summaryPreview","TOKEN_LISTING_FEE","PROPOSALS_BOT_CANISTER","REGISTRY_CANISTER","USER_INDEX_CANISTER","removeBotComponent","achievementExpiry","achievementExpiryValid","chitRewardText","maxAwardsText","selectedProposalType","depositMessage","depositError","summaryContainerHeight","summaryHeight","achivementName","selectedBot","transferSnsFunds","verificationComponent","transferSnsFundsValid","removeBotValid","canSubmit","proposalCost","addToken","achievementChatCost","convertAction","addOrUpdateTokenLedgerCanisterId","addOrUpdateTokenInfoUrl","addOrUpdateTokenTransactionUrlFormat","achievementUrl","awardingAchievementCanisterId","spender_canister_id","onStartRefreshingBalance","onRefreshingBalanceSuccess","onRefreshingBalanceFailed","isLogoValid","isUrl","requiredFunds","chitRewardValid","insufficientFundsForPayment","titleValid","summaryValid","maxAwardsValid","achievementNameValid","cost","summaryDescription","summaryLabel","summaryPlaceholder","option_7","option_8","option_9","option_10","option_11","option_12","groupPath","selectedMultiUserChat","wrappedSummary","expression_37","expression_38","expression_39","expression_41","expression_43","expression_44","expression_45","expression_46","expression_47","expression_48","expression_52","expression_54","expression_55","convert","go","currentPromise","originalUsername","usernameValid","checking","depth","onCopyUrl","onShowGuidelines","showGuidelines","createdUser","registerState","usernameStore","checkingUsername","badCode","referringUser","clearCodeAndRegister","clearCodeAndLogout","icpAccount","selectedLocale","deleteUser","selectUser","onCloseGuidelines","loginState","getAll","loggingInWithEmail","loggingInWithEth","loggingInWithSol","spinning","cancelLink","used","$storageInGb","fontSizeScale","setFontScale","$scale","adjusted","translateScale","stats","showReported","hoveredIndex","previousStats","totalMessages","textPerc","imagePerc","videoPerc","audioPerc","filePerc","pollPerc","cryptoPerc","giphyPerc","tween","cubicOut","sumSlice","percentages","cryptoMessages","$textPerc","$imagePerc","$videoPerc","$audioPerc","$filePerc","$pollPerc","$cryptoPerc","$giphyPerc","originalDisplayName","displayNameValid","otherThemes","partitionedThemes","ringtones","togglePlay","ringtone","waveform","WaveSurfer","cursorWidth","barWidth","barRadius","barGap","waveColor","progressColor","media","$selectedRingtone","getMonthCalendar","currDate","dates","firstDayOfMonth","lastDayOfMonth","firstDayWeekday","lastDayDate","lastDayWeekday","daysFromPrevMonth","daysFromNextMonth","lastDate","getCalendarDates","chunk","chunkCount","chunks","chunkIndex","isSameDay","d1","d2","selectedMonth","otherMonth","monthTitle","calendarState","ja","weekDays","showDate","translatedLocale","endOfDay","getTitleText","allDates","finalDay","getDates","week","utcToLocal","utc","utcDate","localToUtc","dateSelected","$chitState","eventDate","chitEventsForDay","$chitPopup","$hideChitIcon","$disableChit","referral","deleting","authenticating","deleteAccount","closeProfile","originalBio","userbio","usernameError","displayNameError","bioError","saving","confirmDelete","botConfigData","adultEnabled","$moderationFlags","offensiveEnabled","underReviewEnabled","OC_WEBSITE_VERSION","bioDirty","usernameDirty","displayNameDirty","buttonEnabled","canEditTranslations","referredUserIds","toggleModerationFlag","saveUser","promises","toggleNotifications","$notificationStatus","userAvatarSelected","properties","unlinking","node_37","$fontSizeScale","onShare","expression_49","expression_50","expression_51","expression_53","$canExtendDiamond","expression_56","expression_57","expression_58","expression_59","expression_60","expression_61","expression_62","expression_63","expression_64","expression_65","expression_66","expression_67","expression_68","expression_69","expression_70","expression_71","node_84","editGroup","unauthorized","confirmReset","getLink","toggleLink","onConfirmReset","avatarSrc","combinedRulesText","$currentChatRules","$currentCommunityRules","cancelInviteUsers","memberLookup","usersToAddOrInvite","canPromoteToOwner","canPromoteToAdmin","canDemoteToAdmin","canPromoteToModerator","canDemoteToModerator","canDemoteToMember","canRemoveMember","removeUser","ownerText","adminText","moderatorText","memberText","showInviteUsers","titleKey","communityUsers","communityUsersList","removed","searchVirtualList","searchTermEntered","usersDirty","creating","autoCorrect","changeUsers","groupUsers","matchedUsers","addUserToGroup","removeUserFromGroup","groupToDelete","openedGroupId","selectedGroup","confirmingDelete","createLookup","$userGroupsMap","matchingGroups","editUserGroup","confirmDeleteUserGroup","invited","initialUsergroup","showHeader","showingBotInstaller","matchingUsers","includeMe","matching","membersList","memberView","compareMembers","largeGroup","knownUsers","onBotSelected","getKnownUsers","fullMembers","showBlocked","showInvited","showLapsed","canPromoteMyselfToOwner","allBots","hydrateBots","botContainer","button_1","button_2","classes_4","button_4","classes_5","button_5","classes_6","button_6","classes_3","button_3","node_26","$$index_1","$$index_2","$$array_1","canUninviteUser","cancelInvite","$$index_3","$$array_2","reloadPinned","dateGroupKey","rootEvent","someoneTyping","msgTxt","$byContext","evContext","$editingEvent","$attachment","cancelReply","clearAttachment","onStartTyping","onStopTyping","$replyingTo","atRoot","$threadEvents","node_12","sectionStateKey","defaultSectionState","unknown","builtIn","userIndex","groupIndex","proposalsBot","storageIndex","cyclesDispenser","neuronController","openchatInstaller","proposalActionCategories","sectionLabels","kebab","topics","$proposalTopicsStore","groupTopics","topicsInCategory","$filteredProposalsStore","span_2","resetSize","MIN_COL_WIDTH","MAX_COL_WIDTH","resizedWidth","resized","resizing","startResize","cursor","rw","demoted","videoParticipants","initialising","showInviteCommunityUsers","onRemoveCommunityMember","onChangeCommunityRole","onBlockCommunityUser","onUnblockCommunityUser","onBlockGroupUser","onUnblockGroupUser","onRemoveGroupMember","onChangeGroupRole","onCancelCommunityInvite","onCancelGroupInvite","$currentCommunityBots","canEditChannel","communityFrozen","channelFrozen","canInviteToCommunity","inviteChannelUsers","inviteCommunityUsers","invitingUsers","searchMembers","roleText","changeGroupRole","$multiUserChat","inviteGroupUsers","stripThreadFromUrl","re","removeThreadMessageIndex","_ev","onUnblockCommnityUser","$currentChatMembers","section_1","closeRightPanel","suggestion","saved","extractTokens","$editingLabel","yourLanguage","englishValue","englishTokens","tokenMismatch","originalTokens","tokensMatch","earnMore","claimed","additional","available","previousBalance","leaderboard","onLeaderboard","badgesVisible","calculateBadgesVisible","maxBadgeVisible","currentStreak","maxBadge","calculatePercentage","badge","channelName","communityName","OFF_SCREEN_OPACITY","SHOW_DURATION","SLIDE_IN_DURATION","TWEEN_DURATION","confetti","getDimension","ypos","damping","stiffness","chit","$msg","check","render_arg_5","selectedParam","selectedParamIndex","showNext","showPrev","traverseParams","nextParam","previousParam","node_39","onSelectParam","isCommunity","onFocus","onBlur","autonomousPermissions","getTabs","onSelectCommand","schemaLoaded","selectedCommandIndex","schemaLoading","dependencies","debouncedDerived","traverseCommand","nextCommand","previousCommand","loadDefinition","configtabs","node_27","botState","ownerDirty","endpointDirty","selectBot","iiPrincipalCopy","messageToForward","convertGroup","showProfileCard","confirmActionEvent","showUpgrade","creatingThread","$currentThemeName","$$_import_scream","summonWitch","remoteVideoCallStarted","$incomingVideoCall","remoteVideoCallEnded","shouldClose","raw","closeNotifications","newChatSelected","autojoin","$querystring","filterByChatType","waitAndScrollToMessageIndex","selectFirstChat","unsubEvents","replyPrivatelyTo","upgrade","verifyHumanity","onTriggerConfirm","showMakeProposalModal","showWallet","showProfile","successfulImport","communityLoaded","routeChange","filterChatSpecificRightPanelStates","faq","usergroup","closeNoAccess","onConfirmAction","doConfirmAction","doJoinGroup","onSelectChat","forwardToChat","shareText","shareTitle","shareUrl","shareWithChat","onCloseSelectChat","chatWithFromProfileCard","forgotPin","onForgotPin","onPinNumberComplete","$pinNumberStore","onPinNumberClose","getConfirmMessage","$chatsInitialised","bgHeight","bgClip","profileUser","onUpgrade","BotBuilderModal","bodyElement","blankLeader","leaders","dummyData","thisMonth","getUTCMonth","lastMonth","buildMonthText","allTime","onStreak","star","supportsGame","thisMonthText","lastMonthText","tbody","leader","td","td_1","chars","submitting","submit","CloseIcon","pngBase64","VerifyHumanity","skew","onPinComplete","backgroundColor","menuHeight","screenshotMap","alt","sectionHeight","$availableHeight","phoneHeight","phoneTop","phoneWidth","cssHeight","phoneBorder","cssWidth","scrollOffset","screenshots","screenshot","rootPath","imgUrl","introStyle","imageUrl","hoverImageUrl","blurb","isFirefox","brags","counter","bgPath","bgUrl","dateStr","codeRef","onCodeEntered","isCodeValid","showSignInWithMagicLinkModal","showBlog","$location","linkClicked","desktopUrl","mobileUrl","postsBySlug","access_gate_expiry","component","signin","ic_footprint","communities_released","governance","website_releases","sortByDate","posts","post","posted","copySize","showMenuForLandingRoute","BlogPostPage","RoadmapPage","WhitepaperPage","ArchitecturePage","GuidelinesPage","TermsPage","FAQPage","DiamondPage","HomePage","showLoader","NotFound","parsePathParams","page_location","LandingPage","Home","RouteComponent","minHeight","bgClass","currentDomain","errorCount","clientVersion","getServerVersion","serverVersion","showBanner","ProfileLink","connectedCallback","template","instance","importNode","cssText","customElements","define","viewPortContent","canonicalUrl","getDetails","meta_1","meta_2","meta_3","toggleThread","toggleParticipants","askedToSpeak","$hasPresence","minimise","toggleFullscreen","iframeContainer","confirmSwitchTo","hostEnded","denied","startOrJoinVideoCall","accessType","roomName","createFrame","activeSpeakerMode","$videoSpeakerView","showLeaveButton","showFullscreenButton","startVideoOff","$videoCameraOn","startAudioOff","$videoMicOn","iframeStyle","userName","getThemeConfig","tracks","screenVideo","user_name","switchCall","participantCounts","present","leave","showLandingPage","approve","onJoinVideoCall","ringtoneUrl","isOnAnotherCall","dismissed","$showHomeScreenPrompt","app","mount","overrideItemIdKeyNameBeforeInitialisingDndZones","apikey","Rollbar","accessToken","captureUncaught","autoInstrument","logLevel","environment","captureUnhandledRejections","javascript","source_map_enabled","code_version","guess_uncaught_frames","setContext","videoCallElement","profileTrace","landingPageRoute","isLandingPageRoute","homeRoute","burstPath","burstUrl","burstFixed","isScrollingRoute","upgrading","lastScrollY","trackVirtualKeyboard","keyboardVisible","onUserLoggedIn","trackMouseMovement","deleteChannelMessage","calculateHeight","vh","unhandledError","PromiseRejectionEvent","dir","unsubs","hash","getRedirectPath","redirectLandingPageLinksIfNecessary","selectedMethod","methods","$profileStore","series","MIN_VALUE","points","average","offsetX","offsetY","flakes"],"mappings":"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"}