This repository has been archived on 2025-01-27. You can view files and clone it, but cannot push or open issues or pull requests.
puyoskey-firefish/packages/backend-rs/index.d.ts
HidemaruOwO cdd8109e81 ♻️ Refer new firefish (.gitlab-ci.yml, .gitlab/issue_templates/default.md, .gitlab/issue_templates/discussion.md, .gitlab/issue_templates/feature.md, .gitlab/issue_templates/refactor.md, .gitlab/merge_request_templates/default.md, .gitlab/merge_request_templates/release.md, Cargo.lock, Cargo.toml, Dockerfile, dev/container/docker-compose.yml, dev/docs/local-installation.md, docs/changelog.md, docs/downgrade.sql, docs/install.md, docs/notice-for-admins.md, locales/ca-ES.yml, locales/en-US.yml, locales/eo.yml, locales/ja-JP.yml, locales/ko-KR.yml, locales/zh-CN.yml, locales/zh-TW.yml, package.json, packages/backend-rs/Cargo.toml, packages/backend-rs/index.d.ts, packages/backend-rs/index.js, packages/backend-rs/package.json, packages/backend-rs/src/cache/bare.rs, packages/backend-rs/src/cache/mod.rs, packages/backend-rs/src/cache/redis.rs, packages/backend-rs/src/config/meta.rs, packages/backend-rs/src/database/mod.rs, packages/backend-rs/src/federation/activitypub/object/accept.rs, packages/backend-rs/src/federation/activitypub/object/add.rs, packages/backend-rs/src/federation/activitypub/object/emoji.rs, packages/backend-rs/src/federation/activitypub/object/flag.rs, packages/backend-rs/src/federation/activitypub/object/follow.rs, packages/backend-rs/src/federation/activitypub/object/hashtag.rs, packages/backend-rs/src/federation/activitypub/object/like.rs, packages/backend-rs/src/federation/activitypub/object/mention.rs, packages/backend-rs/src/federation/activitypub/object/mod.rs, packages/backend-rs/src/federation/activitypub/object/read.rs, packages/backend-rs/src/federation/activitypub/object/reject.rs, packages/backend-rs/src/federation/activitypub/object/remove.rs, packages/backend-rs/src/federation/activitypub/object/tombstone.rs, packages/backend-rs/src/federation/internal_actor/instance.rs, packages/backend-rs/src/federation/internal_actor/relay.rs, packages/backend-rs/src/federation/nodeinfo/fetch.rs, packages/backend-rs/src/federation/nodeinfo/generate.rs, packages/backend-rs/src/init/system_info.rs, packages/backend-rs/src/lib.rs, packages/backend-rs/src/misc/emoji/mod.rs, packages/backend-rs/src/misc/emoji/reaction.rs, packages/backend-rs/src/misc/emoji/unicode.rs, packages/backend-rs/src/misc/get_image_size.rs, packages/backend-rs/src/misc/latest_version.rs, packages/backend-rs/src/misc/mod.rs, packages/backend-rs/src/misc/note/mod.rs, packages/backend-rs/src/misc/random_icon.rs, packages/backend-rs/src/misc/should_nyaify.rs, packages/backend-rs/src/misc/system_info.rs, packages/backend-rs/src/misc/translate.rs, packages/backend-rs/src/misc/user/mod.rs, packages/backend-rs/src/model/entity/abuse_user_report.rs, packages/backend-rs/src/model/entity/access_token.rs, packages/backend-rs/src/model/entity/ad.rs, packages/backend-rs/src/model/entity/announcement.rs, packages/backend-rs/src/model/entity/announcement_read.rs, packages/backend-rs/src/model/entity/antenna.rs, packages/backend-rs/src/model/entity/app.rs, packages/backend-rs/src/model/entity/attestation_challenge.rs, packages/backend-rs/src/model/entity/auth_session.rs, packages/backend-rs/src/model/entity/blocking.rs, packages/backend-rs/src/model/entity/channel.rs, packages/backend-rs/src/model/entity/channel_following.rs, packages/backend-rs/src/model/entity/channel_note_pining.rs, packages/backend-rs/src/model/entity/clip.rs, packages/backend-rs/src/model/entity/clip_note.rs, packages/backend-rs/src/model/entity/drive_file.rs, packages/backend-rs/src/model/entity/drive_folder.rs, packages/backend-rs/src/model/entity/emoji.rs, packages/backend-rs/src/model/entity/follow_request.rs, packages/backend-rs/src/model/entity/following.rs, packages/backend-rs/src/model/entity/gallery_like.rs, packages/backend-rs/src/model/entity/gallery_post.rs, packages/backend-rs/src/model/entity/hashtag.rs, packages/backend-rs/src/model/entity/instance.rs, packages/backend-rs/src/model/entity/messaging_message.rs, packages/backend-rs/src/model/entity/meta.rs, packages/backend-rs/src/model/entity/migrations.rs, packages/backend-rs/src/model/entity/mod.rs, packages/backend-rs/src/model/entity/moderation_log.rs, packages/backend-rs/src/model/entity/muted_note.rs, packages/backend-rs/src/model/entity/muting.rs, packages/backend-rs/src/model/entity/note.rs, packages/backend-rs/src/model/entity/note_edit.rs, packages/backend-rs/src/model/entity/note_favorite.rs, packages/backend-rs/src/model/entity/note_file.rs, packages/backend-rs/src/model/entity/note_reaction.rs, packages/backend-rs/src/model/entity/note_thread_muting.rs, packages/backend-rs/src/model/entity/note_unread.rs, packages/backend-rs/src/model/entity/note_watching.rs, packages/backend-rs/src/model/entity/notification.rs, packages/backend-rs/src/model/entity/page.rs, packages/backend-rs/src/model/entity/page_like.rs, packages/backend-rs/src/model/entity/password_reset_request.rs, packages/backend-rs/src/model/entity/poll.rs, packages/backend-rs/src/model/entity/poll_vote.rs, packages/backend-rs/src/model/entity/prelude.rs, packages/backend-rs/src/model/entity/promo_note.rs, packages/backend-rs/src/model/entity/promo_read.rs, packages/backend-rs/src/model/entity/registration_ticket.rs, packages/backend-rs/src/model/entity/registry_item.rs, packages/backend-rs/src/model/entity/relay.rs, packages/backend-rs/src/model/entity/renote_muting.rs, packages/backend-rs/src/model/entity/reply_muting.rs, packages/backend-rs/src/model/entity/sea_orm_active_enums.rs, packages/backend-rs/src/model/entity/signin.rs, packages/backend-rs/src/model/entity/sw_subscription.rs, packages/backend-rs/src/model/entity/used_username.rs, packages/backend-rs/src/model/entity/user.rs, packages/backend-rs/src/model/entity/user_group.rs, packages/backend-rs/src/model/entity/user_group_invitation.rs, packages/backend-rs/src/model/entity/user_group_invite.rs, packages/backend-rs/src/model/entity/user_group_joining.rs, packages/backend-rs/src/model/entity/user_ip.rs, packages/backend-rs/src/model/entity/user_keypair.rs, packages/backend-rs/src/model/entity/user_list.rs, packages/backend-rs/src/model/entity/user_list_joining.rs, packages/backend-rs/src/model/entity/user_note_pining.rs, packages/backend-rs/src/model/entity/user_pending.rs, packages/backend-rs/src/model/entity/user_profile.rs, packages/backend-rs/src/model/entity/user_publickey.rs, packages/backend-rs/src/model/entity/user_security_key.rs, packages/backend-rs/src/model/entity/webhook.rs, packages/backend-rs/src/service/antenna/check_hit.rs, packages/backend-rs/src/service/antenna/mod.rs, packages/backend-rs/src/service/antenna/process_new_note.rs, packages/backend-rs/src/service/antenna/update.rs, packages/backend-rs/src/service/push_notification.rs, packages/backend-rs/src/service/stream.rs, packages/backend-rs/src/util/id.rs, packages/backend/package.json, packages/backend/src/boot/master.ts, packages/backend/src/migration/1644010796173-convert-hard-mutes.ts, packages/backend/src/migration/1652859567549-uniform-themecolor.ts, packages/backend/src/migration/1722346019160-set-emoji-public-url.ts, packages/backend/src/models/entities/emoji.ts, packages/backend/src/models/entities/note.ts, packages/backend/src/models/entities/user-profile.ts, packages/backend/src/models/entities/user.ts, packages/backend/src/models/repositories/renote-muting.ts, packages/backend/src/models/repositories/reply-muting.ts, packages/backend/src/models/repositories/user.ts, packages/backend/src/queue/processors/db/import-firefish-post.ts, packages/backend/src/queue/processors/db/import-masto-post.ts, packages/backend/src/remote/activitypub/kernel/like.ts, packages/backend/src/remote/activitypub/misc/contexts.ts, packages/backend/src/remote/activitypub/models/person.ts, packages/backend/src/remote/activitypub/renderer/note.ts, packages/backend/src/remote/activitypub/renderer/person.ts, packages/backend/src/remote/activitypub/request.ts, packages/backend/src/remote/activitypub/resolver.ts, packages/backend/src/remote/activitypub/type.ts, packages/backend/src/server/activitypub.ts, packages/backend/src/server/api/common/inject-featured.ts, packages/backend/src/server/api/common/read-messaging-message.ts, packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts, packages/backend/src/server/api/endpoints/notes/featured.ts, packages/backend/src/server/api/mastodon/helpers/misc.ts, packages/backend/src/server/file/byte-range-readable.ts, packages/backend/src/server/index.ts, packages/backend/src/server/web/bios.css, packages/backend/src/server/web/cli.css, packages/backend/src/server/web/style.css, packages/backend/src/services/blocking/create.ts, packages/backend/src/services/fetch-instance-metadata.ts, packages/backend/src/services/following/create.ts, packages/backend/src/services/following/delete.ts, packages/backend/src/services/following/reject.ts, packages/backend/src/services/following/requests/accept.ts, packages/backend/src/services/following/requests/cancel.ts, packages/backend/src/services/following/requests/create.ts, packages/backend/src/services/i/pin.ts, packages/backend/src/services/logger.ts, packages/backend/src/services/messages/delete.ts, packages/backend/src/services/note/create.ts, packages/backend/src/services/note/delete.ts, packages/backend/src/services/note/reaction/create.ts, packages/backend/src/services/note/reaction/delete.ts, packages/client/package.json, packages/client/src/components/MkAbuseReport.vue, packages/client/src/components/MkAbuseReportWindow.vue, packages/client/src/components/MkAnnouncement.vue, packages/client/src/components/MkAutocomplete.vue, packages/client/src/components/MkAvatars.vue, packages/client/src/components/MkButton.vue, packages/client/src/components/MkChannelFollowButton.vue, packages/client/src/components/MkChannelPreview.vue, packages/client/src/components/MkChart.vue, packages/client/src/components/MkChartTooltip.vue, packages/client/src/components/MkChatPreview.vue, packages/client/src/components/MkContainer.vue, packages/client/src/components/MkCropperDialog.vue, packages/client/src/components/MkCwButton.vue, packages/client/src/components/MkDateSeparatedList.vue, packages/client/src/components/MkDialog.vue, packages/client/src/components/MkDonation.vue, packages/client/src/components/MkDrive.file.vue, packages/client/src/components/MkDrive.folder.vue, packages/client/src/components/MkDrive.navFolder.vue, packages/client/src/components/MkDrive.vue, packages/client/src/components/MkDriveFileThumbnail.vue, packages/client/src/components/MkDriveSelectDialog.vue, packages/client/src/components/MkEmojiPicker.section.vue, packages/client/src/components/MkEmojiPicker.vue, packages/client/src/components/MkEmojiPickerDialog.vue, packages/client/src/components/MkFileListForAdmin.vue, packages/client/src/components/MkFolder.vue, packages/client/src/components/MkFollowButton.vue, packages/client/src/components/MkForgotPassword.vue, packages/client/src/components/MkGalleryPostPreview.vue, packages/client/src/components/MkImageViewer.vue, packages/client/src/components/MkImgWithBlurhash.vue, packages/client/src/components/MkInfo.vue, packages/client/src/components/MkInstanceCardMini.vue, packages/client/src/components/MkInstanceSelectDialog.vue, packages/client/src/components/MkInstanceStats.vue, packages/client/src/components/MkInstanceTicker.vue, packages/client/src/components/MkKeyValue.vue, packages/client/src/components/MkLaunchPad.vue, packages/client/src/components/MkLink.vue, packages/client/src/components/MkManyAnnouncements.vue, packages/client/src/components/MkMedia.vue, packages/client/src/components/MkMediaBanner.vue, packages/client/src/components/MkMediaCaption.vue, packages/client/src/components/MkMediaList.vue, packages/client/src/components/MkMention.vue, packages/client/src/components/MkMenu.child.vue, packages/client/src/components/MkMenu.vue, packages/client/src/components/MkModPlayer.vue, packages/client/src/components/MkModal.vue, packages/client/src/components/MkModalPageWindow.vue, packages/client/src/components/MkModalWindow.vue, packages/client/src/components/MkMoved.vue, packages/client/src/components/MkNote.vue, packages/client/src/components/MkNoteDetailed.vue, packages/client/src/components/MkNotePreview.vue, packages/client/src/components/MkNoteSimple.vue, packages/client/src/components/MkNoteSub.vue, packages/client/src/components/MkNotification.vue, packages/client/src/components/MkNotificationFolded.vue, packages/client/src/components/MkNotificationToast.vue, packages/client/src/components/MkObjectView.value.vue, packages/client/src/components/MkPagePreview.vue, packages/client/src/components/MkPageWindow.vue, packages/client/src/components/MkPagination.vue, packages/client/src/components/MkPoll.vue, packages/client/src/components/MkPollEditor.vue, packages/client/src/components/MkPopupMenu.vue, packages/client/src/components/MkPostForm.vue, packages/client/src/components/MkPostFormAttaches.vue, packages/client/src/components/MkPostSearch.vue, packages/client/src/components/MkPullToRefresh.vue, packages/client/src/components/MkQrCode.vue, packages/client/src/components/MkQuoteButton.vue, packages/client/src/components/MkReactedUsers.vue, packages/client/src/components/MkReactionTooltip.vue, packages/client/src/components/MkReactionsViewer.details.vue, packages/client/src/components/MkReactionsViewer.reaction.vue, packages/client/src/components/MkReactionsViewer.vue, packages/client/src/components/MkRemoteCaution.vue, packages/client/src/components/MkRipple.vue, packages/client/src/components/MkSearchBar.vue, packages/client/src/components/MkShowMoreButton.vue, packages/client/src/components/MkSignin.vue, packages/client/src/components/MkSignup.vue, packages/client/src/components/MkSimpleTextWindow.vue, packages/client/src/components/MkSparkle.vue, packages/client/src/components/MkSuperMenu.vue, packages/client/src/components/MkTab.vue, packages/client/src/components/MkTagCloud.vue, packages/client/src/components/MkTimeline.vue, packages/client/src/components/MkToast.vue, packages/client/src/components/MkTokenGenerateWindow.vue, packages/client/src/components/MkTooltip.vue, packages/client/src/components/MkTutorialDialog.vue, packages/client/src/components/MkUpdated.vue, packages/client/src/components/MkUrlPreview.vue, packages/client/src/components/MkUrlPreviewPopup.vue, packages/client/src/components/MkUserCardMini.vue, packages/client/src/components/MkUserInfo.vue, packages/client/src/components/MkUserPreview.vue, packages/client/src/components/MkUserSelectDialog.vue, packages/client/src/components/MkUserSelectLocalDialog.vue, packages/client/src/components/MkUsersTooltip.vue, packages/client/src/components/MkVisibility.vue, packages/client/src/components/MkVisibilityPicker.vue, packages/client/src/components/MkWaitingDialog.vue, packages/client/src/components/MkWidgets.vue, packages/client/src/components/MkWindow.vue, packages/client/src/components/form/checkbox.vue, packages/client/src/components/form/folder.vue, packages/client/src/components/form/input.vue, packages/client/src/components/form/link.vue, packages/client/src/components/form/radio.vue, packages/client/src/components/form/radios.vue, packages/client/src/components/form/range.vue, packages/client/src/components/form/section.vue, packages/client/src/components/form/select.vue, packages/client/src/components/form/slot.vue, packages/client/src/components/form/suspense.vue, packages/client/src/components/form/switch.vue, packages/client/src/components/form/textarea.vue, packages/client/src/components/global/MkAd.vue, packages/client/src/components/global/MkAvatar.vue, packages/client/src/components/global/MkEmoji.vue, packages/client/src/components/global/MkError.vue, packages/client/src/components/global/MkLoading.vue, packages/client/src/components/global/MkMisskeyFlavoredMarkdown.vue, packages/client/src/components/global/MkPageHeader.vue, packages/client/src/components/global/MkSpacer.vue, packages/client/src/components/global/MkStickyContainer.vue, packages/client/src/components/global/MkUrl.vue, packages/client/src/components/note/MkNoteContent.vue, packages/client/src/components/note/MkNoteFooter.vue, packages/client/src/components/note/MkNoteFooterInfo.vue, packages/client/src/components/note/MkNoteHeader.vue, packages/client/src/components/note/MkNoteHeaderInfo.vue, packages/client/src/components/note/MkNoteMedia.vue, packages/client/src/components/note/MkNoteTranslation.vue, packages/client/src/components/note/MkRenoteBar.vue, packages/client/src/components/page/page.button.vue, packages/client/src/components/page/page.canvas.vue, packages/client/src/components/page/page.counter.vue, packages/client/src/components/page/page.note.vue, packages/client/src/components/page/page.number-input.vue, packages/client/src/components/page/page.post.vue, packages/client/src/components/page/page.section.vue, packages/client/src/components/page/page.switch.vue, packages/client/src/components/page/page.text-input.vue, packages/client/src/components/page/page.text.vue, packages/client/src/init.ts, packages/client/src/navbar.ts, packages/client/src/pages/_error_.vue, packages/client/src/pages/about-firefish.vue, packages/client/src/pages/about.emojis.vue, packages/client/src/pages/about.federation.vue, packages/client/src/pages/about.vue, packages/client/src/pages/admin-file.vue, packages/client/src/pages/admin/_header_.vue, packages/client/src/pages/admin/abuses.vue, packages/client/src/pages/admin/emoji-edit-dialog.vue, packages/client/src/pages/admin/emojis.vue, packages/client/src/pages/admin/files.vue, packages/client/src/pages/admin/index.vue, packages/client/src/pages/admin/overview.federation.vue, packages/client/src/pages/admin/overview.metrics.vue, packages/client/src/pages/admin/overview.moderators.vue, packages/client/src/pages/admin/overview.queue.vue, packages/client/src/pages/admin/overview.stats.vue, packages/client/src/pages/admin/overview.user.vue, packages/client/src/pages/admin/promotions.vue, packages/client/src/pages/admin/queue.chart.vue, packages/client/src/pages/admin/relays.vue, packages/client/src/pages/admin/settings.vue, packages/client/src/pages/admin/users.vue, packages/client/src/pages/announcements.vue, packages/client/src/pages/channel-editor.vue, packages/client/src/pages/channel.vue, packages/client/src/pages/channels.vue, packages/client/src/pages/clip.vue, packages/client/src/pages/emojis.emoji.vue, packages/client/src/pages/explore.featured.vue, packages/client/src/pages/explore.users.vue, packages/client/src/pages/explore.vue, packages/client/src/pages/follow-requests-sent.vue, packages/client/src/pages/follow-requests.vue, packages/client/src/pages/gallery/edit.vue, packages/client/src/pages/gallery/index.vue, packages/client/src/pages/gallery/post.vue, packages/client/src/pages/instance-info.vue, packages/client/src/pages/messaging/index.vue, packages/client/src/pages/messaging/messaging-room.form.vue, packages/client/src/pages/messaging/messaging-room.message.vue, packages/client/src/pages/messaging/messaging-room.vue, packages/client/src/pages/mfm-cheat-sheet.vue, packages/client/src/pages/miauth.vue, packages/client/src/pages/my-antennas/editor.vue, packages/client/src/pages/my-antennas/index.vue, packages/client/src/pages/my-clips/index.vue, packages/client/src/pages/my-groups/group.vue, packages/client/src/pages/my-groups/index.vue, packages/client/src/pages/my-lists/index.vue, packages/client/src/pages/my-lists/list.vue, packages/client/src/pages/no-graze.vue, packages/client/src/pages/note.vue, packages/client/src/pages/notifications.vue, packages/client/src/pages/oauth.vue, packages/client/src/pages/page-editor/els/page-editor.el.button.vue, packages/client/src/pages/page-editor/els/page-editor.el.if.vue, packages/client/src/pages/page-editor/els/page-editor.el.image.vue, packages/client/src/pages/page-editor/els/page-editor.el.note.vue, packages/client/src/pages/page-editor/els/page-editor.el.switch.vue, packages/client/src/pages/page-editor/els/page-editor.el.text.vue, packages/client/src/pages/page-editor/els/page-editor.el.textarea.vue, packages/client/src/pages/page-editor/page-editor.container.vue, packages/client/src/pages/page-editor/page-editor.script-block.vue, packages/client/src/pages/page-editor/page-editor.vue, packages/client/src/pages/page.vue, packages/client/src/pages/pages.vue, packages/client/src/pages/scratchpad.vue, packages/client/src/pages/search.vue, packages/client/src/pages/settings/2fa.qrdialog.vue, packages/client/src/pages/settings/2fa.vue, packages/client/src/pages/settings/accounts.vue, packages/client/src/pages/settings/apps.vue, packages/client/src/pages/settings/deck.vue, packages/client/src/pages/settings/drive.vue, packages/client/src/pages/settings/general.vue, packages/client/src/pages/settings/import-export.vue, packages/client/src/pages/settings/index.vue, packages/client/src/pages/settings/instance-mute.vue, packages/client/src/pages/settings/migration.vue, packages/client/src/pages/settings/mute-block.vue, packages/client/src/pages/settings/navbar.vue, packages/client/src/pages/settings/other.vue, packages/client/src/pages/settings/plugin.vue, packages/client/src/pages/settings/profile.vue, packages/client/src/pages/settings/reaction.vue, packages/client/src/pages/settings/security.vue, packages/client/src/pages/settings/sounds.vue, packages/client/src/pages/settings/statusbar.vue, packages/client/src/pages/settings/theme.vue, packages/client/src/pages/settings/word-mute.vue, packages/client/src/pages/share.vue, packages/client/src/pages/tag.vue, packages/client/src/pages/theme-editor.vue, packages/client/src/pages/timeline.vue, packages/client/src/pages/user-info.vue, packages/client/src/pages/user-list-timeline.vue, packages/client/src/pages/user/clips.vue, packages/client/src/pages/user/home.vue, packages/client/src/pages/user/index.photos.vue, packages/client/src/pages/user/index.timeline.vue, packages/client/src/pages/user/index.vue, packages/client/src/pages/user/media-list.vue, packages/client/src/pages/user/reactions.vue, packages/client/src/pages/welcome.entrance.a.vue, packages/client/src/pages/welcome.entrance.b.vue, packages/client/src/pages/welcome.entrance.c.vue, packages/client/src/pages/welcome.setup.vue, packages/client/src/pages/welcome.timeline.vue, packages/client/src/scripts/get-note-menu.ts, packages/client/src/scripts/get-user-menu.ts, packages/client/src/store.ts, packages/client/src/style.scss, packages/client/src/ui/_common_/common.vue, packages/client/src/ui/_common_/navbar-for-mobile.vue, packages/client/src/ui/_common_/navbar.vue, packages/client/src/ui/_common_/statusbar-federation.vue, packages/client/src/ui/_common_/statusbar-rss.vue, packages/client/src/ui/_common_/statusbar-user-list.vue, packages/client/src/ui/_common_/statusbars.vue, packages/client/src/ui/_common_/stream-indicator.vue, packages/client/src/ui/_common_/upload.vue, packages/client/src/ui/deck.vue, packages/client/src/ui/deck/antenna-column.vue, packages/client/src/ui/deck/channel-column.vue, packages/client/src/ui/deck/column.vue, packages/client/src/ui/deck/direct-column.vue, packages/client/src/ui/deck/list-column.vue, packages/client/src/ui/deck/mentions-column.vue, packages/client/src/ui/deck/notifications-column.vue, packages/client/src/ui/deck/tl-column.vue, packages/client/src/ui/deck/widgets-column.vue, packages/client/src/ui/universal.vue, packages/client/src/ui/universal.widgets.vue, packages/client/src/ui/visitor/a.vue, packages/client/src/ui/visitor/b.vue, packages/client/src/ui/visitor/header.vue, packages/client/src/ui/visitor/kanban.vue, packages/client/src/ui/zen.vue, packages/client/src/widgets/aiscript.vue, packages/client/src/widgets/calendar.vue, packages/client/src/widgets/clock.vue, packages/client/src/widgets/digital-clock.vue, packages/client/src/widgets/federation.vue, packages/client/src/widgets/instance-cloud.vue, packages/client/src/widgets/job-queue.vue, packages/client/src/widgets/memo.vue, packages/client/src/widgets/notifications.vue, packages/client/src/widgets/online-users.vue, packages/client/src/widgets/photos.vue, packages/client/src/widgets/rss-ticker.vue, packages/client/src/widgets/rss.vue, packages/client/src/widgets/server-info.vue, packages/client/src/widgets/server-metric/cpu-mem.vue, packages/client/src/widgets/server-metric/cpu.vue, packages/client/src/widgets/server-metric/disk.vue, packages/client/src/widgets/server-metric/mem.vue, packages/client/src/widgets/server-metric/pie.vue, packages/client/src/widgets/slideshow.vue, packages/client/src/widgets/timeline.vue, packages/client/src/widgets/trends.vue, packages/client/src/widgets/unix-clock.vue, packages/client/vite.config.ts, packages/firefish-js/package.json, packages/firefish-js/src/index.ts, packages/firefish-js/src/misc/langmap.ts, packages/macro-rs/macros-impl/src/lib.rs, packages/macro-rs/macros/src/lib.rs, packages/sw/package.json, packages/sw/src/scripts/notification-read.ts, packages/sw/vite.config.ts, pnpm-lock.yaml)
2024-08-23 02:17:33 +09:00

1798 lines
41 KiB
TypeScript

/* auto-generated by NAPI-RS */
/* Do NOT edit this file manually */
type DateTimeWithTimeZone = Date;
type Json = any;
export interface AbuseUserReport {
id: string
createdAt: DateTimeWithTimeZone
targetUserId: string
reporterId: string
assigneeId: string | null
resolved: boolean
comment: string
targetUserHost: string | null
reporterHost: string | null
forwarded: boolean
}
export interface AbuseUserReportLike {
id: string
targetUserId: string
reporterId: string
comment: string
}
export interface AccessToken {
id: string
createdAt: DateTimeWithTimeZone
token: string
hash: string
userId: string | null
appId: string | null
lastUsedAt: DateTimeWithTimeZone | null
session: string | null
name: string | null
description: string | null
iconUrl: string | null
permission: Array<string>
fetched: boolean
}
export interface Acct {
username: string
host: string | null
}
export declare function acctToString(acct: Acct): string
export type Activity = 'Accept'|
'Add'|
'Emoji'|
'Flag'|
'Follow'|
'Hashtag'|
'Like'|
'Mention'|
'Image'|
'Read'|
'Reject'|
'Remove'|
'Tombstone';
export interface Ad {
id: string
createdAt: DateTimeWithTimeZone
expiresAt: DateTimeWithTimeZone
place: string
priority: string
url: string
imageUrl: string
memo: string
ratio: number
}
export interface Announcement {
id: string
createdAt: DateTimeWithTimeZone
text: string
title: string
imageUrl: string | null
updatedAt: DateTimeWithTimeZone | null
showPopup: boolean
isGoodNews: boolean
}
export interface AnnouncementRead {
id: string
userId: string
announcementId: string
createdAt: DateTimeWithTimeZone
}
export interface Antenna {
id: string
createdAt: DateTimeWithTimeZone
userId: string
name: string
src: AntennaSrc
userListId: string | null
withFile: boolean
expression: string | null
notify: boolean
caseSensitive: boolean
withReplies: boolean
userGroupJoiningId: string | null
users: Array<string>
instances: Array<string>
keywords: Array<string>
excludeKeywords: Array<string>
}
export type AntennaSrc = 'all'|
'group'|
'home'|
'instances'|
'list'|
'users';
export interface ApAccept {
id: string
type: Activity
actor: string
object: ApFollow
}
export interface ApAdd {
type: Activity
actor: string
target: string
object: string
}
export interface ApEmoji {
id: string
type: Activity
name: string
updated: string
icon: Icon
}
export interface ApFlag {
type: Activity
actor: string
content: string
object: string
}
export interface ApFollow {
id: string
type: Activity
actor: string
object: string
}
export interface ApHashtag {
id: string
type: Activity
name: string
}
export interface ApLike {
id: string
type: Activity
actor: string
object: string
content: string
tag?: Array<ApEmoji>
}
export interface ApMention {
type: Activity
href: string
name: string
}
export interface App {
id: string
createdAt: DateTimeWithTimeZone
userId: string | null
secret: string
name: string
description: string
permission: Array<string>
callbackUrl: string | null
}
export interface ApRead {
type: Activity
actor: string
object: string
}
export interface ApReject {
id: string
type: Activity
actor: string
object: ApFollow
}
export interface ApRemove {
type: Activity
actor: string
target: string
object: string
}
export interface ApTombstone {
id: string
type: Activity
}
export interface AttestationChallenge {
id: string
userId: string
challenge: string
createdAt: DateTimeWithTimeZone
registrationChallenge: boolean
}
export interface AuthSession {
id: string
createdAt: DateTimeWithTimeZone
token: string
userId: string | null
appId: string
}
export interface Blocking {
id: string
createdAt: DateTimeWithTimeZone
blockeeId: string
blockerId: string
}
export interface Channel {
id: string
createdAt: DateTimeWithTimeZone
lastNotedAt: DateTimeWithTimeZone | null
userId: string | null
name: string
description: string | null
bannerId: string | null
notesCount: number
usersCount: number
}
export interface ChannelFollowing {
id: string
createdAt: DateTimeWithTimeZone
followeeId: string
followerId: string
}
export interface ChannelNotePining {
id: string
createdAt: DateTimeWithTimeZone
channelId: string
noteId: string
}
export type ChatEvent = 'message'|
'read'|
'deleted'|
'typing';
export type ChatIndexEvent = 'message'|
'read';
/**
* Returns whether `note` should be hard-muted.
*
* More specifically, this function returns `Ok(true)`
* if and only if one or more of these conditions are met:
*
* * the note (text or CW) contains any of the words/patterns
* * the "parent" note(s) (reply, quote) contain any of the words/patterns
* * the alt text of the attached files contains any of the words/patterns
*
* # Arguments
*
* * `note` : [PartialNoteToCheckWordMute] object
* * `muted_words` : list of muted keyword lists (each array item is a space-separated keyword list that represents an AND condition)
* * `muted_patterns` : list of JavaScript-style (e.g., `/foo/i`) regular expressions
*/
export declare function checkWordMute(note: PartialNoteToCheckWordMute, mutedWords: Array<string>, mutedPatterns: Array<string>): Promise<boolean>
export interface Clip {
id: string
createdAt: DateTimeWithTimeZone
userId: string
name: string
isPublic: boolean
description: string | null
}
export interface ClipNote {
id: string
noteId: string
clipId: string
}
export interface Config {
url: string
port: number
bind?: string
disableHsts?: boolean
db: DbConfig
redis: RedisConfig
cacheServer?: RedisConfig
proxy?: string
proxySmtp?: string
proxyBypassHosts?: Array<string>
allowedPrivateNetworks?: Array<string>
maxFileSize: number
accessLog?: string
clusterLimits: WorkerConfig
cuid?: IdConfig
outgoingAddress?: string
deliverJobConcurrency?: number
inboxJobConcurrency?: number
deliverJobPerSec?: number
inboxJobPerSec?: number
deliverJobMaxAttempts?: number
inboxJobMaxAttempts?: number
/** deprecated */
logLevel?: Array<string>
maxLogLevel?: string
syslog?: SysLogConfig
proxyRemoteFiles?: boolean
mediaProxy?: string
summalyProxyUrl?: string
reservedUsernames?: Array<string>
maxUserSignups?: number
isManagedHosting?: boolean
maxNoteLength: number
maxCaptionLength: number
deepl?: DeepLConfig
libreTranslate?: LibreTranslateConfig
email?: EmailConfig
objectStorage?: ObjectStorageConfig
version: string
host: string
hostname: string
redisKeyPrefix: string
scheme: string
wsScheme: string
apiUrl: string
wsUrl: string
authUrl: string
driveUrl: string
userAgent: string
}
export declare function countLocalUsers(): Promise<number>
export declare function countReactions(reactions: Record<string, number>): Record<string, number>
export interface Cpu {
model: string
cores: number
}
export declare function cpuInfo(): Cpu
export declare function cpuUsage(): number
export interface DbConfig {
host: string
port: number
db: string
user: string
pass: string
disableCache?: boolean
extra?: any
}
export interface DecodedReaction {
reaction: string
name: string | null
host: string | null
}
export declare function decodeReaction(reaction: string): DecodedReaction
export interface DeepLConfig {
managed?: boolean
authKey?: string
isPro?: boolean
}
export interface DriveFile {
id: string
createdAt: DateTimeWithTimeZone
userId: string | null
userHost: string | null
md5: string
name: string
type: string
size: number
comment: string | null
properties: Json
storedInternal: boolean
url: string
thumbnailUrl: string | null
webpublicUrl: string | null
accessKey: string | null
thumbnailAccessKey: string | null
webpublicAccessKey: string | null
uri: string | null
src: string | null
folderId: string | null
isSensitive: boolean
isLink: boolean
blurhash: string | null
webpublicType: string | null
requestHeaders: Json | null
requestIp: string | null
usageHint: DriveFileUsageHint | null
}
export type DriveFileEvent = 'create'|
'update'|
'delete';
export type DriveFileUsageHint = 'userAvatar'|
'userBanner';
export interface DriveFolder {
id: string
createdAt: DateTimeWithTimeZone
name: string
userId: string | null
parentId: string | null
}
export type DriveFolderEvent = 'create'|
'update'|
'delete';
export interface EmailConfig {
managed?: boolean
address?: string
host?: string
port?: number
user?: string
pass?: string
useImplicitSslTls?: boolean
}
export interface Emoji {
id: string
updatedAt: DateTimeWithTimeZone | null
name: string
host: string | null
originalUrl: string
uri: string | null
type: string | null
aliases: Array<string>
category: string | null
publicUrl: string
license: string | null
width: number | null
height: number | null
}
export declare enum Event {
Notification = 0,
NewNotification = 1,
Mention = 2,
NewMention = 3,
Chat = 4,
NewChat = 5,
NewDm = 6,
Reply = 7,
Renote = 8,
Follow = 9,
Followed = 10,
Unfollow = 11,
NewFollowRequest = 12,
Page = 13,
ReadAllNotifications = 14,
ReadAllMentions = 15,
ReadNotifications = 16,
ReadAllDms = 17,
ReadAllChats = 18,
ReadAntenna = 19,
ReadAllAntennaPosts = 20,
NewAntennaPost = 21,
ReadAllAnnouncements = 22,
ReadAllChannelPosts = 23,
NewChannelPost = 24,
DriveFile = 25,
UrlUploadFinished = 26,
Me = 27,
RegenerateMyToken = 28,
Signin = 29,
Registry = 30
}
export declare function extractHost(uri: string): string
export declare function fetchMeta(): Promise<Meta>
/** Fetches and returns the NodeInfo (version 2.0) of a remote server. */
export declare function fetchNodeinfo(host: string): Promise<Nodeinfo>
export interface Following {
id: string
createdAt: DateTimeWithTimeZone
followeeId: string
followerId: string
followerHost: string | null
followerInbox: string | null
followerSharedInbox: string | null
followeeHost: string | null
followeeInbox: string | null
followeeSharedInbox: string | null
}
export interface FollowRequest {
id: string
createdAt: DateTimeWithTimeZone
followeeId: string
followerId: string
requestId: string | null
followerHost: string | null
followerInbox: string | null
followerSharedInbox: string | null
followeeHost: string | null
followeeInbox: string | null
followeeSharedInbox: string | null
}
/** Converts milliseconds to a human readable string. */
export declare function formatMilliseconds(milliseconds: number): string
export interface GalleryLike {
id: string
createdAt: DateTimeWithTimeZone
userId: string
postId: string
}
export interface GalleryPost {
id: string
createdAt: DateTimeWithTimeZone
updatedAt: DateTimeWithTimeZone
title: string
description: string | null
userId: string
fileIds: Array<string>
isSensitive: boolean
likedCount: number
tags: Array<string>
}
/** Generates a random string based on [thread_rng] and [Alphanumeric]. */
export declare function generateSecureRandomString(length: number): string
export declare function generateUserToken(): string
/**
* The generated ID results in the form of `[8 chars timestamp] + [cuid2]`.
* The minimum and maximum lengths are 16 and 24, respectively.
* With the length of 16, namely 8 for cuid2, roughly 1427399 IDs are needed
* in the same millisecond to reach 50% chance of collision.
*
* Ref: <https://github.com/paralleldrive/cuid2#parameterized-length>
*/
export declare function genId(): string
/** Generate an ID using a specific datetime */
export declare function genIdAt(date: Date): string
export declare function genIdenticon(id: string): Promise<Buffer>
export declare function getFullApAccount(username: string, host?: string | undefined | null): string
export declare function getImageSizeFromUrl(url: string): Promise<ImageSize>
export declare function getInstanceActor(): Promise<User>
export declare function getNoteSummary(fileIds: Array<string>, text: string | undefined | null, cw: string | undefined | null, hasPoll: boolean): string
export declare function getRelayActorId(): Promise<string>
export declare function getTimestamp(id: string): number
/** Prints the greeting message and the Firefish version to stdout. */
export declare function greet(): void
/** Hashes the given password using [argon2] algorithm. */
export declare function hashPassword(password: string): string
export interface Hashtag {
id: string
name: string
mentionedUserIds: Array<string>
mentionedUsersCount: number
mentionedLocalUserIds: Array<string>
mentionedLocalUsersCount: number
mentionedRemoteUserIds: Array<string>
mentionedRemoteUsersCount: number
attachedUserIds: Array<string>
attachedUsersCount: number
attachedLocalUserIds: Array<string>
attachedLocalUsersCount: number
attachedRemoteUserIds: Array<string>
attachedRemoteUsersCount: number
}
export interface Icon {
type: Activity
mediaType: string
url: string
}
export interface IdConfig {
length?: number
fingerprint?: string
}
export interface ImageSize {
width: number
height: number
}
/** The third party sites this server can retrieve messages from for combined display with regular traffic. */
export declare enum Inbound {
Atom1 = 0,
Gnusocial = 1,
Imap = 2,
Pnut = 3,
Pop3 = 4,
Pumpio = 5,
Rss2 = 6,
Twitter = 7
}
/** Initializes the [tracing] logger. */
export declare function initializeRustLogger(): void
export interface Instance {
id: string
caughtAt: DateTimeWithTimeZone
host: string
usersCount: number
notesCount: number
followingCount: number
followersCount: number
latestRequestSentAt: DateTimeWithTimeZone | null
latestStatus: number | null
latestRequestReceivedAt: DateTimeWithTimeZone | null
lastCommunicatedAt: DateTimeWithTimeZone
isNotResponding: boolean
softwareName: string | null
softwareVersion: string | null
openRegistrations: boolean | null
name: string | null
description: string | null
maintainerName: string | null
maintainerEmail: string | null
infoUpdatedAt: DateTimeWithTimeZone | null
isSuspended: boolean
iconUrl: string | null
themeColor: string | null
faviconUrl: string | null
}
export declare enum InternalEvent {
Suspend = 0,
Silence = 1,
Moderator = 2,
Token = 3,
LocalUser = 4,
RemoteUser = 5,
WebhookCreated = 6,
WebhookUpdated = 7,
WebhookDeleted = 8,
AntennaCreated = 9,
AntennaUpdated = 10,
AntennaDeleted = 11
}
/**
* Checks if a server is allowlisted.
* Returns `Ok(true)` if private mode is disabled.
*
* # Argument
* `host` - punycoded instance host
*
* # Example
* ```ignore
* # use backend_rs::misc::check_server_block::is_allowed_server;
* # async fn f() -> Result<(), Box<dyn std::error::Error>> {
* assert_eq!(true, is_allowed_server("allowed.com").await?);
* assert_eq!(false, is_allowed_server("not-allowed.com").await?);
* assert_eq!(false, is_allowed_server("subdomain.of.allowed.com").await?);
* assert_eq!(false, is_allowed_server("xn--l8jegik.allowed.com").await?);
* # Ok(())
* # }
* ```
*/
export declare function isAllowedServer(host: string): Promise<boolean>
/**
* Checks if a server is blocked.
*
* # Argument
* `host` - punycoded instance host
*
* # Example
* ```ignore
* # use backend_rs::misc::check_server_block::is_blocked_server;
* # async fn f() -> Result<(), Box<dyn std::error::Error>> {
* assert_eq!(true, is_blocked_server("blocked.com").await?);
* assert_eq!(false, is_blocked_server("not-blocked.com").await?);
* assert_eq!(true, is_blocked_server("subdomain.of.blocked.com").await?);
* assert_eq!(true, is_blocked_server("xn--l8jegik.blocked.com").await?);
* # Ok(())
* # }
* ```
*/
export declare function isBlockedServer(host: string): Promise<boolean>
/** Returns whether the [bcrypt] algorithm is used for the password hash. */
export declare function isOldPasswordAlgorithm(hash: string): boolean
export declare function isQuote(note: NoteLikeForIsQuote): boolean
export declare function isSafeUrl(url: string): boolean
export declare function isSameOrigin(uri: string): boolean
export declare function isSelfHost(host?: string | undefined | null): boolean
/**
* Checks if a server is silenced.
*
* # Argument
* `host` - punycoded instance host
*
* # Example
* ```ignore
* # use backend_rs::misc::check_server_block::is_silenced_server;
* # async fn f() -> Result<(), Box<dyn std::error::Error>> {
* assert_eq!(true, is_silenced_server("silenced.com").await?);
* assert_eq!(false, is_silenced_server("not-silenced.com").await?);
* assert_eq!(true, is_silenced_server("subdomain.of.silenced.com").await?);
* assert_eq!(true, is_silenced_server("xn--l8jegik.silenced.com").await?);
* # Ok(())
* # }
* ```
*/
export declare function isSilencedServer(host: string): Promise<boolean>
export declare function isUnicodeEmoji(s: string): boolean
/** Returns the latest Firefish version. */
export declare function latestVersion(): Promise<string>
export interface LibreTranslateConfig {
managed?: boolean
apiUrl?: string
apiKey?: string
}
export declare function loadConfig(): Config
export interface Memory {
/** Total memory amount in bytes */
total: number
/** Used memory amount in bytes */
used: number
/** Available (for (re)use) memory amount in bytes */
available: number
}
export declare function memoryUsage(): Memory
export interface MessagingMessage {
id: string
createdAt: DateTimeWithTimeZone
userId: string
recipientId: string | null
text: string | null
isRead: boolean
fileId: string | null
groupId: string | null
reads: Array<string>
uri: string | null
}
export interface Meta {
id: string
name: string | null
description: string | null
maintainerName: string | null
maintainerEmail: string | null
disableRegistration: boolean
disableLocalTimeline: boolean
disableGlobalTimeline: boolean
useStarForReactionFallback: boolean
langs: Array<string>
hiddenTags: Array<string>
blockedHosts: Array<string>
mascotImageUrl: string | null
bannerUrl: string | null
errorImageUrl: string | null
iconUrl: string | null
cacheRemoteFiles: boolean
enableRecaptcha: boolean
recaptchaSiteKey: string | null
recaptchaSecretKey: string | null
localDriveCapacityMb: number
remoteDriveCapacityMb: number
summalyProxy: string | null
enableEmail: boolean
email: string | null
smtpSecure: boolean
smtpHost: string | null
smtpPort: number | null
smtpUser: string | null
smtpPass: string | null
enableServiceWorker: boolean
swPublicKey: string | null
swPrivateKey: string | null
pinnedUsers: Array<string>
tosUrl: string | null
repositoryUrl: string
feedbackUrl: string | null
useObjectStorage: boolean
objectStorageBucket: string | null
objectStoragePrefix: string | null
objectStorageBaseUrl: string | null
objectStorageEndpoint: string | null
objectStorageRegion: string | null
objectStorageAccessKey: string | null
objectStorageSecretKey: string | null
objectStoragePort: number | null
objectStorageUseSsl: boolean
proxyAccountId: string | null
objectStorageUseProxy: boolean
enableHcaptcha: boolean
hcaptchaSiteKey: string | null
hcaptchaSecretKey: string | null
objectStorageSetPublicRead: boolean
pinnedPages: Array<string>
backgroundImageUrl: string | null
logoImageUrl: string | null
pinnedClipId: string | null
objectStorageS3ForcePathStyle: boolean
allowedHosts: Array<string> | null
secureMode: boolean | null
privateMode: boolean | null
deeplAuthKey: string | null
deeplIsPro: boolean
emailRequiredForSignup: boolean
themeColor: string | null
defaultLightTheme: string | null
defaultDarkTheme: string | null
enableIpLogging: boolean
enableActiveEmailValidation: boolean
customMotd: Array<string>
customSplashIcons: Array<string>
disableRecommendedTimeline: boolean
recommendedInstances: Array<string>
enableGuestTimeline: boolean
defaultReaction: string
libreTranslateApiUrl: string | null
libreTranslateApiKey: string | null
silencedHosts: Array<string>
experimentalFeatures: Json
enableServerMachineStats: boolean
enableIdenticonGeneration: boolean
donationLink: string | null
moreUrls: Json
markLocalFilesNsfwByDefault: boolean
antennaLimit: number
}
export declare function metaToPugArgs(meta: Meta): PugArgs
export interface Migrations {
id: number
timestamp: number
name: string
}
export interface ModerationLog {
id: string
createdAt: DateTimeWithTimeZone
userId: string
type: string
info: Json
}
export interface MutedNote {
id: string
noteId: string
userId: string
reason: MutedNoteReason
}
export type MutedNoteReason = 'manual'|
'other'|
'spam'|
'word';
export interface Muting {
id: string
createdAt: DateTimeWithTimeZone
muteeId: string
muterId: string
expiresAt: DateTimeWithTimeZone | null
}
/** NodeInfo schema version 2.0. <https://nodeinfo.diaspora.software/docson/index.html#/ns/schema/2.0> */
export interface Nodeinfo {
/** Metadata about server software in use. */
software: Software20
/** The protocols supported on this server. */
protocols: Array<Protocol>
/** The third party sites this server can connect to via their application API. */
services: Services
/** Whether this server allows open self-registration. */
openRegistrations: boolean
/** Usage statistics for this server. */
usage: Usage
/** Free form key value pairs for software specific values. Clients should not rely on any specific key present. */
metadata: Record<string, any>
}
export declare function nodeinfo_2_0(): Promise<any>
export declare function nodeinfo_2_1(): Promise<any>
export interface Note {
id: string
createdAt: DateTimeWithTimeZone
replyId: string | null
renoteId: string | null
text: string | null
name: string | null
cw: string | null
userId: string
localOnly: boolean
renoteCount: number
repliesCount: number
reactions: Json
visibility: NoteVisibility
uri: string | null
score: number
fileIds: Array<string>
attachedFileTypes: Array<string>
visibleUserIds: Array<string>
mentions: Array<string>
mentionedRemoteUsers: string
emojis: Array<string>
tags: Array<string>
hasPoll: boolean
userHost: string | null
replyUserId: string | null
replyUserHost: string | null
renoteUserId: string | null
renoteUserHost: string | null
url: string | null
channelId: string | null
threadId: string | null
updatedAt: DateTimeWithTimeZone | null
lang: string | null
scheduledAt: DateTimeWithTimeZone | null
}
export interface NoteEdit {
id: string
noteId: string
text: string | null
cw: string | null
fileIds: Array<string>
updatedAt: DateTimeWithTimeZone
emojis: Array<string>
}
export declare enum NoteEvent {
Delete = 0,
React = 1,
Unreact = 2,
Reply = 3,
Update = 4,
Vote = 5
}
export interface NoteFavorite {
id: string
createdAt: DateTimeWithTimeZone
userId: string
noteId: string
}
export interface NoteFile {
serialNo: number
noteId: string
fileId: string
}
export interface NoteLikeForIsQuote {
renoteId: string | null
text: string | null
hasPoll: boolean
fileIds: Array<string>
}
export interface NoteReaction {
id: string
createdAt: DateTimeWithTimeZone
userId: string
noteId: string
reaction: string
}
export interface NoteThreadMuting {
id: string
createdAt: DateTimeWithTimeZone
userId: string
threadId: string
}
export interface NoteUnread {
id: string
userId: string
noteId: string
noteUserId: string
isSpecified: boolean
isMentioned: boolean
noteChannelId: string | null
}
export type NoteVisibility = 'followers'|
'hidden'|
'home'|
'public'|
'specified';
export interface NoteWatching {
id: string
createdAt: DateTimeWithTimeZone
userId: string
noteId: string
noteUserId: string
}
export interface Notification {
id: string
createdAt: DateTimeWithTimeZone
notifieeId: string
notifierId: string | null
isRead: boolean
noteId: string | null
reaction: string | null
choice: number | null
followRequestId: string | null
type: NotificationType
userGroupInvitationId: string | null
customBody: string | null
customHeader: string | null
customIcon: string | null
appAccessTokenId: string | null
}
export type NotificationType = 'app'|
'follow'|
'followRequestAccepted'|
'groupInvited'|
'mention'|
'pollEnded'|
'pollVote'|
'quote'|
'reaction'|
'receiveFollowRequest'|
'renote'|
'reply';
/**
* Converts the given text into the cat language.
*
* refs:
* * <https://misskey-hub.net/ns#isCat>
* * <https://firefish.dev/ns#speakAsCat>
*
* # Arguments
*
* * `text` : original text
* * `lang` : language code (e.g., `Some("en")`, `Some("en-US")`, `Some("uk-UA")`, `None`)
*
* # Example
*
* ```
* # use backend_rs::misc::nyaify::nyaify;
* assert_eq!(nyaify("I'll take a nap.", Some("en")), "I'll take a nyap.");
* ```
*/
export declare function nyaify(text: string, lang?: string | undefined | null): string
export interface ObjectStorageConfig {
managed?: boolean
baseUrl?: string
bucket?: string
prefix?: string
endpoint?: string
region?: string
accessKey?: string
secretKey?: string
useSsl?: boolean
connnectOverProxy?: boolean
setPublicReadOnUpload?: boolean
s3ForcePathStyle?: boolean
}
/** The third party sites this server can publish messages to on the behalf of a user. */
export declare enum Outbound {
Atom1 = 0,
Blogger = 1,
Buddycloud = 2,
Diaspora = 3,
Dreamwidth = 4,
Drupal = 5,
Facebook = 6,
Friendica = 7,
Gnusocial = 8,
Google = 9,
Insanejournal = 10,
Libertree = 11,
Linkedin = 12,
Livejournal = 13,
Mediagoblin = 14,
Myspace = 15,
Pinterest = 16,
Pnut = 17,
Posterous = 18,
Pumpio = 19,
Redmatrix = 20,
Rss2 = 21,
Smtp = 22,
Tent = 23,
Tumblr = 24,
Twitter = 25,
Wordpress = 26,
Xmpp = 27
}
export interface PackedEmoji {
id: string
aliases: Array<string>
name: string
category: string | null
host: string | null
url: string
license: string | null
width: number | null
height: number | null
}
export interface Page {
id: string
createdAt: DateTimeWithTimeZone
updatedAt: DateTimeWithTimeZone
title: string
name: string
summary: string | null
alignCenter: boolean
font: string
userId: string
eyeCatchingImageId: string | null
content: Json
variables: Json
visibility: PageVisibility
visibleUserIds: Array<string>
likedCount: number
hideTitleWhenPinned: boolean
script: string
isPublic: boolean
}
export interface PageLike {
id: string
createdAt: DateTimeWithTimeZone
userId: string
pageId: string
}
export type PageVisibility = 'followers'|
'public'|
'specified';
export interface PartialNoteToCheckWordMute {
fileIds: Array<string>
text: string | null
cw: string | null
renoteId: string | null
replyId: string | null
}
export interface PasswordResetRequest {
id: string
createdAt: DateTimeWithTimeZone
token: string
userId: string
}
export interface Poll {
noteId: string
expiresAt: DateTimeWithTimeZone | null
multiple: boolean
choices: Array<string>
votes: Array<number>
noteVisibility: PollNoteVisibility
userId: string
userHost: string | null
}
export type PollNoteVisibility = 'followers'|
'home'|
'public'|
'specified';
export interface PollVote {
id: string
createdAt: DateTimeWithTimeZone
userId: string
noteId: string
choice: number
}
export interface PromoNote {
noteId: string
expiresAt: DateTimeWithTimeZone
userId: string
}
export interface PromoRead {
id: string
createdAt: DateTimeWithTimeZone
userId: string
noteId: string
}
export declare enum Protocol {
Activitypub = 0,
Buddycloud = 1,
Dfrn = 2,
Diaspora = 3,
Libertree = 4,
Ostatus = 5,
Pumpio = 6,
Tent = 7,
Xmpp = 8,
Zot = 9
}
export declare function publishToBroadcastStream(emoji: PackedEmoji): Promise<void>
export declare function publishToChannelStream(channelId: string, userId: string): Promise<void>
export declare function publishToChatIndexStream(userId: string, kind: ChatIndexEvent, object: any): Promise<void>
export declare function publishToChatStream(senderUserId: string, receiverUserId: string, kind: ChatEvent, object: any): Promise<void>
export declare function publishToDriveFileStream(userId: string, kind: DriveFileEvent, object: any): Promise<void>
export declare function publishToDriveFolderStream(userId: string, kind: DriveFolderEvent, object: any): Promise<void>
export declare function publishToGroupChatStream(groupId: string, kind: ChatEvent, object: any): Promise<void>
export declare function publishToInternalStream(kind: InternalEvent, object: any): Promise<void>
export declare function publishToMainStream(userId: string, kind: Event, object: any): Promise<void>
export declare function publishToModerationStream(moderatorId: string, report: AbuseUserReportLike): Promise<void>
export declare function publishToNotesStream(note: Note): Promise<void>
export declare function publishToNoteStream(noteId: string, kind: NoteEvent, object: any): Promise<void>
export declare function publishToNoteUpdatesStream(note: Note): Promise<void>
export declare function publishToUserStream(userId: string, kind: UserEvent, object: any): Promise<void>
export interface PugArgs {
img: string | null
title: string
instanceName: string
desc: string | null
icon: string | null
splashIcon: string | null
themeColor: string | null
randomMotd: string
privateMode: boolean | null
}
export type PushNotificationKind = 'generic'|
'chat'|
'readAllChats'|
'readAllChatsInTheRoom'|
'readNotifications'|
'readAllNotifications'|
'mastodon';
export type PushSubscriptionType = 'adminReport'|
'adminSignUp'|
'favourite'|
'follow'|
'followRequest'|
'mention'|
'poll'|
'reblog'|
'status'|
'update';
export interface RedisConfig {
host: string
port: number
family?: number
user?: string
pass?: string
tls?: TlsConfig
db: number
prefix?: string
}
export interface RegistrationTicket {
id: string
createdAt: DateTimeWithTimeZone
code: string
}
export interface RegistryItem {
id: string
createdAt: DateTimeWithTimeZone
updatedAt: DateTimeWithTimeZone
userId: string
key: string
scope: Array<string>
domain: string | null
value: Json | null
}
export interface Relay {
id: string
inbox: string
status: RelayStatus
}
export type RelayStatus = 'accepted'|
'rejected'|
'requesting';
/** Delete all entries in the [attestation_challenge] table created at more than 5 minutes ago */
export declare function removeOldAttestationChallenges(): Promise<void>
export declare function renderAccept(userId: string, followObject: ApFollow): ApAccept
export declare function renderAdd(userId: string, noteId: string): ApAdd
export declare function renderEmoji(emoji: Emoji): ApEmoji
export declare function renderFlag(targetUserUri: string, comment: string): Promise<ApFlag>
export declare function renderFollow(follower: UserLike, followee: UserLike, requestId?: string | undefined | null): ApFollow
export declare function renderFollowRelay(relayId: string): Promise<ApFollow>
export declare function renderHashtag(tagName: string): ApHashtag
export declare function renderLike(reaction: Model): Promise<ApLike>
export declare function renderMention(user: UserLike): ApMention
export declare function renderRead(userId: string, messageUri: string): ApRead
export declare function renderReject(userId: string, followObject: ApFollow): ApReject
export declare function renderRemove(userId: string, noteId: string): ApRemove
export declare function renderTombstone(noteId: string): ApTombstone
export interface RenoteMuting {
id: string
createdAt: DateTimeWithTimeZone
muteeId: string
muterId: string
}
export interface ReplyMuting {
id: string
createdAt: DateTimeWithTimeZone
muteeId: string
muterId: string
}
/** Returns `true` if `src` does not contain suspicious characters like `%`. */
export declare function safeForSql(src: string): boolean
export declare function sendPushNotification(receiverUserId: string, kind: PushNotificationKind, content: any): Promise<void>
export interface ServerConfig {
url: string
port: number
/** the host address to bind to */
bind?: string
disableHsts?: boolean
/** PostgreSQL configurations */
db: DbConfig
/** Redis configurations */
redis: RedisConfig
/** secondary Redis server configurations */
cacheServer?: RedisConfig
/** proxy host used for HTTP requests */
proxy?: string
/** proxy host used for SMTP requests */
proxySmtp?: string
/** hosts to bypass the proxy */
proxyBypassHosts?: Array<string>
allowedPrivateNetworks?: Array<string>
/** maximum file size that can be uploaded to the drive (in bytes) */
maxFileSize?: number
accessLog?: string
clusterLimits?: WorkerConfigInternal
cuid?: IdConfig
outgoingAddress?: string
deliverJobConcurrency?: number
inboxJobConcurrency?: number
deliverJobPerSec?: number
inboxJobPerSec?: number
deliverJobMaxAttempts?: number
inboxJobMaxAttempts?: number
/** deprecated in favor of `max_log_level` */
logLevel?: Array<string>
/** verbosity of the server log. `error`, `warn`, `info`, `debug`, or `trace` */
maxLogLevel?: string
syslog?: SysLogConfig
proxyRemoteFiles?: boolean
mediaProxy?: string
summalyProxyUrl?: string
reservedUsernames?: Array<string>
maxUserSignups?: number
isManagedHosting?: boolean
maxNoteLength?: number
maxCaptionLength?: number
deepl?: DeepLConfig
libreTranslate?: LibreTranslateConfig
email?: EmailConfig
objectStorage?: ObjectStorageConfig
}
/** The third party sites this server can connect to via their application API. */
export interface Services {
/** The third party sites this server can retrieve messages from for combined display with regular traffic. */
inbound: Array<Inbound>
/** The third party sites this server can publish messages to on the behalf of a user. */
outbound: Array<Outbound>
}
export declare function shouldNyaify(readerUserId: string): Promise<boolean>
/** Prints the server hardware information as the server info log. */
export declare function showServerInfo(): void
export interface Signin {
id: string
createdAt: DateTimeWithTimeZone
userId: string
ip: string
headers: Json
success: boolean
}
/** Metadata about server software in use (version 2.0). */
export interface Software20 {
/** The canonical name of this server software. */
name: string
/** The version of this server software. */
version: string
}
/** Escapes `%` and `\` in the given string. */
export declare function sqlLikeEscape(src: string): string
export declare function sqlRegexEscape(src: string): string
export interface Storage {
/** Total storage space in bytes */
total: number
/** Used storage space in bytes */
used: number
}
export declare function storageUsage(): Storage | null
export declare function stringToAcct(acct: string): Acct
export interface SwSubscription {
id: string
createdAt: DateTimeWithTimeZone
userId: string
endpoint: string
auth: string
publickey: string
sendReadMessage: boolean
appAccessTokenId: string | null
subscriptionTypes: Array<PushSubscriptionType>
}
export interface SysLogConfig {
host: string
port: number
}
export interface TlsConfig {
host: string
rejectUnauthorized: boolean
}
export declare function toDbReaction(reaction?: string | undefined | null, host?: string | undefined | null): Promise<string>
export declare function toPuny(host: string): string
export declare function translate(text: string, sourceLang: string | undefined | null, targetLang: string): Promise<Translation>
export interface Translation {
sourceLang: string
text: string
}
export declare function unwatchNote(watcherId: string, noteId: string): Promise<void>
export declare function updateAntennaCache(): Promise<void>
export declare function updateAntennasOnNewNote(note: Note, noteAuthor: Acct, noteMutedUsers: Array<string>): Promise<void>
export declare function updateMetaCache(): Promise<void>
/** Usage statistics for this server. */
export interface Usage {
users: Users
localPosts: number | null
localComments: number | null
}
export interface UsedUsername {
username: string
createdAt: DateTimeWithTimeZone
}
export interface User {
id: string
createdAt: DateTimeWithTimeZone
updatedAt: DateTimeWithTimeZone | null
lastFetchedAt: DateTimeWithTimeZone | null
username: string
usernameLower: string
name: string | null
followersCount: number
followingCount: number
notesCount: number
avatarId: string | null
bannerId: string | null
tags: Array<string>
isSuspended: boolean
isSilenced: boolean
isLocked: boolean
isBot: boolean
isCat: boolean
isAdmin: boolean
isModerator: boolean
emojis: Array<string>
host: string | null
inbox: string | null
sharedInbox: string | null
featured: string | null
uri: string | null
token: string | null
isExplorable: boolean
followersUri: string | null
lastActiveDate: DateTimeWithTimeZone | null
hideOnlineStatus: boolean
isDeleted: boolean
driveCapacityOverrideMb: number | null
movedToUri: string | null
speakAsCat: boolean
emojiModPerm: UserEmojiModPerm
isIndexable: boolean
alsoKnownAs: Array<string> | null
readCatLanguage: boolean
}
export type UserEmojiModPerm = 'add'|
'full'|
'mod'|
'unauthorized';
export declare enum UserEvent {
Disconnect = 0,
FollowChannel = 1,
UnfollowChannel = 2,
UpdateProfile = 3,
Mute = 4,
Unmute = 5,
Follow = 6,
Unfollow = 7
}
export interface UserGroup {
id: string
createdAt: DateTimeWithTimeZone
name: string
userId: string
isPrivate: boolean
}
export interface UserGroupInvitation {
id: string
createdAt: DateTimeWithTimeZone
userId: string
userGroupId: string
}
export interface UserGroupInvite {
id: string
createdAt: DateTimeWithTimeZone
userId: string
userGroupId: string
}
export interface UserGroupJoining {
id: string
createdAt: DateTimeWithTimeZone
userId: string
userGroupId: string
}
export interface UserIp {
id: number
createdAt: DateTimeWithTimeZone
userId: string
ip: string
}
export interface UserKeypair {
userId: string
publicKey: string
privateKey: string
}
export interface UserLike {
id: string
username: string
host: string | null
uri: string | null
}
export interface UserList {
id: string
createdAt: DateTimeWithTimeZone
userId: string
name: string
}
export interface UserListJoining {
id: string
createdAt: DateTimeWithTimeZone
userId: string
userListId: string
}
export interface UserNotePining {
id: string
createdAt: DateTimeWithTimeZone
userId: string
noteId: string
}
export interface UserPending {
id: string
createdAt: DateTimeWithTimeZone
code: string
username: string
email: string
password: string
}
export interface UserProfile {
userId: string
location: string | null
birthday: string | null
description: string | null
fields: Json
url: string | null
email: string | null
emailVerifyCode: string | null
emailVerified: boolean
twoFactorTempSecret: string | null
twoFactorSecret: string | null
twoFactorEnabled: boolean
password: string | null
autoAcceptFollowed: boolean
alwaysMarkNsfw: boolean
carefulBot: boolean
userHost: string | null
securityKeysAvailable: boolean
usePasswordLessLogin: boolean
pinnedPageId: string | null
injectFeaturedNote: boolean
enableWordMute: boolean
mutingNotificationTypes: Array<UserProfileMutingNotificationTypes>
noCrawle: boolean
receiveAnnouncementEmail: boolean
emailNotificationTypes: Json
publicReactions: boolean
ffVisibility: UserProfileFfvisibility
moderationNote: string
preventAiLearning: boolean
isIndexable: boolean
mutedPatterns: Array<string>
mentions: Json
mutedInstances: Array<string>
mutedWords: Array<string>
lang: string | null
}
export type UserProfileFfvisibility = 'followers'|
'private'|
'public';
export type UserProfileMutingNotificationTypes = 'app'|
'follow'|
'followRequestAccepted'|
'groupInvited'|
'mention'|
'pollEnded'|
'pollVote'|
'quote'|
'reaction'|
'receiveFollowRequest'|
'renote'|
'reply';
export interface UserPublickey {
userId: string
keyId: string
keyPem: string
}
/** statistics about the users of this server. */
export interface Users {
total: number | null
activeHalfyear: number | null
activeMonth: number | null
}
export interface UserSecurityKey {
id: string
userId: string
publicKey: string
lastUsed: DateTimeWithTimeZone
name: string
}
/** Checks whether the given password and hash match. */
export declare function verifyPassword(password: string, hash: string): boolean
export declare function watchNote(watcherId: string, noteAuthorId: string, noteId: string): Promise<void>
export interface Webhook {
id: string
createdAt: DateTimeWithTimeZone
userId: string
name: string
on: Array<string>
url: string
secret: string
active: boolean
latestSentAt: DateTimeWithTimeZone | null
latestStatus: number | null
}
export interface WorkerConfig {
web: number
queue: number
}
export interface WorkerConfigInternal {
web?: number
queue?: number
}