mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2026-05-28 18:45:38 +01:00
Update all type methods to use property syntax
Co-authored-by: Jamie <113370520+jamiebuilds-signal@users.noreply.github.com>
This commit is contained in:
+9
-9
@@ -30,9 +30,9 @@ export type CIType = {
|
||||
deviceName: string;
|
||||
getConversationId: (address: string | null) => string | null;
|
||||
createNotificationToken: (address: string) => string | undefined;
|
||||
getMessagesBySentAt(
|
||||
getMessagesBySentAt: (
|
||||
sentAt: number
|
||||
): Promise<ReadonlyArray<MessageAttributesType>>;
|
||||
) => Promise<ReadonlyArray<MessageAttributesType>>;
|
||||
getPendingEventCount: (event: string) => number;
|
||||
getSocketStatus: () => SocketStatuses;
|
||||
handleEvent: (event: string, data: unknown) => unknown;
|
||||
@@ -46,16 +46,16 @@ export type CIType = {
|
||||
ignorePastEvents?: boolean;
|
||||
}
|
||||
) => unknown;
|
||||
openSignalRoute(url: string): Promise<void>;
|
||||
migrateAllMessages(): Promise<void>;
|
||||
exportLocalBackup(backupsBaseDir: string): Promise<string>;
|
||||
stageLocalBackupForImport(snapshotDir: string): Promise<void>;
|
||||
uploadBackup(): Promise<void>;
|
||||
openSignalRoute: (url: string) => Promise<void>;
|
||||
migrateAllMessages: () => Promise<void>;
|
||||
exportLocalBackup: (backupsBaseDir: string) => Promise<string>;
|
||||
stageLocalBackupForImport: (snapshotDir: string) => Promise<void>;
|
||||
uploadBackup: () => Promise<void>;
|
||||
unlink: () => void;
|
||||
print: (...args: ReadonlyArray<unknown>) => void;
|
||||
resetReleaseNoteAndMegaphoneFetcher(): void;
|
||||
resetReleaseNoteAndMegaphoneFetcher: () => void;
|
||||
forceUnprocessed: boolean;
|
||||
setMediaPermissions(): Promise<void>;
|
||||
setMediaPermissions: () => Promise<void>;
|
||||
maybeUpdateMaxAudioLevel: (level: number) => void;
|
||||
getAndResetMaxAudioLevel: () => number | undefined;
|
||||
};
|
||||
|
||||
@@ -235,7 +235,7 @@ type SenderKeyCacheEntry = CacheEntryType<SenderKeyType, SenderKeyRecord>;
|
||||
|
||||
type ZoneQueueEntryType = Readonly<{
|
||||
zone: Zone;
|
||||
callback(): void;
|
||||
callback: () => void;
|
||||
}>;
|
||||
|
||||
export class SignalProtocolStore extends EventEmitter {
|
||||
|
||||
+10
-8
@@ -44,8 +44,8 @@ export type IPCResponse = Readonly<{
|
||||
type Handler = Readonly<{
|
||||
token: string | undefined;
|
||||
|
||||
resolve(response: ChallengeResponse): void;
|
||||
reject(error: Error): void;
|
||||
resolve: (response: ChallengeResponse) => void;
|
||||
reject: (error: Error) => void;
|
||||
}>;
|
||||
|
||||
export type ChallengeData = Readonly<{
|
||||
@@ -57,16 +57,18 @@ export type ChallengeData = Readonly<{
|
||||
export type Options = Readonly<{
|
||||
storage: Pick<StorageInterface, 'get' | 'put'>;
|
||||
|
||||
requestChallenge(request: IPCRequest): void;
|
||||
requestChallenge: (request: IPCRequest) => void;
|
||||
|
||||
startQueue(conversationId: string): void;
|
||||
startQueue: (conversationId: string) => void;
|
||||
|
||||
sendChallengeResponse(data: ChallengeData): Promise<void>;
|
||||
sendChallengeResponse: (data: ChallengeData) => Promise<void>;
|
||||
|
||||
setChallengeStatus(challengeStatus: 'idle' | 'required' | 'pending'): void;
|
||||
setChallengeStatus: (
|
||||
challengeStatus: 'idle' | 'required' | 'pending'
|
||||
) => void;
|
||||
|
||||
onChallengeSolved(): void;
|
||||
onChallengeFailed(retryAfter?: number): void;
|
||||
onChallengeSolved: () => void;
|
||||
onChallengeFailed: (retryAfter?: number) => void;
|
||||
|
||||
expireAfter?: number;
|
||||
}>;
|
||||
|
||||
@@ -144,8 +144,8 @@ export type OwnProps = Readonly<{
|
||||
left: boolean | null;
|
||||
linkPreviewLoading: boolean;
|
||||
linkPreviewResult: LinkPreviewForUIType | null;
|
||||
onClearAttachments(conversationId: string): unknown;
|
||||
onCloseLinkPreview(conversationId: string): unknown;
|
||||
onClearAttachments: (conversationId: string) => unknown;
|
||||
onCloseLinkPreview: (conversationId: string) => unknown;
|
||||
platform: string;
|
||||
showToast: ShowToastAction;
|
||||
processAttachments: (options: {
|
||||
@@ -153,12 +153,12 @@ export type OwnProps = Readonly<{
|
||||
files: ReadonlyArray<File>;
|
||||
flags: number | null;
|
||||
}) => unknown;
|
||||
setMediaQualitySetting(conversationId: string, isHQ: boolean): unknown;
|
||||
sendStickerMessage(
|
||||
setMediaQualitySetting: (conversationId: string, isHQ: boolean) => unknown;
|
||||
sendStickerMessage: (
|
||||
id: string,
|
||||
opts: { packId: string; stickerId: number }
|
||||
): unknown;
|
||||
sendEditedMessage(
|
||||
) => unknown;
|
||||
sendEditedMessage: (
|
||||
conversationId: string,
|
||||
options: {
|
||||
bodyRanges?: DraftBodyRanges;
|
||||
@@ -167,8 +167,8 @@ export type OwnProps = Readonly<{
|
||||
quoteSentAt?: number;
|
||||
targetMessageId: string;
|
||||
}
|
||||
): unknown;
|
||||
sendMultiMediaMessage(
|
||||
) => unknown;
|
||||
sendMultiMediaMessage: (
|
||||
conversationId: string,
|
||||
options: {
|
||||
draftAttachments?: ReadonlyArray<AttachmentDraftType>;
|
||||
@@ -178,8 +178,8 @@ export type OwnProps = Readonly<{
|
||||
timestamp?: number;
|
||||
voiceNoteAttachment?: InMemoryAttachmentDraftType;
|
||||
}
|
||||
): unknown;
|
||||
sendPoll(conversationId: string, poll: PollCreateType): unknown;
|
||||
) => unknown;
|
||||
sendPoll: (conversationId: string, poll: PollCreateType) => unknown;
|
||||
quotedMessageId: string | null;
|
||||
quotedMessageProps: null | ReadonlyDeep<
|
||||
Omit<
|
||||
@@ -196,17 +196,17 @@ export type OwnProps = Readonly<{
|
||||
) => unknown;
|
||||
scrollToMessage: (conversationId: string, messageId: string) => unknown;
|
||||
setComposerFocus: (conversationId: string) => unknown;
|
||||
setMessageToEdit(conversationId: string, messageId: string): unknown;
|
||||
setQuoteByMessageId(
|
||||
setMessageToEdit: (conversationId: string, messageId: string) => unknown;
|
||||
setQuoteByMessageId: (
|
||||
conversationId: string,
|
||||
messageId: string | undefined
|
||||
): unknown;
|
||||
) => unknown;
|
||||
isViewOnce: boolean;
|
||||
setViewOnce(options: {
|
||||
setViewOnce: (options: {
|
||||
conversationId: string;
|
||||
value: boolean;
|
||||
toastNotify: boolean;
|
||||
}): unknown;
|
||||
}) => unknown;
|
||||
shouldSendHighQualityAttachments: boolean;
|
||||
showConversation: ShowConversationType;
|
||||
warmupRecording: () => void;
|
||||
|
||||
@@ -147,23 +147,23 @@ export type Props = Readonly<{
|
||||
theme: ThemeType;
|
||||
placeholder?: string;
|
||||
sortedGroupMembers: ReadonlyArray<ConversationType> | null;
|
||||
onDirtyChange?(dirty: boolean): unknown;
|
||||
onEditorStateChange(options: {
|
||||
onDirtyChange?: (dirty: boolean) => unknown;
|
||||
onEditorStateChange: (options: {
|
||||
bodyRanges: DraftBodyRanges;
|
||||
caretLocation?: number;
|
||||
conversationId: string | undefined;
|
||||
messageText: string;
|
||||
sendCounter: number;
|
||||
}): unknown;
|
||||
onTextTooLong(): unknown;
|
||||
}) => unknown;
|
||||
onTextTooLong: () => unknown;
|
||||
onSelectEmoji: (emojiSelection: FunEmojiSelection) => void;
|
||||
onBlur?: () => unknown;
|
||||
onFocus?: () => unknown;
|
||||
onSubmit(
|
||||
onSubmit: (
|
||||
message: string,
|
||||
bodyRanges: DraftBodyRanges,
|
||||
timestamp: number
|
||||
): unknown;
|
||||
) => unknown;
|
||||
onScroll?: (ev: UIEvent<HTMLElement>) => void;
|
||||
ourConversationId: string | undefined;
|
||||
platform: string;
|
||||
@@ -171,7 +171,7 @@ export type Props = Readonly<{
|
||||
shouldHidePopovers: boolean | null;
|
||||
linkPreviewLoading?: boolean;
|
||||
linkPreviewResult: LinkPreviewForUIType | null;
|
||||
onCloseLinkPreview?(conversationId: string): unknown;
|
||||
onCloseLinkPreview?: (conversationId: string) => unknown;
|
||||
showViewOnceButton: boolean;
|
||||
isViewOnceActive: boolean;
|
||||
onToggleViewOnce: () => void;
|
||||
|
||||
@@ -26,13 +26,13 @@ export type PropsType = {
|
||||
selectedDraftEmojiIndex: undefined | number;
|
||||
emojiSkinToneDefault: Emoji.SkinTone | null;
|
||||
|
||||
cancelCustomizePreferredReactionsModal(): unknown;
|
||||
deselectDraftEmoji(): unknown;
|
||||
cancelCustomizePreferredReactionsModal: () => unknown;
|
||||
deselectDraftEmoji: () => unknown;
|
||||
onEmojiSkinToneDefaultChange: (emojiSkinToneDefault: Emoji.SkinTone) => void;
|
||||
replaceSelectedDraftEmoji(newEmoji: Emoji.Variant): unknown;
|
||||
resetDraftEmoji(): unknown;
|
||||
savePreferredReactions(): unknown;
|
||||
selectDraftEmojiToBeReplaced(index: number): unknown;
|
||||
replaceSelectedDraftEmoji: (newEmoji: Emoji.Variant) => unknown;
|
||||
resetDraftEmoji: () => unknown;
|
||||
savePreferredReactions: () => unknown;
|
||||
selectDraftEmojiToBeReplaced: (index: number) => unknown;
|
||||
};
|
||||
|
||||
export function CustomizingPreferredReactionsModal({
|
||||
|
||||
@@ -15,7 +15,7 @@ export type Props = {
|
||||
|
||||
disabled?: boolean;
|
||||
value?: DurationInSeconds;
|
||||
onChange(value: DurationInSeconds): void;
|
||||
onChange: (value: DurationInSeconds) => void;
|
||||
};
|
||||
|
||||
export function DisappearingTimerSelect(props: Props): JSX.Element {
|
||||
|
||||
@@ -418,7 +418,7 @@ export function ForwardMessagesModal({
|
||||
type ForwardMessageEditorProps = Readonly<{
|
||||
draft: MessageForwardDraft;
|
||||
linkPreview: LinkPreviewForUIType | null | void;
|
||||
removeLinkPreview(): void;
|
||||
removeLinkPreview: () => void;
|
||||
RenderCompositionTextArea: ComponentType<SmartCompositionTextAreaProps>;
|
||||
onChange: (
|
||||
messageText: string,
|
||||
|
||||
@@ -44,13 +44,13 @@ export type PropsType = {
|
||||
| 'title'
|
||||
| 'type'
|
||||
>;
|
||||
bounceAppIconStart(): unknown;
|
||||
bounceAppIconStop(): unknown;
|
||||
notifyForCall(
|
||||
bounceAppIconStart: () => unknown;
|
||||
bounceAppIconStop: () => unknown;
|
||||
notifyForCall: (
|
||||
conversationId: string,
|
||||
conversationTitle: string,
|
||||
isVideoCall: boolean
|
||||
): unknown;
|
||||
) => unknown;
|
||||
} & (
|
||||
| {
|
||||
callMode: CallMode.Direct;
|
||||
|
||||
@@ -210,7 +210,7 @@ export type PropsType = {
|
||||
renderUpdateDialog: (
|
||||
_: Readonly<{ containerWidthBreakpoint: WidthBreakpoint }>
|
||||
) => JSX.Element;
|
||||
renderCaptchaDialog: (props: { onSkip(): void }) => JSX.Element;
|
||||
renderCaptchaDialog: (props: { onSkip: () => void }) => JSX.Element;
|
||||
renderCrashReportDialog: () => JSX.Element;
|
||||
renderExpiredBuildDialog: (_: DialogExpiredBuildPropsType) => JSX.Element;
|
||||
renderLeftPaneChatFolders: () => JSX.Element;
|
||||
|
||||
@@ -62,7 +62,7 @@ export type NavSidebarProps = Readonly<{
|
||||
hideHeader?: boolean;
|
||||
navTabsCollapsed: boolean;
|
||||
onBack?: (() => void) | null;
|
||||
onToggleNavTabsCollapse(navTabsCollapsed: boolean): void;
|
||||
onToggleNavTabsCollapse: (navTabsCollapsed: boolean) => void;
|
||||
preferredLeftPaneWidth: number;
|
||||
requiresFullWidth: boolean;
|
||||
savePreferredLeftPaneWidth: (width: number) => void;
|
||||
|
||||
@@ -128,7 +128,7 @@ export type NavTabPanelProps = Readonly<{
|
||||
collapsed: boolean;
|
||||
hasFailedStorySends: boolean;
|
||||
hasPendingUpdate: boolean;
|
||||
onToggleCollapse(collapsed: boolean): void;
|
||||
onToggleCollapse: (collapsed: boolean) => void;
|
||||
}>;
|
||||
|
||||
export type NavTabsToggleProps = Readonly<{
|
||||
@@ -137,7 +137,7 @@ export type NavTabsToggleProps = Readonly<{
|
||||
hasFailedStorySends: boolean;
|
||||
hasPendingUpdate: boolean;
|
||||
navTabsCollapsed: boolean;
|
||||
onToggleNavTabsCollapse(navTabsCollapsed: boolean): void;
|
||||
onToggleNavTabsCollapse: (navTabsCollapsed: boolean) => void;
|
||||
}>;
|
||||
|
||||
export function NavTabsToggle({
|
||||
|
||||
@@ -11,7 +11,7 @@ import { AxoButton } from '../axo/AxoButton.dom.tsx';
|
||||
|
||||
export type SafetyTipsModalProps = Readonly<{
|
||||
i18n: LocalizerType;
|
||||
onClose(): void;
|
||||
onClose: () => void;
|
||||
}>;
|
||||
|
||||
export function SafetyTipsModal({
|
||||
|
||||
@@ -18,7 +18,7 @@ export type PropsType = Readonly<{
|
||||
moduleClassName?: string;
|
||||
name?: string;
|
||||
options: ReadonlyArray<Option>;
|
||||
onChange(value: string): void;
|
||||
onChange: (value: string) => void;
|
||||
value?: string | number;
|
||||
}>;
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ export type Props = {
|
||||
defaultValue: Delta | undefined;
|
||||
formats: Array<string>;
|
||||
modules: Record<string, unknown>;
|
||||
onChange?(): void;
|
||||
onChange?: () => void;
|
||||
placeholder: string;
|
||||
readOnly: boolean | undefined;
|
||||
};
|
||||
|
||||
@@ -144,7 +144,7 @@ type DistributionListItemProps = {
|
||||
distributionList: StoryDistributionListWithMembersDataType;
|
||||
me: ConversationType;
|
||||
signalConnections: Array<ConversationType>;
|
||||
onSelectItemToEdit(id: StoryDistributionIdString): void;
|
||||
onSelectItemToEdit: (id: StoryDistributionIdString) => void;
|
||||
};
|
||||
|
||||
function DistributionListItem({
|
||||
@@ -200,7 +200,7 @@ function DistributionListItem({
|
||||
type GroupStoryItemProps = {
|
||||
i18n: LocalizerType;
|
||||
groupStory: ConversationType;
|
||||
onSelectGroupToView(id: string): void;
|
||||
onSelectGroupToView: (id: string) => void;
|
||||
};
|
||||
|
||||
function GroupStoryItem({
|
||||
@@ -1269,12 +1269,12 @@ export function EditDistributionListModal({
|
||||
type GroupStorySettingsModalProps = {
|
||||
i18n: LocalizerType;
|
||||
group: ConversationType;
|
||||
onClose(): void;
|
||||
onBackButtonClick(): void;
|
||||
getConversationByServiceId(
|
||||
onClose: () => void;
|
||||
onBackButtonClick: () => void;
|
||||
getConversationByServiceId: (
|
||||
serviceId: ServiceIdString
|
||||
): ConversationType | undefined;
|
||||
onRemoveGroup(group: ConversationType): void;
|
||||
) => ConversationType | undefined;
|
||||
onRemoveGroup: (group: ConversationType) => void;
|
||||
};
|
||||
|
||||
function GroupStorySettingsModal({
|
||||
|
||||
@@ -52,17 +52,17 @@ export type PropsDataType = Readonly<{
|
||||
}>;
|
||||
|
||||
export type ActionPropsDataType = Readonly<{
|
||||
setUsernameReservationError(
|
||||
setUsernameReservationError: (
|
||||
error: UsernameReservationError | undefined
|
||||
): void;
|
||||
clearUsernameReservation(): void;
|
||||
reserveUsername(optiona: ReserveUsernameOptionsType): void;
|
||||
confirmUsername(): void;
|
||||
) => void;
|
||||
clearUsernameReservation: () => void;
|
||||
reserveUsername: (optiona: ReserveUsernameOptionsType) => void;
|
||||
confirmUsername: () => void;
|
||||
showToast: ShowToastAction;
|
||||
}>;
|
||||
|
||||
export type ExternalPropsDataType = Readonly<{
|
||||
onClose(): void;
|
||||
onClose: () => void;
|
||||
}>;
|
||||
|
||||
export type PropsType = PropsDataType &
|
||||
|
||||
@@ -20,7 +20,7 @@ export type ComputePeaksResult = {
|
||||
};
|
||||
|
||||
export type Contents = {
|
||||
computePeaks(url: string, barCount: number): Promise<ComputePeaksResult>;
|
||||
computePeaks: (url: string, barCount: number) => Promise<ComputePeaksResult>;
|
||||
};
|
||||
|
||||
// This context's value is effectively global. This is not ideal but is necessary because
|
||||
|
||||
@@ -14,7 +14,7 @@ export type Props = {
|
||||
i18n: LocalizerType;
|
||||
children: ReactNode;
|
||||
|
||||
showDebugLog(): void;
|
||||
showDebugLog: () => void;
|
||||
};
|
||||
|
||||
export type State = {
|
||||
|
||||
@@ -46,11 +46,11 @@ export type Props = {
|
||||
readonly i18n: LocalizerType;
|
||||
readonly theme?: ThemeType;
|
||||
|
||||
onError(): void;
|
||||
onError: () => void;
|
||||
showMediaNoLongerAvailableToast?: () => void;
|
||||
showVisualAttachment(): void;
|
||||
startDownload(): void;
|
||||
cancelDownload(): void;
|
||||
showVisualAttachment: () => void;
|
||||
startDownload: () => void;
|
||||
cancelDownload: () => void;
|
||||
};
|
||||
|
||||
type MediaEvent = SyntheticEvent<HTMLVideoElement>;
|
||||
|
||||
@@ -54,10 +54,10 @@ export type OwnProps = Readonly<{
|
||||
status?: MessageStatusType;
|
||||
textPending?: boolean;
|
||||
timestamp: number;
|
||||
cancelAttachmentDownload(): void;
|
||||
kickOffAttachmentDownload(): void;
|
||||
onCorrupted(): void;
|
||||
computePeaks(url: string, barCount: number): Promise<ComputePeaksResult>;
|
||||
cancelAttachmentDownload: () => void;
|
||||
kickOffAttachmentDownload: () => void;
|
||||
onCorrupted: () => void;
|
||||
computePeaks: (url: string, barCount: number) => Promise<ComputePeaksResult>;
|
||||
onPlayMessage: (id: string, position: number) => void;
|
||||
}>;
|
||||
|
||||
|
||||
@@ -25,18 +25,18 @@ export type MessageRequestActionsConfirmationBaseProps = {
|
||||
conversationName: ContactNameData;
|
||||
isBlocked: boolean;
|
||||
isReported: boolean;
|
||||
acceptConversation(conversationId: string): void;
|
||||
blockAndReportSpam(conversationId: string): void;
|
||||
blockConversation(conversationId: string): void;
|
||||
reportSpam(conversationId: string): void;
|
||||
deleteConversation(conversationId: string): void;
|
||||
acceptConversation: (conversationId: string) => void;
|
||||
blockAndReportSpam: (conversationId: string) => void;
|
||||
blockConversation: (conversationId: string) => void;
|
||||
reportSpam: (conversationId: string) => void;
|
||||
deleteConversation: (conversationId: string) => void;
|
||||
};
|
||||
|
||||
export type MessageRequestActionsConfirmationProps =
|
||||
MessageRequestActionsConfirmationBaseProps & {
|
||||
i18n: LocalizerType;
|
||||
state: MessageRequestState;
|
||||
onChangeState(state: MessageRequestState): void;
|
||||
onChangeState: (state: MessageRequestState) => void;
|
||||
};
|
||||
|
||||
function Bold(parts: Array<string | JSX.Element>) {
|
||||
|
||||
@@ -18,7 +18,9 @@ export type MessageRequestResponseNotificationProps =
|
||||
i18n: LocalizerType;
|
||||
isBlocked: boolean;
|
||||
isGroup: boolean;
|
||||
onOpenMessageRequestActionsConfirmation(state: MessageRequestState): void;
|
||||
onOpenMessageRequestActionsConfirmation: (
|
||||
state: MessageRequestState
|
||||
) => void;
|
||||
renderedContact: JSX.Element | null;
|
||||
};
|
||||
|
||||
|
||||
@@ -9,16 +9,16 @@ export type Callback = (change: NativeThemeState) => void;
|
||||
// oxlint-disable-next-line typescript/consistent-type-definitions
|
||||
export interface MinimalIPC {
|
||||
// oxlint-disable-next-line typescript/no-explicit-any
|
||||
send(channel: string, ...args: ReadonlyArray<any>): void;
|
||||
send: (channel: string, ...args: ReadonlyArray<any>) => void;
|
||||
|
||||
// oxlint-disable-next-line typescript/no-explicit-any
|
||||
sendSync(channel: string): any;
|
||||
sendSync: (channel: string) => any;
|
||||
|
||||
on(
|
||||
on: (
|
||||
channel: string,
|
||||
// oxlint-disable-next-line typescript/no-explicit-any
|
||||
listener: (event: unknown, ...args: ReadonlyArray<any>) => void
|
||||
): this;
|
||||
) => this;
|
||||
}
|
||||
export type SystemThemeHolder = { systemTheme: SystemThemeType };
|
||||
|
||||
|
||||
@@ -7,9 +7,9 @@ import { createLogger } from '../logging/log.std.ts';
|
||||
const log = createLogger('useScrollLock');
|
||||
|
||||
export type ScrollerLock = Readonly<{
|
||||
isLocked(): boolean;
|
||||
lock(reason: string, onUserInterrupt: () => void): () => void;
|
||||
onUserInterrupt(reason: string): void;
|
||||
isLocked: () => boolean;
|
||||
lock: (reason: string, onUserInterrupt: () => void) => () => void;
|
||||
onUserInterrupt: (reason: string) => void;
|
||||
}>;
|
||||
|
||||
export function createScrollerLock(
|
||||
@@ -59,7 +59,7 @@ export const ScrollerLockContext = createContext<ScrollerLock | null>(null);
|
||||
export type ScrollLockProps = Readonly<{
|
||||
reason: string;
|
||||
lockScrollWhen: boolean;
|
||||
onUserInterrupt(): void;
|
||||
onUserInterrupt: () => void;
|
||||
}>;
|
||||
|
||||
export function useScrollerLock({
|
||||
|
||||
@@ -93,7 +93,7 @@ export type SizeObserverProps = Readonly<{
|
||||
*/
|
||||
onSizeChange?: SizeChangeHandler;
|
||||
// oxlint-disable-next-line typescript/no-explicit-any
|
||||
children(ref: RefObject<any>, size: Size | null): JSX.Element;
|
||||
children: (ref: RefObject<any>, size: Size | null) => JSX.Element;
|
||||
}>;
|
||||
|
||||
export function SizeObserver({
|
||||
|
||||
@@ -14,9 +14,9 @@ const { noop } = lodash;
|
||||
const log = createLogger('JobQueueDatabaseStore');
|
||||
|
||||
type Database = {
|
||||
getJobsInQueue(queueType: string): Promise<Array<StoredJob>>;
|
||||
insertJob(job: Readonly<StoredJob>): Promise<void>;
|
||||
deleteJob(id: string): Promise<void>;
|
||||
getJobsInQueue: (queueType: string) => Promise<Array<StoredJob>>;
|
||||
insertJob: (job: Readonly<StoredJob>) => Promise<void>;
|
||||
deleteJob: (id: string) => Promise<void>;
|
||||
};
|
||||
|
||||
export class JobQueueDatabaseStore implements JobQueueStore {
|
||||
|
||||
@@ -5,10 +5,10 @@ export type JobQueueStore = {
|
||||
/**
|
||||
* Add a job to the database. Doing this should enqueue it in the stream.
|
||||
*/
|
||||
insert(
|
||||
insert: (
|
||||
job: Readonly<StoredJob>,
|
||||
options?: Readonly<{ shouldPersist?: boolean }>
|
||||
): Promise<void>;
|
||||
) => Promise<void>;
|
||||
|
||||
/**
|
||||
* Remove a job. This should be called when a job finishes successfully or
|
||||
@@ -16,13 +16,13 @@ export type JobQueueStore = {
|
||||
*
|
||||
* It should NOT be called to cancel a job.
|
||||
*/
|
||||
delete(id: string): Promise<void>;
|
||||
delete: (id: string) => Promise<void>;
|
||||
|
||||
/**
|
||||
* Stream jobs for a given queue. At startup, this stream may produce a bunch of
|
||||
* jobs. After that, it should produce one job per `insert`.
|
||||
*/
|
||||
stream(queueType: string): AsyncIterable<StoredJob>;
|
||||
stream: (queueType: string) => AsyncIterable<StoredJob>;
|
||||
};
|
||||
|
||||
export type ParsedJob<T> = {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
import { powerMonitor } from 'electron';
|
||||
|
||||
export type InitializeOptions = {
|
||||
send(event: string): void;
|
||||
send: (event: string) => void;
|
||||
};
|
||||
|
||||
export namespace PowerChannel {
|
||||
|
||||
@@ -27,12 +27,15 @@ const log = createLogger('copyQuote');
|
||||
const { i18n } = window.SignalContext;
|
||||
|
||||
export type MinimalMessageCache = Readonly<{
|
||||
findBySentAt(
|
||||
findBySentAt: (
|
||||
sentAt: number,
|
||||
predicate: (attributes: MessageModel) => boolean
|
||||
): Promise<MessageModel | undefined>;
|
||||
upgradeSchema(message: MessageModel, minSchemaVersion: number): Promise<void>;
|
||||
register(message: MessageModel): MessageModel;
|
||||
) => Promise<MessageModel | undefined>;
|
||||
upgradeSchema: (
|
||||
message: MessageModel,
|
||||
minSchemaVersion: number
|
||||
) => Promise<void>;
|
||||
register: (message: MessageModel) => MessageModel;
|
||||
}>;
|
||||
|
||||
export type CopyQuoteOptionsType = Readonly<{
|
||||
|
||||
@@ -328,7 +328,7 @@ export class ConversationModel {
|
||||
|
||||
contactCollection?: Array<ConversationModel>;
|
||||
|
||||
debouncedUpdateLastMessage: (() => void) & { flush(): void };
|
||||
debouncedUpdateLastMessage: (() => void) & { flush: () => void };
|
||||
|
||||
initialPromise?: Promise<unknown>;
|
||||
|
||||
|
||||
Vendored
+2
-2
@@ -58,8 +58,8 @@ declare module 'mp4box' {
|
||||
export type MP4ArrayBuffer = ArrayBuffer & { fileStart: number };
|
||||
|
||||
export type MP4File = {
|
||||
appendBuffer(data: MP4ArrayBuffer): number;
|
||||
flush(): void;
|
||||
appendBuffer: (data: MP4ArrayBuffer) => number;
|
||||
flush: () => void;
|
||||
onError?: (e: string) => void;
|
||||
onReady?: (info: MP4Info) => void;
|
||||
};
|
||||
|
||||
@@ -139,11 +139,11 @@ class ActiveWindowService {
|
||||
}
|
||||
|
||||
export type ActiveWindowServiceType = {
|
||||
isActive(): boolean;
|
||||
registerForActive(callback: () => void): void;
|
||||
unregisterForActive(callback: () => void): void;
|
||||
registerForChange(callback: (isActive: boolean) => void): void;
|
||||
unregisterForChange(callback: (isActive: boolean) => void): void;
|
||||
isActive: () => boolean;
|
||||
registerForActive: (callback: () => void) => void;
|
||||
unregisterForActive: (callback: () => void) => void;
|
||||
registerForChange: (callback: (isActive: boolean) => void) => void;
|
||||
unregisterForChange: (callback: (isActive: boolean) => void) => void;
|
||||
};
|
||||
|
||||
export function getActiveWindowService(
|
||||
|
||||
@@ -147,7 +147,7 @@ export function addGlobalKeyboardShortcuts(): void {
|
||||
(target.attributes as any).class.value
|
||||
) {
|
||||
const className = (target.attributes as any).class.value;
|
||||
/* eslint-enable @typescript-eslint/no-explicit-any */
|
||||
/* oxlint-enable @typescript-eslint/no-explicit-any */
|
||||
|
||||
// Search box wants to handle events internally
|
||||
if (className.includes('LeftPaneSearchInput__input')) {
|
||||
|
||||
@@ -257,7 +257,7 @@ type CallingReduxInterface = Pick<
|
||||
| 'setMutedBy'
|
||||
| 'onObservedRemoteMute'
|
||||
> & {
|
||||
areAnyCallsActiveOrRinging(): boolean;
|
||||
areAnyCallsActiveOrRinging: () => boolean;
|
||||
};
|
||||
|
||||
export type SetPresentingOptionsType = Readonly<{
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
import { strictAssert } from '../util/assert.std.ts';
|
||||
|
||||
type LayoutMapType = { get(code: string): string | undefined };
|
||||
type LayoutMapType = { get: (code: string) => string | undefined };
|
||||
|
||||
let layoutMap: LayoutMapType | undefined;
|
||||
|
||||
@@ -11,7 +11,7 @@ export async function initialize(): Promise<void> {
|
||||
strictAssert(layoutMap === undefined, 'keyboardLayout already initialized');
|
||||
|
||||
const experimentalNavigator = window.navigator as unknown as {
|
||||
keyboard: { getLayoutMap(): Promise<LayoutMapType> };
|
||||
keyboard: { getLayoutMap: () => Promise<LayoutMapType> };
|
||||
};
|
||||
|
||||
strictAssert(
|
||||
|
||||
@@ -64,7 +64,7 @@ const VERSION_WATERMARK_STORAGE_KEY = 'releaseNotesVersionWatermark';
|
||||
const BUCKET_VALUE_HASH_SALT = 'ReleaseNoteAndMegaphoneFetcher';
|
||||
|
||||
type MinimalEventsType = {
|
||||
on(event: 'timetravel', callback: () => void): void;
|
||||
on: (event: 'timetravel', callback: () => void) => void;
|
||||
};
|
||||
|
||||
type FetchOptions = {
|
||||
|
||||
+103
-101
@@ -921,13 +921,13 @@ type ReadableInterface = {
|
||||
includeStoryReplies: boolean;
|
||||
}
|
||||
) => number;
|
||||
getOldestUnreadMentionOfMeForConversation(
|
||||
getOldestUnreadMentionOfMeForConversation: (
|
||||
conversationId: string,
|
||||
options: {
|
||||
storyId?: string;
|
||||
includeStoryReplies: boolean;
|
||||
}
|
||||
): MessageMetricsType | undefined;
|
||||
) => MessageMetricsType | undefined;
|
||||
|
||||
getReactionByTimestamp: (
|
||||
fromId: string,
|
||||
@@ -980,37 +980,37 @@ type ReadableInterface = {
|
||||
conversationId: string;
|
||||
includeStoryReplies: boolean;
|
||||
}) => ConversationMessageStatsType;
|
||||
getLastConversationMessage(options: {
|
||||
getLastConversationMessage: (options: {
|
||||
conversationId: string;
|
||||
}): MessageType | undefined;
|
||||
}) => MessageType | undefined;
|
||||
getAllCallHistory: () => ReadonlyArray<CallHistoryDetails>;
|
||||
getCallHistoryUnreadCount(): number;
|
||||
getCallHistoryMessageByCallId(options: {
|
||||
getCallHistoryUnreadCount: () => number;
|
||||
getCallHistoryMessageByCallId: (options: {
|
||||
conversationId: string;
|
||||
callId: string;
|
||||
}): MessageType | undefined;
|
||||
getCallHistory(
|
||||
}) => MessageType | undefined;
|
||||
getCallHistory: (
|
||||
callId: string,
|
||||
peerId: ServiceIdString | string
|
||||
): CallHistoryDetails | undefined;
|
||||
getCallHistoryGroupsCount(filter: CallHistoryFilter): number;
|
||||
getCallHistoryGroups(
|
||||
) => CallHistoryDetails | undefined;
|
||||
getCallHistoryGroupsCount: (filter: CallHistoryFilter) => number;
|
||||
getCallHistoryGroups: (
|
||||
filter: CallHistoryFilter,
|
||||
pagination: CallHistoryPagination
|
||||
): Array<CallHistoryGroup>;
|
||||
) => Array<CallHistoryGroup>;
|
||||
hasGroupCallHistoryMessage: (
|
||||
conversationId: string,
|
||||
eraId: string
|
||||
) => boolean;
|
||||
callLinkExists(roomId: string): boolean;
|
||||
defunctCallLinkExists(roomId: string): boolean;
|
||||
callLinkExists: (roomId: string) => boolean;
|
||||
defunctCallLinkExists: (roomId: string) => boolean;
|
||||
getAllCallLinks: () => ReadonlyArray<CallLinkType>;
|
||||
getCallLinkByRoomId: (roomId: string) => CallLinkType | undefined;
|
||||
getCallLinkRecordByRoomId: (roomId: string) => CallLinkRecord | undefined;
|
||||
getAllAdminCallLinks(): ReadonlyArray<CallLinkType>;
|
||||
getAllCallLinkRecordsWithAdminKey(): ReadonlyArray<CallLinkRecord>;
|
||||
getAllDefunctCallLinksWithAdminKey(): ReadonlyArray<DefunctCallLinkType>;
|
||||
getAllMarkedDeletedCallLinkRoomIds(): ReadonlyArray<string>;
|
||||
getAllAdminCallLinks: () => ReadonlyArray<CallLinkType>;
|
||||
getAllCallLinkRecordsWithAdminKey: () => ReadonlyArray<CallLinkRecord>;
|
||||
getAllDefunctCallLinksWithAdminKey: () => ReadonlyArray<DefunctCallLinkType>;
|
||||
getAllMarkedDeletedCallLinkRoomIds: () => ReadonlyArray<string>;
|
||||
getMessagesBetween: (
|
||||
conversationId: string,
|
||||
options: GetMessagesBetweenOptions
|
||||
@@ -1031,12 +1031,12 @@ type ReadableInterface = {
|
||||
getUnprocessedCount: () => number;
|
||||
|
||||
// Test-only
|
||||
_getAttachmentDownloadJob(
|
||||
_getAttachmentDownloadJob: (
|
||||
job: Pick<
|
||||
AttachmentDownloadJobType,
|
||||
'messageId' | 'attachmentType' | 'attachmentSignature'
|
||||
>
|
||||
): AttachmentDownloadJobType | undefined;
|
||||
) => AttachmentDownloadJobType | undefined;
|
||||
|
||||
getBackupCdnObjectMetadata: (
|
||||
mediaId: string
|
||||
@@ -1053,28 +1053,30 @@ type ReadableInterface = {
|
||||
getRecentEmojis: (limit: number) => ReadonlyArray<Emoji.Parent>;
|
||||
getRecentGifs: (limit: number) => ReadonlyArray<GifType>;
|
||||
|
||||
getAllBadges(): Array<BadgeType>;
|
||||
getAllBadges: () => Array<BadgeType>;
|
||||
|
||||
_getAllStoryDistributions(): Array<StoryDistributionType>;
|
||||
_getAllStoryDistributionMembers(): Array<StoryDistributionMemberType>;
|
||||
getAllStoryDistributionsWithMembers(): Array<StoryDistributionWithMembersType>;
|
||||
getStoryDistributionWithMembers(
|
||||
_getAllStoryDistributions: () => Array<StoryDistributionType>;
|
||||
_getAllStoryDistributionMembers: () => Array<StoryDistributionMemberType>;
|
||||
getAllStoryDistributionsWithMembers: () => Array<StoryDistributionWithMembersType>;
|
||||
getStoryDistributionWithMembers: (
|
||||
id: string
|
||||
): StoryDistributionWithMembersType | undefined;
|
||||
) => StoryDistributionWithMembersType | undefined;
|
||||
|
||||
_getAllStoryReads(): Array<StoryReadType>;
|
||||
getLastStoryReadsForAuthor(options: {
|
||||
_getAllStoryReads: () => Array<StoryReadType>;
|
||||
getLastStoryReadsForAuthor: (options: {
|
||||
authorId: ServiceIdString;
|
||||
conversationId?: string;
|
||||
limit?: number;
|
||||
}): Array<StoryReadType>;
|
||||
countStoryReadsByConversation(conversationId: string): number;
|
||||
}) => Array<StoryReadType>;
|
||||
countStoryReadsByConversation: (conversationId: string) => number;
|
||||
|
||||
getAllNotificationProfiles(): Array<NotificationProfileType>;
|
||||
getNotificationProfileById(id: string): NotificationProfileType | undefined;
|
||||
getAllNotificationProfiles: () => Array<NotificationProfileType>;
|
||||
getNotificationProfileById: (
|
||||
id: string
|
||||
) => NotificationProfileType | undefined;
|
||||
|
||||
getAllDonationReceipts(): Array<DonationReceipt>;
|
||||
getDonationReceiptById(id: string): DonationReceipt | undefined;
|
||||
getAllDonationReceipts: () => Array<DonationReceipt>;
|
||||
getDonationReceiptById: (id: string) => DonationReceipt | undefined;
|
||||
|
||||
getAllChatFolders: () => ReadonlyArray<ChatFolder>;
|
||||
getCurrentChatFolders: () => ReadonlyArray<CurrentChatFolder>;
|
||||
@@ -1104,14 +1106,14 @@ type ReadableInterface = {
|
||||
sourceServiceId?: string
|
||||
) => Array<string>;
|
||||
|
||||
getJobsInQueue(queueType: string): Array<StoredJob>;
|
||||
getJobsInQueue: (queueType: string) => Array<StoredJob>;
|
||||
|
||||
wasGroupCallRingPreviouslyCanceled(ringId: bigint): boolean;
|
||||
wasGroupCallRingPreviouslyCanceled: (ringId: bigint) => boolean;
|
||||
|
||||
getMaxMessageCounter(): number | undefined;
|
||||
getMaxMessageCounter: () => number | undefined;
|
||||
|
||||
getStatisticsForLogging(): Record<string, string>;
|
||||
getBackupAttachmentDownloadProgress(): BackupAttachmentDownloadProgress;
|
||||
getStatisticsForLogging: () => Record<string, string>;
|
||||
getBackupAttachmentDownloadProgress: () => BackupAttachmentDownloadProgress;
|
||||
getAttachmentReferencesForMessages: (
|
||||
messageIds: Array<string>
|
||||
) => Array<MessageAttachmentDBType>;
|
||||
@@ -1189,14 +1191,14 @@ type WritableInterface = {
|
||||
|
||||
createOrUpdateSession: (data: SessionType) => void;
|
||||
createOrUpdateSessions: (array: Array<SessionType>) => void;
|
||||
commitDecryptResult(options: {
|
||||
commitDecryptResult: (options: {
|
||||
kyberPreKeysToRemove: Array<PreKeyIdType>;
|
||||
preKeysToRemove: Array<PreKeyIdType>;
|
||||
senderKeys: Array<SenderKeyType>;
|
||||
sessions: Array<SessionType>;
|
||||
unprocessed: Array<UnprocessedType>;
|
||||
kyberTriples: Array<KyberPreKeyTripleType>;
|
||||
}): void;
|
||||
}) => void;
|
||||
removeSessionById: (id: SessionIdType) => number;
|
||||
removeSessionsByConversation: (conversationId: string) => void;
|
||||
removeSessionsByServiceId: (serviceId: ServiceIdString) => void;
|
||||
@@ -1272,30 +1274,30 @@ type WritableInterface = {
|
||||
_removeAllCallHistory: () => void;
|
||||
markCallHistoryDeleted: (callId: string) => void;
|
||||
cleanupCallHistoryMessages: () => void;
|
||||
markCallHistoryRead(callId: string): void;
|
||||
markAllCallHistoryRead(target: CallLogEventTarget): number;
|
||||
markAllCallHistoryReadInConversation(target: CallLogEventTarget): number;
|
||||
saveCallHistory(callHistory: CallHistoryDetails): void;
|
||||
markCallHistoryMissed(callIds: ReadonlyArray<string>): void;
|
||||
getRecentStaleRingsAndMarkOlderMissed(): ReadonlyArray<MaybeStaleCallHistory>;
|
||||
insertCallLink(callLink: CallLinkType): void;
|
||||
insertOrUpdateCallLinkFromSync(
|
||||
markCallHistoryRead: (callId: string) => void;
|
||||
markAllCallHistoryRead: (target: CallLogEventTarget) => number;
|
||||
markAllCallHistoryReadInConversation: (target: CallLogEventTarget) => number;
|
||||
saveCallHistory: (callHistory: CallHistoryDetails) => void;
|
||||
markCallHistoryMissed: (callIds: ReadonlyArray<string>) => void;
|
||||
getRecentStaleRingsAndMarkOlderMissed: () => ReadonlyArray<MaybeStaleCallHistory>;
|
||||
insertCallLink: (callLink: CallLinkType) => void;
|
||||
insertOrUpdateCallLinkFromSync: (
|
||||
callLink: CallLinkType
|
||||
): InsertOrUpdateCallLinkFromSyncResult;
|
||||
updateCallLink(callLink: CallLinkType): void;
|
||||
updateCallLinkState(
|
||||
) => InsertOrUpdateCallLinkFromSyncResult;
|
||||
updateCallLink: (callLink: CallLinkType) => void;
|
||||
updateCallLinkState: (
|
||||
roomId: string,
|
||||
callLinkState: CallLinkStateType
|
||||
): CallLinkType;
|
||||
beginDeleteAllCallLinks(): boolean;
|
||||
beginDeleteCallLink(roomId: string): boolean;
|
||||
deleteCallHistoryByRoomId(roomid: string): void;
|
||||
deleteCallLinkAndHistory(roomId: string): void;
|
||||
finalizeDeleteCallLink(roomId: string): void;
|
||||
_removeAllCallLinks(): void;
|
||||
insertDefunctCallLink(defunctCallLink: DefunctCallLinkType): void;
|
||||
updateDefunctCallLink(defunctCallLink: DefunctCallLinkType): void;
|
||||
deleteCallLinkFromSync(roomId: string): void;
|
||||
) => CallLinkType;
|
||||
beginDeleteAllCallLinks: () => boolean;
|
||||
beginDeleteCallLink: (roomId: string) => boolean;
|
||||
deleteCallHistoryByRoomId: (roomid: string) => void;
|
||||
deleteCallLinkAndHistory: (roomId: string) => void;
|
||||
finalizeDeleteCallLink: (roomId: string) => void;
|
||||
_removeAllCallLinks: () => void;
|
||||
insertDefunctCallLink: (defunctCallLink: DefunctCallLinkType) => void;
|
||||
updateDefunctCallLink: (defunctCallLink: DefunctCallLinkType) => void;
|
||||
deleteCallLinkFromSync: (roomId: string) => void;
|
||||
migrateConversationMessages: (obsoleteId: string, currentId: string) => void;
|
||||
saveEditedMessage: (
|
||||
mainMessage: ReadonlyDeep<MessageType>,
|
||||
@@ -1399,42 +1401,42 @@ type WritableInterface = {
|
||||
addRecentGif: (gif: GifType, lastUsedAt: number, maxRecents: number) => void;
|
||||
removeRecentGif: (gif: GifType['id']) => void;
|
||||
|
||||
updateOrCreateBadges(badges: ReadonlyArray<BadgeType>): void;
|
||||
badgeImageFileDownloaded(url: string, localPath: string): void;
|
||||
updateOrCreateBadges: (badges: ReadonlyArray<BadgeType>) => void;
|
||||
badgeImageFileDownloaded: (url: string, localPath: string) => void;
|
||||
|
||||
_deleteAllStoryDistributions(): void;
|
||||
createNewStoryDistribution(
|
||||
_deleteAllStoryDistributions: () => void;
|
||||
createNewStoryDistribution: (
|
||||
distribution: StoryDistributionWithMembersType
|
||||
): void;
|
||||
modifyStoryDistribution(distribution: StoryDistributionType): void;
|
||||
modifyStoryDistributionMembers(
|
||||
) => void;
|
||||
modifyStoryDistribution: (distribution: StoryDistributionType) => void;
|
||||
modifyStoryDistributionMembers: (
|
||||
listId: string,
|
||||
options: {
|
||||
toAdd: Array<ServiceIdString>;
|
||||
toRemove: Array<ServiceIdString>;
|
||||
}
|
||||
): void;
|
||||
modifyStoryDistributionWithMembers(
|
||||
) => void;
|
||||
modifyStoryDistributionWithMembers: (
|
||||
distribution: StoryDistributionType,
|
||||
options: {
|
||||
toAdd: Array<ServiceIdString>;
|
||||
toRemove: Array<ServiceIdString>;
|
||||
}
|
||||
): void;
|
||||
deleteStoryDistribution(id: StoryDistributionIdString): void;
|
||||
) => void;
|
||||
deleteStoryDistribution: (id: StoryDistributionIdString) => void;
|
||||
|
||||
_deleteAllStoryReads(): void;
|
||||
addNewStoryRead(read: StoryReadType): void;
|
||||
_deleteAllStoryReads: () => void;
|
||||
addNewStoryRead: (read: StoryReadType) => void;
|
||||
|
||||
_deleteAllNotificationProfiles(): void;
|
||||
deleteNotificationProfileById(id: string): void;
|
||||
markNotificationProfileDeleted(id: string): number | undefined;
|
||||
createNotificationProfile(profile: NotificationProfileType): void;
|
||||
updateNotificationProfile(profile: NotificationProfileType): void;
|
||||
_deleteAllNotificationProfiles: () => void;
|
||||
deleteNotificationProfileById: (id: string) => void;
|
||||
markNotificationProfileDeleted: (id: string) => number | undefined;
|
||||
createNotificationProfile: (profile: NotificationProfileType) => void;
|
||||
updateNotificationProfile: (profile: NotificationProfileType) => void;
|
||||
|
||||
_deleteAllDonationReceipts(): void;
|
||||
deleteDonationReceiptById(id: string): void;
|
||||
createDonationReceipt(profile: DonationReceipt): void;
|
||||
_deleteAllDonationReceipts: () => void;
|
||||
deleteDonationReceiptById: (id: string) => void;
|
||||
createDonationReceipt: (profile: DonationReceipt) => void;
|
||||
|
||||
createChatFolder: (chatFolder: ChatFolder) => void;
|
||||
createAllChatsChatFolder: () => ChatFolder;
|
||||
@@ -1502,20 +1504,20 @@ type WritableInterface = {
|
||||
removeAllConfiguration: (isPrimary: boolean) => void;
|
||||
eraseStorageServiceState: () => void;
|
||||
|
||||
insertJob(job: Readonly<StoredJob>): void;
|
||||
deleteJob(id: string): void;
|
||||
insertJob: (job: Readonly<StoredJob>) => void;
|
||||
deleteJob: (id: string) => void;
|
||||
|
||||
disableMessageInsertTriggers(): void;
|
||||
enableMessageInsertTriggersAndBackfill(): void;
|
||||
ensureMessageInsertTriggersAreEnabled(): void;
|
||||
disableMessageInsertTriggers: () => void;
|
||||
enableMessageInsertTriggersAndBackfill: () => void;
|
||||
ensureMessageInsertTriggersAreEnabled: () => void;
|
||||
|
||||
disableFSync(): void;
|
||||
enableFSyncAndCheckpoint(): void;
|
||||
disableFSync: () => void;
|
||||
enableFSyncAndCheckpoint: () => void;
|
||||
|
||||
processGroupCallRingCancellation(ringId: bigint): void;
|
||||
cleanExpiredGroupCallRingCancellations(): void;
|
||||
processGroupCallRingCancellation: (ringId: bigint) => void;
|
||||
cleanExpiredGroupCallRingCancellations: () => void;
|
||||
|
||||
_testOnlyRemoveMessageAttachments(timestamp: number): void;
|
||||
_testOnlyRemoveMessageAttachments: (timestamp: number) => void;
|
||||
};
|
||||
|
||||
// Adds a database argument
|
||||
@@ -1539,10 +1541,10 @@ export type ServerReadableDirectInterface = ReadableInterface & {
|
||||
contactServiceIdsMatchingQuery?: Array<ServiceIdString>;
|
||||
}) => Array<ServerSearchResultMessageType>;
|
||||
|
||||
getRecentStoryReplies(
|
||||
getRecentStoryReplies: (
|
||||
storyId: string,
|
||||
options?: GetRecentStoryRepliesOptionsType
|
||||
): Array<MessageType>;
|
||||
) => Array<MessageType>;
|
||||
getOlderMessagesByConversation: (
|
||||
options: AdjacentMessagesByConversationOptionsType
|
||||
) => Array<MessageType>;
|
||||
@@ -1569,7 +1571,7 @@ export type ServerReadableDirectInterface = ReadableInterface & {
|
||||
) => StoredSignedPreKeyType | undefined;
|
||||
getAllSignedPreKeys: () => Array<StoredSignedPreKeyType>;
|
||||
|
||||
getItemById<K extends ItemKeyType>(id: K): StoredItemType<K> | undefined;
|
||||
getItemById: <K extends ItemKeyType>(id: K) => StoredItemType<K> | undefined;
|
||||
getAllItems: () => StoredAllItemsType;
|
||||
|
||||
// Server-only
|
||||
@@ -1636,7 +1638,7 @@ export type ServerWritableDirectInterface = WritableInterface & {
|
||||
createOrUpdateSignedPreKey: (data: StoredSignedPreKeyType) => void;
|
||||
bulkAddSignedPreKeys: (array: Array<StoredSignedPreKeyType>) => void;
|
||||
|
||||
createOrUpdateItem<K extends ItemKeyType>(data: StoredItemType<K>): void;
|
||||
createOrUpdateItem: <K extends ItemKeyType>(data: StoredItemType<K>) => void;
|
||||
|
||||
// Server-only
|
||||
|
||||
@@ -1672,10 +1674,10 @@ export type ClientOnlyReadableInterface = ClientInterfaceWrap<{
|
||||
contactServiceIdsMatchingQuery?: Array<ServiceIdString>;
|
||||
}) => Array<ClientSearchResultMessageType>;
|
||||
|
||||
getRecentStoryReplies(
|
||||
getRecentStoryReplies: (
|
||||
storyId: string,
|
||||
options?: GetRecentStoryRepliesOptionsType
|
||||
): Array<MessageType>;
|
||||
) => Array<MessageType>;
|
||||
getOlderMessagesByConversation: (
|
||||
options: AdjacentMessagesByConversationOptionsType
|
||||
) => Array<MessageType>;
|
||||
@@ -1698,7 +1700,7 @@ export type ClientOnlyReadableInterface = ClientInterfaceWrap<{
|
||||
getSignedPreKeyById: (id: SignedPreKeyIdType) => SignedPreKeyType | undefined;
|
||||
getAllSignedPreKeys: () => Array<SignedPreKeyType>;
|
||||
|
||||
getItemById<K extends ItemKeyType>(id: K): ItemType<K> | undefined;
|
||||
getItemById: <K extends ItemKeyType>(id: K) => ItemType<K> | undefined;
|
||||
getAllItems: () => AllItemsType;
|
||||
}>;
|
||||
|
||||
@@ -1752,7 +1754,7 @@ export type ClientOnlyWritableInterface = ClientInterfaceWrap<{
|
||||
createOrUpdateSignedPreKey: (data: SignedPreKeyType) => void;
|
||||
bulkAddSignedPreKeys: (array: Array<SignedPreKeyType>) => void;
|
||||
|
||||
createOrUpdateItem<K extends ItemKeyType>(data: ItemType<K>): void;
|
||||
createOrUpdateItem: <K extends ItemKeyType>(data: ItemType<K>) => void;
|
||||
|
||||
// Client-side only
|
||||
|
||||
|
||||
@@ -155,7 +155,7 @@ function renderUpdateDialog(
|
||||
): JSX.Element {
|
||||
return <SmartUpdateDialog {...props} />;
|
||||
}
|
||||
function renderCaptchaDialog({ onSkip }: { onSkip(): void }): JSX.Element {
|
||||
function renderCaptchaDialog({ onSkip }: { onSkip: () => void }): JSX.Element {
|
||||
return <SmartCaptchaDialog onSkip={onSkip} />;
|
||||
}
|
||||
function renderCrashReportDialog(): JSX.Element {
|
||||
|
||||
@@ -17,7 +17,7 @@ import { useUsernameActions } from '../ducks/username.preload.ts';
|
||||
import { useToastActions } from '../ducks/toast.preload.ts';
|
||||
|
||||
export type SmartUsernameEditorProps = Readonly<{
|
||||
onClose(): void;
|
||||
onClose: () => void;
|
||||
}>;
|
||||
|
||||
export const SmartUsernameEditor = memo(function SmartUsernameEditor({
|
||||
|
||||
Vendored
+2
-2
@@ -324,8 +324,8 @@ export type CallbackResultType = {
|
||||
};
|
||||
|
||||
export type IRequestHandler = {
|
||||
handleRequest(request: IncomingWebSocketRequest): void;
|
||||
handleDisconnect(): void;
|
||||
handleRequest: (request: IncomingWebSocketRequest) => void;
|
||||
handleDisconnect: () => void;
|
||||
};
|
||||
|
||||
export type PniKeyMaterialType = Readonly<{
|
||||
|
||||
@@ -18,7 +18,7 @@ const UPDATE_INTERVAL = 2 * durations.DAY;
|
||||
const UPDATE_TIME_STORAGE_KEY = 'nextScheduledUpdateKeyTime';
|
||||
|
||||
export type MinimalEventsType = {
|
||||
on(event: 'timetravel', callback: () => void): void;
|
||||
on: (event: 'timetravel', callback: () => void) => void;
|
||||
};
|
||||
|
||||
let initComplete = false;
|
||||
|
||||
@@ -162,17 +162,17 @@ type ChatConnection<Kind extends ChatKind> = Kind extends 'auth'
|
||||
|
||||
// oxlint-disable-next-line typescript/consistent-type-definitions
|
||||
export interface IWebSocketResource {
|
||||
sendRequest(options: SendRequestOptions): Promise<Response>;
|
||||
sendRequest: (options: SendRequestOptions) => Promise<Response>;
|
||||
|
||||
addEventListener(name: 'close', handler: (ev: CloseEvent) => void): void;
|
||||
addEventListener: (name: 'close', handler: (ev: CloseEvent) => void) => void;
|
||||
|
||||
forceKeepAlive(timeout?: number): void;
|
||||
forceKeepAlive: (timeout?: number) => void;
|
||||
|
||||
shutdown(): void;
|
||||
shutdown: () => void;
|
||||
|
||||
close(code?: number, reason?: string): void;
|
||||
close: (code?: number, reason?: string) => void;
|
||||
|
||||
localPort(): number | undefined;
|
||||
localPort: () => number | undefined;
|
||||
}
|
||||
|
||||
export type IChatConnection<Chat extends ChatKind> = IWebSocketResource & {
|
||||
|
||||
@@ -19,7 +19,7 @@ const CACHED_AUTH_TTL = 23 * HOUR;
|
||||
export type CDSBaseOptionsType = Readonly<{
|
||||
logger: LoggerType;
|
||||
proxyUrl?: string;
|
||||
getAuth(): Promise<CDSAuthType>;
|
||||
getAuth: () => Promise<CDSAuthType>;
|
||||
}>;
|
||||
|
||||
export type CachedAuthType = Readonly<{
|
||||
|
||||
Vendored
+8
-9
@@ -6,21 +6,20 @@ import type { StorageAccessType } from './StorageKeys.std.ts';
|
||||
export type { StorageAccessType } from './StorageKeys.std.ts';
|
||||
|
||||
export type StorageInterface = {
|
||||
onready(callback: () => void): void;
|
||||
onready: (callback: () => void) => void;
|
||||
|
||||
get<K extends keyof StorageAccessType, V extends StorageAccessType[K]>(
|
||||
get: <K extends keyof StorageAccessType, V extends StorageAccessType[K]>(
|
||||
key: K
|
||||
): V | undefined;
|
||||
|
||||
get<K extends keyof StorageAccessType, V extends StorageAccessType[K]>(
|
||||
) => V | undefined;
|
||||
get: <K extends keyof StorageAccessType, V extends StorageAccessType[K]>(
|
||||
key: K,
|
||||
defaultValue: V
|
||||
): V;
|
||||
) => V;
|
||||
|
||||
put<K extends keyof StorageAccessType>(
|
||||
put: <K extends keyof StorageAccessType>(
|
||||
key: K,
|
||||
value: StorageAccessType[K]
|
||||
): Promise<void>;
|
||||
) => Promise<void>;
|
||||
|
||||
remove<K extends keyof StorageAccessType>(key: K): Promise<void>;
|
||||
remove: <K extends keyof StorageAccessType>(key: K) => Promise<void>;
|
||||
};
|
||||
|
||||
@@ -45,15 +45,15 @@ export type LocalizerType = {
|
||||
options?: LocalizerOptions,
|
||||
]
|
||||
): string;
|
||||
getIntl(): IntlShape;
|
||||
getLocale(): string;
|
||||
getLocaleMessages(): LocaleMessagesType;
|
||||
getLocaleDirection(): LocaleDirection;
|
||||
getHourCyclePreference(): HourCyclePreference;
|
||||
getIntl: () => IntlShape;
|
||||
getLocale: () => string;
|
||||
getLocaleMessages: () => LocaleMessagesType;
|
||||
getLocaleDirection: () => LocaleDirection;
|
||||
getHourCyclePreference: () => HourCyclePreference;
|
||||
|
||||
// Storybook
|
||||
trackUsage(): void;
|
||||
stopTrackingUsage(): Array<[string, string]>;
|
||||
trackUsage: () => void;
|
||||
stopTrackingUsage: () => Array<[string, string]>;
|
||||
};
|
||||
|
||||
export enum SentMediaQualityType {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
import { explodePromise } from './explodePromise.std.ts';
|
||||
|
||||
export type IController = {
|
||||
abort(): void;
|
||||
abort: () => void;
|
||||
};
|
||||
|
||||
export class AbortableProcess<Result> implements IController {
|
||||
|
||||
@@ -9,7 +9,7 @@ const log = createLogger('StartupQueue');
|
||||
|
||||
type EntryType = Readonly<{
|
||||
value: number;
|
||||
callback(): Promise<void>;
|
||||
callback: () => Promise<void>;
|
||||
}>;
|
||||
|
||||
let startupProcessingQueue: StartupQueue | undefined;
|
||||
|
||||
@@ -78,9 +78,9 @@ export type IpcResponseType = Readonly<{
|
||||
|
||||
export type DesktopCapturerOptionsType = Readonly<{
|
||||
i18n: LocalizerType;
|
||||
onPresentableSources(sources: ReadonlyArray<PresentableSource>): void;
|
||||
onMediaStream(stream: MediaStream): void;
|
||||
onError(error: Error): void;
|
||||
onPresentableSources: (sources: ReadonlyArray<PresentableSource>) => void;
|
||||
onMediaStream: (stream: MediaStream) => void;
|
||||
onError: (error: Error) => void;
|
||||
}>;
|
||||
|
||||
export type DesktopCapturerBaton = Readonly<{
|
||||
|
||||
@@ -7,7 +7,7 @@ import { clearTimeoutIfNecessary } from './clearTimeoutIfNecessary.std.ts';
|
||||
export type OptionsType = Readonly<{
|
||||
name: string;
|
||||
timeout: number;
|
||||
abortController: { abort(): void };
|
||||
abortController: { abort: () => void };
|
||||
}>;
|
||||
|
||||
class StreamTimeoutError extends Error {}
|
||||
|
||||
@@ -128,16 +128,16 @@ type PartialNullable<T> = {
|
||||
type RouteConfig<Args extends object> = {
|
||||
patterns: Array<URLMatcher>;
|
||||
schema: z.ZodType<Args>;
|
||||
parse(result: URLPatternResult, url: URL): PartialNullable<Args>;
|
||||
toWebUrl?(args: Args): URL;
|
||||
toAppUrl?(args: Args): URL;
|
||||
parse: (result: URLPatternResult, url: URL) => PartialNullable<Args>;
|
||||
toWebUrl?: (args: Args) => URL;
|
||||
toAppUrl?: (args: Args) => URL;
|
||||
};
|
||||
|
||||
type SignalRoute<Key extends string, Args extends object> = {
|
||||
isMatch(input: URL | string): boolean;
|
||||
fromUrl(input: URL | string): RouteResult<Key, Args> | null;
|
||||
toWebUrl(args: Args): URL;
|
||||
toAppUrl(args: Args): URL;
|
||||
isMatch: (input: URL | string) => boolean;
|
||||
fromUrl: (input: URL | string) => RouteResult<Key, Args> | null;
|
||||
toWebUrl: (args: Args) => URL;
|
||||
toAppUrl: (args: Args) => URL;
|
||||
};
|
||||
|
||||
type RouteResult<Key extends string, Args extends object> = {
|
||||
@@ -714,7 +714,8 @@ export type ParsedSignalRoute = NonNullable<
|
||||
|
||||
/** @internal */
|
||||
type MatchedSignalRoute = {
|
||||
route: SignalRoute<string, object>;
|
||||
// oxlint-disable-next-line typescript/no-explicit-any
|
||||
route: SignalRoute<string, any>;
|
||||
parsed: ParsedSignalRoute;
|
||||
};
|
||||
|
||||
|
||||
Vendored
+19
-16
@@ -251,34 +251,37 @@ declare global {
|
||||
|
||||
// oxlint-disable-next-line typescript/consistent-type-definitions
|
||||
interface StringSplitSplitter<T> {
|
||||
[Symbol.split](string: string, limit?: number): T;
|
||||
[Symbol.split]: (string: string, limit?: number) => T;
|
||||
}
|
||||
|
||||
// oxlint-disable-next-line typescript/consistent-type-definitions
|
||||
interface String {
|
||||
split(splitter: string | RegExp): [string, ...Array<string>];
|
||||
split(splitter: string | RegExp, limit: 0): [];
|
||||
split(splitter: string | RegExp, limit: 1): [string];
|
||||
split(splitter: string | RegExp, limit: 2): [string, string?];
|
||||
split(splitter: string | RegExp, limit: 3): [string, string?, string?];
|
||||
split(
|
||||
split: (splitter: string | RegExp) => [string, ...Array<string>];
|
||||
split: (splitter: string | RegExp, limit: 0) => [];
|
||||
split: (splitter: string | RegExp, limit: 1) => [string];
|
||||
split: (splitter: string | RegExp, limit: 2) => [string, string?];
|
||||
split: (splitter: string | RegExp, limit: 3) => [string, string?, string?];
|
||||
split: (
|
||||
splitter: string | RegExp,
|
||||
limit: 4
|
||||
): [string, string?, string?, string?];
|
||||
split(
|
||||
) => [string, string?, string?, string?];
|
||||
split: (
|
||||
splitter: string | RegExp,
|
||||
limit: 5
|
||||
): [string, string?, string?, string?, string?];
|
||||
split(splitter: string | RegExp, limit: number): [string, ...Array<string>];
|
||||
split(
|
||||
) => [string, string?, string?, string?, string?];
|
||||
split: (
|
||||
splitter: string | RegExp,
|
||||
limit: number
|
||||
) => [string, ...Array<string>];
|
||||
split: (
|
||||
splitter: string | RegExp,
|
||||
limit?: number
|
||||
): [string, ...Array<string>];
|
||||
split<T>(splitter: StringSplitSplitter<T>, limit?: number): T;
|
||||
split(
|
||||
) => [string, ...Array<string>];
|
||||
split: <T>(splitter: StringSplitSplitter<T>, limit?: number) => T;
|
||||
split: (
|
||||
splitter: string | RegExp | StringSplitSplitter<Array<string>>,
|
||||
limit?: number
|
||||
): [string, ...Array<string>];
|
||||
) => [string, ...Array<string>];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ declare const AudioWorkletProcessor: {
|
||||
};
|
||||
|
||||
type AudioWorkletProcessorImpl = Readonly<{
|
||||
process(inputs: Array<Array<Float32Array<ArrayBuffer>>>): boolean;
|
||||
process: (inputs: Array<Array<Float32Array<ArrayBuffer>>>) => boolean;
|
||||
}> &
|
||||
AudioWorkletProcessor;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user