{"version":3,"file":"main-q8EvamrK.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/streakInsurance.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/utils/semaphore.js","../../openchat-client/lib/snapshot.svelte.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/utils/alignment.ts","../src/utils/position.ts","../src/stores/tooltip.ts","../src/utils/devices.ts","../src/components/tooltip/Tooltip.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/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/DirectChatCreatedEvent.svelte","../src/components/home/MembersChangedEvent.svelte","../src/components/home/AggregateCommonEvents.svelte","../src/components/home/GroupChangedEvent.svelte","../src/components/home/DisappearingMessageTimeUpdated.svelte","../src/components/home/BotChangedEvent.svelte","../src/components/home/ChatEvent.svelte","../src/components/home/GroupChatCreatedEvent.svelte","../src/components/home/GroupRulesChangedEvent.svelte","../src/components/home/GroupVisibilityChangedEvent.svelte","../src/components/home/GroupInviteCodeChangedEvent.svelte","../src/components/home/PermissionsChangedEvent.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/utils/debouncer.ts","../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/MultiToggle.svelte","../src/components/home/BitcoinNetworkSelector.svelte","../src/components/home/profile/SendCrypto.svelte","../src/components/home/profile/SaveAccount.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/profile/FontSize.svelte","../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/insurance/StreakInsuranceBuy.svelte","../src/components/home/profile/ChitEvents.svelte","../src/components/home/insurance/StreakInsuranceSummary.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/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/blog/BlogSummary.svelte","../src/components/landingpages/LandingPage.svelte","../src/components/landingpages/HostedLandingPage.svelte","../src/components/landingpages/BlogPage.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 updateStreakInsurance(streakInsurance) {\n this.applyUpdate(\"global\", (_) => ({\n streakInsurance,\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({});\nconst cryptoBalancesLastUpdated = new Map();\nlet cryptoBalanceStoreValue = {};\ncryptoBalanceStore.subscribe((v) => cryptoBalanceStoreValue = v);\nexport const cryptoBalance = {\n subscribe: cryptoBalanceStore.subscribe,\n set: (ledger, balance) => {\n cryptoBalanceStore.update((record) => {\n record[ledger] = balance;\n cryptoBalancesLastUpdated.set(ledger, Date.now());\n return record;\n });\n },\n valueIfUpdatedRecently: (ledger) => {\n const lastUpdated = cryptoBalancesLastUpdated.get(ledger);\n if (lastUpdated === undefined) {\n return undefined;\n }\n return Date.now() - lastUpdated < 5 * 60 * 1000\n ? cryptoBalanceStoreValue[ledger]\n : undefined;\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 { derived, writable } from \"svelte/store\";\nimport { localGlobalUpdates } from \"./localGlobalUpdates\";\nexport const serverStreakInsuranceStore = writable({\n daysInsured: 0,\n daysMissed: 0,\n});\nexport const streakInsuranceStore = derived([serverStreakInsuranceStore, localGlobalUpdates], ([$serverInsurance, $local]) => $local.get(\"global\")?.streakInsurance ?? $serverInsurance);\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\";\nimport { serverStreakInsuranceStore } from \"./streakInsurance\";\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, streakInsurance) {\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 if (streakInsurance !== undefined) {\n serverStreakInsuranceStore.set(streakInsurance);\n }\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.map((r) => ({ ...r }));\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, serverStreakInsuranceStore } 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 serverStreakInsuranceStore.subscribe((state) => (this.serverStreakInsurance = state));\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","export class Semaphore {\n #queue = [];\n #available;\n constructor(max) {\n this.#available = max;\n }\n execute(func) {\n return new Promise((resolve, reject) => {\n const wrapped = () => func().then(resolve).catch(reject);\n if (this.#available > 0) {\n this.#available--;\n wrapped().finally(() => this.onComplete());\n }\n else {\n this.#queue.push(wrapped);\n }\n });\n }\n onComplete() {\n const next = this.#queue.shift();\n if (next) {\n next().finally(() => this.onComplete());\n }\n else {\n this.#available++;\n }\n }\n}\n","export function snapshot(req) {\n return $state.snapshot(req);\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\";\nimport { Semaphore } from \"./utils/semaphore\";\nimport { snapshot } from \"./snapshot.svelte\";\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 #refreshBalanceSemaphore;\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.#refreshBalanceSemaphore = new Semaphore(10);\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, force = true) {\n const user = this.#liveState.user;\n if (user === undefined) {\n return Promise.resolve(0n);\n }\n return this.#refreshBalanceSemaphore.execute(() => {\n if (!force) {\n const valueIfUpdatedRecently = cryptoBalance.valueIfUpdatedRecently(ledger);\n if (valueIfUpdatedRecently !== undefined) {\n return Promise.resolve(valueIfUpdatedRecently);\n }\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 }\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 setAirdropConfig(channelId, channelName) {\n return this.#sendRequest({ kind: \"setAirdropConfig\", channelId, channelName });\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, chatsResponse.state.streakInsurance);\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(), 1000);\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, 5 * ONE_MINUTE_MILLIS, true);\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 ...snapshot(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 streakInsurancePrice(daysInsured, additionalDays) {\n let total = 0n;\n for (let i = 0; i < additionalDays; i++) {\n total += 2n ** BigInt(daysInsured + i) * 100000000n;\n }\n return total;\n }\n payForStreakInsurance(additionalDays, expectedPrice) {\n return this.#sendRequest({\n kind: \"payForStreakInsurance\",\n additionalDays,\n expectedPrice,\n })\n .then((resp) => {\n if (resp === \"success\") {\n localGlobalUpdates.updateStreakInsurance({\n ...this.#liveState.serverStreakInsurance,\n daysInsured: this.#liveState.serverStreakInsurance.daysInsured + additionalDays,\n });\n }\n return resp;\n })\n .catch((err) => {\n console.log(\"Failed to pay for streak insurance: \", err);\n return \"failure\";\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","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 {@render children()}\n\n\n
\n \n {#if $tooltipStore === tooltipContainer}\n \n {@render popupTemplate()}\n
\n {/if}\n \n\n\n\n","\n\n
\n {@render children?.()}\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 {#snippet popupTemplate()}\n \n {/snippet}\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 {#snippet popupTemplate()}\n {#if statusName !== undefined}\n \n {/if}\n {/snippet}\n \n{/if}\n","\n\n{#if show}\n {#if showTooltip}\n \n
\n {num}\n
\n {#snippet popupTemplate()}\n {`${streak} day streak!`}\n {/snippet}\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 {@render children?.()}\n {:else}\n {\"Working ...\"}\n {/if}\n
\n
\n\n\n\n","\n\n\n {#if !loading}\n {@render children?.()}\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 {@render children?.()}\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","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 {@render children?.()}\n
\n
\n\n\n","\n\n\n
\n \n
\n {answer}\n {#if voted}\n \n {/if}\n
\n
\n
\n {#snippet popupTemplate()}\n {buildTooltipText()}\n {/snippet}\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 {@render children?.()}\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","\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 \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.requiresCaptcha}\n
\n 🤪\n \n
\n {/if}\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\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 {#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 {#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
refresh(true)} >\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 \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\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","\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{#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 {#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 {#snippet popupTemplate()}\n \n {/snippet}\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 onDeleteUser(userOrGroup)}>\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 ? onchange?.(BigInt(dateValue.getTime())) : onchange?.(null);\n }} />\n {#if !dateIsValid}\n
\n \n
\n \n
\n {#snippet popupTemplate()}\n \n {/snippet}\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
{arg.value}
\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 {#snippet popupTemplate()}\n \n {/snippet}\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 {#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 \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 {#snippet menuIcon()}\n \n \n \n {/snippet}\n {#snippet menuItems()}\n \n {/snippet}\n \n {:else}\n
\n \n
\n {/if}\n
\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 OpenChat blog\n\n {#each posts as post}\n \n {/each}\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 {#snippet popupTemplate()}\n \n {/snippet}\n
\n \n
\n \n
\n {#snippet popupTemplate()}\n \n {/snippet}\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","updateStreakInsurance","streakInsurance","installBot","botId","installedDirectBots","removedDirectBots","removeBot","nervousSystemLookup","exchangeRatesLookupStore","cryptoBalanceStore","cryptoBalancesLastUpdated","cryptoBalanceStoreValue","cryptoBalance","balance","record","valueIfUpdatedRecently","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","serverStreakInsuranceStore","daysInsured","daysMissed","streakInsuranceStore","$serverInsurance","$local","installedServerDirectBots","$serverBots","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","serverStreakInsurance","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","Semaphore","queue","available","execute","func","wrapped","onComplete","snapshot","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","refreshBalanceSemaphore","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","force","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","setAirdropConfig","channelName","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","streakInsurancePrice","additionalDays","payForStreakInsurance","expectedPrice","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","centerOfScreen","elementRect","viewport","w","documentElement","clientWidth","h","clientHeight","centerY","y","defaults","variantFlipOrder","middle","positionFlipOrder","bottom","position","padding","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","align","gutter","show","currentTooltip","hide","isTouchDevice","maxTouchPoints","msMaxTouchPoints","supportsHover","matchMedia","isTouchOnlyDevice","mobileOperatingSystem","vendor","opera","MSStream","getMobileOperatingSystem","tooltipContainer","enable","fill","longPressed","autoWidth","textLength","longestWord","uppercase","hovering","$.derived","$.get","maxWidth","mobile","MIN_WIDTH","MAX_WIDTH","CHAR_WIDTH","numChars","sqrt","calculateMaxWidth","closeTooltip","$.user_effect","tick","dom","getDomElement","showTooltip","onDestroy","HOVER_DELAY","enableLongPress","coords","hoverTimer","longPressTimer","containerDiv","$.state","startX","startY","startHover","clientX","clientY","endHover","handleDocumentTouchStart","cancelLongPress","handleTouchStart","changedTouches","once","stopPropagation","handleTouchMove","diffX","diffY","handleTouchEnd","clearLongPressTimer","onContextMenu","preventDefault","onMount","$.bind_this","div","$$value","$.set","classes","$.set_class","div_1","$0","$.transition","fade","$$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","$.proxy","userStatusUserId","$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","$mobileWidth","$pathParams","$fullWidth","$disableLeftNav","showRight","showMiddle","route","showLeft","showNav","rightPanel","floatRight","rightPanelWidth","createPanelWidthStore","menuAnchor","removeProperty","menuStore","centered","dim","positionInCenter","showMenu","currentMenu","hideMenu","$.mutable_source","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","$.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","$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","untrack","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_style","div_16","consequent_20","$.event","showSpinner","click","onClick","cls","loading","secondary","small","tiny","hollow","square","danger","random","darkenedDanger","percent","darkenHexColour","$currentTheme","colors","menuCloser","unsub","anchorElement","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","toggleZoom","onDoubleClick","imgElement","intersecting","zoom","zoomedWidth","zoomedHeight","recalculateZoomedDimensions","contentAspectRatio","imageWidth","imageHeight","normalised","fallback","loadMsg","normaliseContent","zoomable","ArrowExpand","node_5","rtl","$.set_attribute","onClose","ArrowCollapse","node_8","img_1","audioPlayer","percPlayed","circum","circle_1","fractionPlayed","buildTooltipText","numVotes","voted","voters","showVotes","buildPollUsernames","votedFor","percentageOfVote","votesForAnswer","numberOfVotes","txtColor","endDate","haveIVoted","totalVotes","cannotVote","allowUserToChangeVote","showVotesBeforeEndDate","answer","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","span_1","nowrap","nogap","mirror","spin","coinSize","claimsStore","suspectedAutomationBot","PAUSE_TRESHOLD","lastMoved","mousemove","Button","$.spread_props","$suspectedAutomationBot","probablyBot","botCheck","botd","detect","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","requiresCaptcha","showChallenge","userEligible","percentage","claimedByYou","finished","$now500","allClaimed","diamondOnly","lifetimeDiamondOnly","uniquePersonOnly","streakOnly","timeRemaining","restrictedPrize","onChallengeResult","Clock","div_19","fullWidthOnMobile","smaller","larger","$cryptoLookup","winner","transactionLinkText","chatButton","inGlobalContext","timestampStr","modclub","NamedNeurons","afdbb46396374af0baad270f06e738fbf60997359e3f1bbea2293312e3278aef","f513314523830ed270c65c4fa2bd6473b2bba3e4faf91b0e0782bf21c2e4ab25","eda6976220ea999ed4d5df28b217e4d452786b6c9dc8f3d892256eaca00017ce","fd052a2a6648357c984cd8a04edcb9e34a48967a46f44db9264f5156d7e96c61","proposalVotes","voting","iconColor","adoptPercent","rejectPercent","votingEnded","minYesPercentageOfTotal","minYesPercentageOfExercised","deadlineDate","div_6","div_7","round2","EPSILON","sum","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","$$events","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","div_3","div_4","balanceWithRefresh","reset","ledger1","tokenDetails0","ledger0","tokenDetails1","symbol0","symbol1","transferFees","insufficient","amount1","amount0Text","amount0","amount1Text","amountOther","tokenOther","calculateDollarAmount","e8s","exchangeRate","step","strokeWidth","foregroundColour","backgroundColour","ellipse","labelValues","steps","$.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","undeleting","onExpandMessage","transferText","desktop","datetime","reasons","report","reasonCode","toLocaleString","CopyIcon","consequent_23","consequent_22","alternate_22","consequent_21","alternate_21","alternate_20","alternate_19","alternate_18","alternate_17","alternate_16","alternate_15","alternate_14","alternate_13","alternate_12","alternate_11","alternate_10","alternate_9","alternate_8","alternate_7","alternate_6","alternate_5","isTextContent","isP2PSwap","getUrl","markers","CENTER","rads","degrees","percentageExpired","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","node_4","SCROLL_PROXIMITY","minAmount","maxAmount","showDollarAmount","inputElement","validate","trimDecimals","toTrim","tokenDecimals","amountInUsd","minAmountFormatted","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","userTipsList","userTips","totalAmount","$$item","chatMembers","communityRole","chatRole","MAX_COMMAND_LENGTH","paramValues","botCommand","paramValue","paramsLength","paramMode","CogOutline","onCopy","sendApiKeyToBot","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","onTipMessage","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","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","onToggle","node_10","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","getGateText","deleteGate","onOpened","clickable","showDetail","showNoGate","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","onDeleteChannel","after","deleteChannel","toggleShare","$sharing","stopScreenShare","startScreenShare","toggleMic","setLocalAudio","localAudio","toggleCamera","setLocalVideo","localVideo","hangup","goToCall","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_11","node_14","userOrBotKey","node_21","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","svelte_virtual_list_contents","svelte_virtual_list_viewport","old_start","row_height","expected_height","actual_height","selectedEvent","uptodate","$activityEvents","selectEvent","$layoutStore","offset","reactiveResourceKey","$toastStore","$reactiveResourceKey","withDetail","apply","$$args","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","newTimeToLive","botname","last","readByThem","focused","canSendAny","canReplyInThread","editing","onReplyTo","userSummary","editEvent","levelType","templateValues","enabledPrev","showEvent","changedStr","frozenByStr","chatFrozenByText","unfrozenByStr","alternate_23","leftEye","rightEye","lx","ly","rx","ry","lpos","rpos","center","move","eye","mouse","rad","dy","mouseMove","dl","dr","rect_1","rect_2","groupName","subtitle","BotCommands","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","$eventsStore","reverse","$expandedDeletedMessages","timelineItem","innerGroup","firstKey","userGroupKey","node_6","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","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","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","perc","learnToEarn","LearnToEarn","afterBlock","handleOpenDirectChat","showUserProfile","task1","task2","canBlock","blockedChatUsers","blockedCommunityUsers","$blockedUsers","$currentChatBlockedUsers","$currentCommunityBlockedUsers","canUnblock","canUnblockUser","ClockOutline","Debouncer","timerId","delayMs","placeholderKey","debouncer","clearFilter","$.bind_value","selectedUsers","onSelectUser","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","candidateRules","channelsValid","detailsValid","rulesValid","visibilityValid","changeStep","makePrivate","visDirty","verificationWarning","permissionsDirty","avatarDirty","bannerDirty","languageDirty","getSteps","canEditPermissions","nameDirty","descDirty","infoDirty","dirty","stepIndex","node_7","freeInfo","diamondInfo","Minus","expression_36","expression_40","expression_42","buildNoticeText","actionDate","actionText","none","moderator","isCommunityPublic","isChannel","generalPartition","messagePartition","threadPartition","partitionMessagePermissions","mps","filterPermissions","translationExt","String","candidateGroup","originalGroup","changeVisibility","updatedGroup","ttlDirty","messagesVisibleToNonMembersDirty","externalUrlDirty","groupUpdateErrorMessage","createGroup","groupCreationErrorMessage","hideInviteUsers","onGroupCreated","chatIdentifierUnset","urlValid","overrideChatMessages","onOverrideChatMessagesChanged","structuredClone","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","selectOption","selectedNetwork","networkOptions","scanner","saveAccountElement","amountToSend","ckbtcMinterWithdrawalInfo","validAccountName","capturingAccount","ckbtcMinterInfoDebouncer","selectedBtcNetwork","isBtc","isBtcNetwork","targetAccountValid","isAccountIdentifierValid","minWithdrawalAmount","validSend","btcNetworkFee","feeEstimate","unknownAccount","saveAccount","trimmedName","btcAddress","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_16","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","node_27","loginState","getAll","loggingInWithEmail","loggingInWithEth","loggingInWithSol","spinning","cancelLink","used","$storageInGb","fontSizeScale","setFontScale","$scale","adjusted","translateScale","showReported","hoveredIndex","previousStats","totalMessages","textPerc","imagePerc","videoPerc","audioPerc","filePerc","pollPerc","cryptoPerc","giphyPerc","tween","cubicOut","sumSlice","percentages","cryptoMessages","stats","$textPerc","$imagePerc","$videoPerc","$audioPerc","$filePerc","$pollPerc","$cryptoPerc","$giphyPerc","displayNameValid","originalDisplayName","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","otherMonth","selectedMonth","monthTitle","calendarState","ja","weekDays","showDate","translatedLocale","endOfDay","getTitleText","allDates","finalDay","getDates","week","currentDaysInsured","$streakInsuranceStore","currentDaysMissed","priceE8s","price","insufficientBalance","paying","totalDays","maxReached","pay","totalEarned","utcToLocal","utc","utcDate","localToUtc","dateSelected","$chitState","buy","StreakInsuranceBuy","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_82","editGroup","unauthorized","confirmReset","getLink","toggleLink","onConfirmReset","avatarSrc","combinedRulesText","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","editUserGroup","confirmDeleteUserGroup","groupToDelete","openedGroupId","selectedGroup","confirmingDelete","createLookup","matchingGroups","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","button_4","button_5","button_6","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","topics","groupTopics","kebab","topicsInCategory","$filteredProposalsStore","span_2","$currentCommunityRules","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","$currentChatRules","section_1","closeRightPanel","suggestion","saved","extractTokens","$editingLabel","yourLanguage","englishValue","englishTokens","tokenMismatch","originalTokens","tokensMatch","earnMore","claimed","additional","showInsurance","previousBalance","leaderboard","onLeaderboard","badgesVisible","calculateBadgesVisible","maxBadgeVisible","currentStreak","maxBadge","calculatePercentage","badge","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_36","onSelectParam","isCommunity","onFocus","onBlur","autonomousPermissions","getTabs","onSelectCommand","schemaLoaded","selectedCommandIndex","schemaLoading","dependencies","debouncedDerived","traverseCommand","nextCommand","previousCommand","loadDefinition","configtabs","botState","ownerDirty","endpointDirty","$.snapshot","selectBot","iiPrincipalCopy","messageToForward","convertGroup","showProfileCard","confirmActionEvent","showUpgrade","creatingThread","$currentThemeName","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","clickLink","rootPath","imgUrl","introStyle","isFirefox","brags","counter","bgPath","bgUrl","dateStr","codeRef","onCodeEntered","isCodeValid","showSignInWithMagicLinkModal","onLinkClicked","postsBySlug","access_gate_expiry","component","signin","ic_footprint","communities_released","governance","website_releases","home","showBlog","copyUrl","copySize","showMenuForLandingRoute","BlogPostPage","sortByDate","posts","post","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","details","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","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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"}