chat

package
v0.0.0-...-66acf6f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 18, 2024 License: BSD-3-Clause Imports: 79 Imported by: 0

Documentation

Index

Constants

View Source
const CurrentMessageBoxedVersion = chat1.MessageBoxedVersion_V2

Variables

View Source
var ErrChatServerTimeout = errors.New("timeout calling chat server")
View Source
var ErrDuplicateConnection = errors.New("error calling chat server")
View Source
var ErrKeyServerTimeout = errors.New("timeout calling into key server")

Functions

func CurrentUID

func CurrentUID(g *globals.Context) (keybase1.UID, error)

func FindConversations

func FindConversations(ctx context.Context, g *globals.Context, debugger utils.DebugLabeler,
	dataSource types.InboxSourceDataSourceTyp, ri func() chat1.RemoteInterface, uid gregor1.UID,
	tlfName string, topicType chat1.TopicType,
	membersTypeIn chat1.ConversationMembersType, vis keybase1.TLFVisibility, topicName string,
	oneChatPerTLF *bool) (res []chat1.ConversationLocal, err error)

func GetInboxQueryNameInfo

func GetInboxQueryNameInfo(ctx context.Context, g *globals.Context,
	lquery *chat1.GetInboxLocalQuery) (res types.NameInfo, err error)

func GetTopicNameState

func GetTopicNameState(ctx context.Context, g *globals.Context, debugger utils.DebugLabeler,
	convs []chat1.ConversationLocal,
	uid gregor1.UID, tlfID chat1.TLFID, topicType chat1.TopicType,
	membersType chat1.ConversationMembersType) (res chat1.TopicNameState, err error)

func IsRekeyError

func IsRekeyError(err error) (typ chat1.ConversationErrorType, ok bool)

func JoinConversation

func JoinConversation(ctx context.Context, g *globals.Context, debugger utils.DebugLabeler,
	ri func() chat1.RemoteInterface, uid gregor1.UID, convID chat1.ConversationID) (err error)

func JoinConversationByName

func JoinConversationByName(ctx context.Context, g *globals.Context, debugger utils.DebugLabeler,
	ri func() chat1.RemoteInterface, uid gregor1.UID, tlfName, topicName string, topicType chat1.TopicType,
	vis keybase1.TLFVisibility) (err error)

func LeaveConversation

func LeaveConversation(ctx context.Context, g *globals.Context, debugger utils.DebugLabeler,
	ri func() chat1.RemoteInterface, uid gregor1.UID, convID chat1.ConversationID) (err error)

func LocalOnlyReplyFill

func LocalOnlyReplyFill(enabled bool) func(*ReplyFiller)

func NewConversation

func NewConversation(ctx context.Context, g *globals.Context, uid gregor1.UID, tlfName string,
	topicName *string, topicType chat1.TopicType, membersType chat1.ConversationMembersType,
	vis keybase1.TLFVisibility, knownTopicID *chat1.TopicID, ri func() chat1.RemoteInterface,
	findExistingMode NewConvFindExistingMode) (chat1.ConversationLocal, bool, error)

func NewConversationSource

func NewConversationSource(g *globals.Context, typ string, boxer *Boxer, storage *storage.Storage,
	ri func() chat1.RemoteInterface) types.ConversationSource

func NewConversationWithMemberSourceConv

func NewConversationWithMemberSourceConv(ctx context.Context, g *globals.Context, uid gregor1.UID,
	tlfName string, topicName *string, topicType chat1.TopicType, membersType chat1.ConversationMembersType,
	vis keybase1.TLFVisibility, knownTopicID *chat1.TopicID, ri func() chat1.RemoteInterface,
	findExistingMode NewConvFindExistingMode, retentionPolicy *chat1.RetentionPolicy,
	memberSourceConv *chat1.ConversationID) (chat1.ConversationLocal, bool, error)

func NewCtxFactory

func NewCtxFactory(g *globals.Context) types.ContextFactory

func NewDevStorageAdminOnlyError

func NewDevStorageAdminOnlyError(msg string) error

func NewDevStoragePermissionDeniedError

func NewDevStoragePermissionDeniedError(role keybase1.TeamRole) error

func NewFTLError

func NewFTLError(s string) error

func NewInboxSource

func NewInboxSource(g *globals.Context, typ string, ri func() chat1.RemoteInterface) types.InboxSource

func NewKeyFinder

func NewKeyFinder(g *globals.Context) types.KeyFinder

NewKeyFinder creates a KeyFinder.

func NewKeyFinderMock

func NewKeyFinderMock(cryptKeys []keybase1.CryptKey) types.KeyFinder

func NewPermanentUnboxingError

func NewPermanentUnboxingError(inner error) types.UnboxingError

func NewTransientUnboxingError

func NewTransientUnboxingError(inner error) types.UnboxingError

func PresentConversationLocalWithFetchRetry

func PresentConversationLocalWithFetchRetry(ctx context.Context, g *globals.Context,
	uid gregor1.UID, conv chat1.ConversationLocal, partMode utils.PresentParticipantsMode) (pc *chat1.InboxUIItem)

func PreviewConversation

func PreviewConversation(ctx context.Context, g *globals.Context, debugger utils.DebugLabeler,
	ri func() chat1.RemoteInterface, uid gregor1.UID, convID chat1.ConversationID) (res chat1.ConversationLocal, err error)

func RecentConversationParticipants

func RecentConversationParticipants(ctx context.Context, g *globals.Context, myUID gregor1.UID) ([]gregor1.UID, error)

func RemoveFromConversation

func RemoveFromConversation(ctx context.Context, g *globals.Context, debugger utils.DebugLabeler,
	ri func() chat1.RemoteInterface, convID chat1.ConversationID, usernames []string) (err error)

func TLFIDToTeamID

func TLFIDToTeamID(tlfID chat1.TLFID) (keybase1.TeamID, error)

Types

type AttachmentHTTPSrv

type AttachmentHTTPSrv struct {
	sync.Mutex
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewAttachmentHTTPSrv

func NewAttachmentHTTPSrv(g *globals.Context, httpSrv *manager.Srv, fetcher types.AttachmentFetcher,
	ri func() chat1.RemoteInterface) *AttachmentHTTPSrv

func (*AttachmentHTTPSrv) GetAttachmentFetcher

func (r *AttachmentHTTPSrv) GetAttachmentFetcher() types.AttachmentFetcher

func (*AttachmentHTTPSrv) GetGiphyGalleryURL

func (r *AttachmentHTTPSrv) GetGiphyGalleryURL(ctx context.Context, convID chat1.ConversationID,
	tlfName string, results []chat1.GiphySearchResult) string

func (*AttachmentHTTPSrv) GetGiphyURL

func (r *AttachmentHTTPSrv) GetGiphyURL(ctx context.Context, giphyURL string) string

func (*AttachmentHTTPSrv) GetPendingPreviewURL

func (r *AttachmentHTTPSrv) GetPendingPreviewURL(ctx context.Context, outboxID chat1.OutboxID) string

func (*AttachmentHTTPSrv) GetURL

func (r *AttachmentHTTPSrv) GetURL(ctx context.Context, convID chat1.ConversationID, msgID chat1.MessageID,
	preview, noAnim, isEmoji bool) string

func (*AttachmentHTTPSrv) GetUnfurlAssetURL

func (r *AttachmentHTTPSrv) GetUnfurlAssetURL(ctx context.Context, convID chat1.ConversationID,
	asset chat1.Asset) string

func (*AttachmentHTTPSrv) OnDbNuke

func (r *AttachmentHTTPSrv) OnDbNuke(mctx libkb.MetaContext) error

func (*AttachmentHTTPSrv) Sign

func (r *AttachmentHTTPSrv) Sign(payload []byte) ([]byte, error)

Sign implements github.com/keybase/go/chat/s3.Signer interface.

type AttachmentUploadError

type AttachmentUploadError struct {
	Msg  string
	Perm bool
}

func NewAttachmentUploadError

func NewAttachmentUploadError(msg string, perm bool) AttachmentUploadError

func (AttachmentUploadError) Error

func (e AttachmentUploadError) Error() string

func (AttachmentUploadError) IsImmediateFail

func (e AttachmentUploadError) IsImmediateFail() (chat1.OutboxErrorType, bool)

type BackgroundConvLoader

type BackgroundConvLoader struct {
	globals.Contextified
	utils.DebugLabeler
	sync.Mutex
	// contains filtered or unexported fields
}

func NewBackgroundConvLoader

func NewBackgroundConvLoader(g *globals.Context) *BackgroundConvLoader

func (*BackgroundConvLoader) IsBackgroundActive

func (b *BackgroundConvLoader) IsBackgroundActive() bool

func (*BackgroundConvLoader) Queue

func (*BackgroundConvLoader) Resume

func (b *BackgroundConvLoader) Resume(ctx context.Context) bool

func (*BackgroundConvLoader) Start

func (b *BackgroundConvLoader) Start(ctx context.Context, uid gregor1.UID)

func (*BackgroundConvLoader) Stop

func (b *BackgroundConvLoader) Stop(ctx context.Context) chan struct{}

func (*BackgroundConvLoader) Suspend

func (b *BackgroundConvLoader) Suspend(ctx context.Context) (canceled bool)

type BackgroundEphemeralPurger

type BackgroundEphemeralPurger struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewBackgroundEphemeralPurger

func NewBackgroundEphemeralPurger(g *globals.Context) *BackgroundEphemeralPurger

func (*BackgroundEphemeralPurger) Len

func (b *BackgroundEphemeralPurger) Len() int

func (*BackgroundEphemeralPurger) Queue

func (*BackgroundEphemeralPurger) SetClock

func (b *BackgroundEphemeralPurger) SetClock(clock clockwork.Clock)

func (*BackgroundEphemeralPurger) Start

func (*BackgroundEphemeralPurger) Stop

func (b *BackgroundEphemeralPurger) Stop(ctx context.Context) (ch chan struct{})

type BlockingSender

type BlockingSender struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewBlockingSender

func NewBlockingSender(g *globals.Context, boxer *Boxer, getRi func() chat1.RemoteInterface) *BlockingSender

func (*BlockingSender) Prepare

Prepare a message to be sent. Returns (boxedMessage, pendingAssetDeletes, error)

func (*BlockingSender) Send

func (s *BlockingSender) Send(ctx context.Context, convID chat1.ConversationID,
	msg chat1.MessagePlaintext, clientPrev chat1.MessageID,
	outboxID *chat1.OutboxID, sendOpts *chat1.SenderSendOptions, prepareOpts *chat1.SenderPrepareOptions) (obid chat1.OutboxID, boxed *chat1.MessageBoxed, err error)

func (*BlockingSender) SetClock

func (s *BlockingSender) SetClock(clock clockwork.Clock)

func (*BlockingSender) Sign

func (s *BlockingSender) Sign(payload []byte) ([]byte, error)

Sign implements github.com/keybase/go/chat/s3.Signer interface.

type BodyHashInvalid

type BodyHashInvalid struct{}

func (BodyHashInvalid) Error

func (e BodyHashInvalid) Error() string

type Boxer

type Boxer struct {
	utils.DebugLabeler
	globals.Contextified
	// contains filtered or unexported fields
}

func NewBoxer

func NewBoxer(g *globals.Context) *Boxer

func (*Boxer) BoxMessage

func (b *Boxer) BoxMessage(ctx context.Context, msg chat1.MessagePlaintext,
	membersType chat1.ConversationMembersType,
	signingKeyPair libkb.NaclSigningKeyPair, info *types.BoxerEncryptionInfo) (res chat1.MessageBoxed, err error)

BoxMessage encrypts a keybase1.MessagePlaintext into a chat1.MessageBoxed. It finds the most recent key for the TLF.

func (*Boxer) CompareTlfNames

func (b *Boxer) CompareTlfNames(ctx context.Context, tlfName1, tlfName2 string,
	membersType chat1.ConversationMembersType, tlfPublic bool) (bool, error)

func (*Boxer) GetBoxedVersion

func (b *Boxer) GetBoxedVersion(msg chat1.MessagePlaintext) (chat1.MessageBoxedVersion, error)

func (*Boxer) GetEncryptionInfo

func (b *Boxer) GetEncryptionInfo(ctx context.Context, msg *chat1.MessagePlaintext,
	membersType chat1.ConversationMembersType, signingKeyPair libkb.NaclSigningKeyPair) (res types.BoxerEncryptionInfo, err error)

func (*Boxer) ResolveSkippedUnboxed

func (b *Boxer) ResolveSkippedUnboxed(ctx context.Context, msg chat1.MessageUnboxed) (res chat1.MessageUnboxed, modified bool, err types.UnboxingError)

func (*Boxer) ResolveSkippedUnboxeds

func (b *Boxer) ResolveSkippedUnboxeds(ctx context.Context, msgs []chat1.MessageUnboxed) (res []chat1.MessageUnboxed, modifiedMap map[chat1.MessageID]bool, err types.UnboxingError)

func (*Boxer) SetClock

func (b *Boxer) SetClock(clock clockwork.Clock)

func (*Boxer) UnboxMessage

UnboxMessage unboxes a chat1.MessageBoxed into a chat1.MessageUnboxed. It finds the appropriate keybase1.CryptKey, decrypts the message, and verifies several things:

  • The message's signature is valid.
  • (TODO) The signing KID was valid when the signature was made.
  • (TODO) The signing KID belongs to the sending device.
  • (TODO) The sending device belongs to the sender. [Note that we do currently check the KID -> UID relationship, independent of the device ID.]
  • (TODO) The sender has write permission in the TLF.
  • (TODO) The TLF name, public flag, and finalized info resolve to the TLF ID.
  • The conversation ID derives from the ConversationIDTriple.
  • The body hash is not a replay from another message we know about.
  • The prev pointers are consistent with other messages we know about.
  • (TODO) The prev pointers are not absurdly ancient.
  • The ClientHeader provided with the BoxedMessage matches the one we decrypt.

The first return value is unusable if the err != nil. Returns (_, err) for non-permanent errors, and (MessageUnboxedError, nil) for permanent errors. Permanent errors can be cached and must be treated as a value to deal with, whereas temporary errors are transient failures.

func (*Boxer) UnboxMessages

func (b *Boxer) UnboxMessages(ctx context.Context, boxed []chat1.MessageBoxed, conv types.UnboxConversationInfo) (unboxed []chat1.MessageUnboxed, err error)

func (*Boxer) UnboxThread

func (b *Boxer) UnboxThread(ctx context.Context, boxed chat1.ThreadViewBoxed, conv types.UnboxConversationInfo) (thread chat1.ThreadView, err error)

unboxThread transforms a chat1.ThreadViewBoxed to a keybase1.ThreadView.

func (*Boxer) ValidSenderKey

func (b *Boxer) ValidSenderKey(ctx context.Context, sender gregor1.UID, key []byte, ctime gregor1.Time) (revoked *gregor1.Time, unboxErr types.UnboxingError)

ValidSenderKey checks that the key was active for sender at ctime. This trusts the server for ctime, so a colluding server could use a revoked key and this check erroneously pass. But (revoked != nil) if the key was ever revoked, so that is irrespective of ctime. Returns (validAtCtime, revoked, err)

type BoxingCryptKeysError

type BoxingCryptKeysError struct {
	Err error
}

func NewBoxingCryptKeysError

func NewBoxingCryptKeysError(err error) BoxingCryptKeysError

func (BoxingCryptKeysError) Cause

func (e BoxingCryptKeysError) Cause() error

Cause implements the pkg/errors Cause() method, also cloned in libkb via HumanError, so that we know which error to show to the human being using keybase (rather than for our own internal uses).

func (BoxingCryptKeysError) Error

func (e BoxingCryptKeysError) Error() string

func (BoxingCryptKeysError) Inner

func (e BoxingCryptKeysError) Inner() error

func (BoxingCryptKeysError) IsImmediateFail

func (e BoxingCryptKeysError) IsImmediateFail() (chat1.OutboxErrorType, bool)

type BoxingError

type BoxingError struct {
	Msg  string
	Perm bool
}

func NewBoxingError

func NewBoxingError(msg string, perm bool) BoxingError

func (BoxingError) Error

func (e BoxingError) Error() string

func (BoxingError) IsImmediateFail

func (e BoxingError) IsImmediateFail() (chat1.OutboxErrorType, bool)

type CachingAttachmentFetcher

type CachingAttachmentFetcher struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewCachingAttachmentFetcher

func NewCachingAttachmentFetcher(g *globals.Context, store attachments.Store, size int) *CachingAttachmentFetcher

func (*CachingAttachmentFetcher) DeleteAssets

func (c *CachingAttachmentFetcher) DeleteAssets(ctx context.Context,
	convID chat1.ConversationID, assets []chat1.Asset, ri func() chat1.RemoteInterface, signer s3.Signer) (err error)

func (*CachingAttachmentFetcher) FetchAttachment

func (c *CachingAttachmentFetcher) FetchAttachment(ctx context.Context, w io.Writer,
	convID chat1.ConversationID, asset chat1.Asset, ri func() chat1.RemoteInterface, signer s3.Signer,
	progress types.ProgressReporter) (err error)

func (*CachingAttachmentFetcher) IsAssetLocal

func (c *CachingAttachmentFetcher) IsAssetLocal(ctx context.Context, asset chat1.Asset) (found bool, err error)

func (*CachingAttachmentFetcher) OnDbNuke

func (c *CachingAttachmentFetcher) OnDbNuke(mctx libkb.MetaContext) error

func (*CachingAttachmentFetcher) OnStart

func (c *CachingAttachmentFetcher) OnStart(mctx libkb.MetaContext)

func (*CachingAttachmentFetcher) PutUploadedAsset

func (c *CachingAttachmentFetcher) PutUploadedAsset(ctx context.Context, filename string, asset chat1.Asset) (err error)

func (*CachingAttachmentFetcher) StreamAttachment

func (c *CachingAttachmentFetcher) StreamAttachment(ctx context.Context, convID chat1.ConversationID,
	asset chat1.Asset, ri func() chat1.RemoteInterface, signer s3.Signer) (res io.ReadSeeker, err error)

type CachingIdentifyNotifier

type CachingIdentifyNotifier struct {
	globals.Contextified
	utils.DebugLabeler

	sync.RWMutex
	// contains filtered or unexported fields
}

func NewCachingIdentifyNotifier

func NewCachingIdentifyNotifier(g *globals.Context) *CachingIdentifyNotifier

func (*CachingIdentifyNotifier) Reset

func (i *CachingIdentifyNotifier) Reset()

func (*CachingIdentifyNotifier) ResetOnGUIConnect

func (i *CachingIdentifyNotifier) ResetOnGUIConnect()

func (*CachingIdentifyNotifier) Send

type CachingParticipantSource

type CachingParticipantSource struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewCachingParticipantSource

func NewCachingParticipantSource(g *globals.Context, ri func() chat1.RemoteInterface) *CachingParticipantSource

func (*CachingParticipantSource) Get

func (*CachingParticipantSource) GetNonblock

func (*CachingParticipantSource) GetParticipantsFromUids

func (s *CachingParticipantSource) GetParticipantsFromUids(
	ctx context.Context,
	uids []gregor1.UID,
) (participants []chat1.ConversationLocalParticipant, err error)

func (*CachingParticipantSource) GetWithNotifyNonblock

func (s *CachingParticipantSource) GetWithNotifyNonblock(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, dataSource types.InboxSourceDataSourceTyp)

type CachingUPAKFinder

type CachingUPAKFinder struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewCachingUPAKFinder

func NewCachingUPAKFinder(g *globals.Context) *CachingUPAKFinder

func (*CachingUPAKFinder) CheckKIDForUID

func (u *CachingUPAKFinder) CheckKIDForUID(ctx context.Context, uid keybase1.UID, kid keybase1.KID) (found bool, revokedAt *keybase1.KeybaseTime, deleted bool, err error)

func (*CachingUPAKFinder) LookupUsernameAndDevice

func (u *CachingUPAKFinder) LookupUsernameAndDevice(ctx context.Context, uid keybase1.UID, deviceID keybase1.DeviceID) (username libkb.NormalizedUsername, deviceName string, deviceType keybase1.DeviceTypeV2, err error)

type ChatThreadConsistencyError

type ChatThreadConsistencyError interface {
	error
	Code() ConsistencyErrorCode
}

func CheckPrevPointersAndGetUnpreved

func CheckPrevPointersAndGetUnpreved(thread *chat1.ThreadView) (newPrevsForRegular, newPrevsForExploding []chat1.MessagePreviousPointer, err ChatThreadConsistencyError)

Ingest a ThreadView, check several invariants, and produce a list of prev pointers to not-yet-pointed-to messages. Check several invariants at the same time: 1. No two messages have the same ID. 2. All prev pointers point to messages with lesser IDs. 3. All prev pointers to a message agree on that message's header hash. 4. For all messages we have locally, the hashes pointing to them are actually correct. TODO: All of this should happen in the cache instead of here all at once.

func NewChatThreadConsistencyError

func NewChatThreadConsistencyError(code ConsistencyErrorCode, msg string, formatArgs ...interface{}) ChatThreadConsistencyError

type ConsistencyErrorCode

type ConsistencyErrorCode int
const (
	DuplicateID ConsistencyErrorCode = iota
	OutOfOrderID
	InconsistentHash
	IncorrectHash
)

type ConvDevConversationBackedStorage

type ConvDevConversationBackedStorage struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewConvDevConversationBackedStorage

func NewConvDevConversationBackedStorage(g *globals.Context, topicType chat1.TopicType, adminOnly bool,
	ri func() chat1.RemoteInterface) *ConvDevConversationBackedStorage

func (*ConvDevConversationBackedStorage) Get

func (s *ConvDevConversationBackedStorage) Get(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, name string, dest interface{}, createConvIfMissing bool) (found bool, conv *chat1.ConversationLocal, err error)

func (*ConvDevConversationBackedStorage) GetFromKnownConv

func (s *ConvDevConversationBackedStorage) GetFromKnownConv(ctx context.Context, uid gregor1.UID,
	conv chat1.ConversationLocal, dest interface{}) (found bool, err error)

func (*ConvDevConversationBackedStorage) Put

func (s *ConvDevConversationBackedStorage) Put(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, name string, src interface{}) (err error)

func (*ConvDevConversationBackedStorage) PutToKnownConv

func (s *ConvDevConversationBackedStorage) PutToKnownConv(ctx context.Context, uid gregor1.UID,
	conv chat1.ConversationLocal, src interface{}) (err error)

type ConvTranscript

type ConvTranscript struct {
	Messages []ConvTranscriptMsg `json:"messages"`
}

func PullTranscript

func PullTranscript(mctx libkb.MetaContext, convSource types.ConversationSource, convID chat1.ConvIDStr,
	usernames []kbun.NormalizedUsername, config PullTranscriptConfig) (res ConvTranscript, err error)

type ConvTranscriptMsg

type ConvTranscriptMsg struct {
	SenderUsername string            `json:"senderUsername"`
	Body           chat1.MessageBody `json:"body"`
	Ctime          gregor1.Time      `json:"ctime_ms"`
}

type ConversationRetry

type ConversationRetry struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewConversationRetry

func NewConversationRetry(g *globals.Context, convID chat1.ConversationID, tlfID *chat1.TLFID, kind FetchType) *ConversationRetry

func (*ConversationRetry) Fix

func (c *ConversationRetry) Fix(ctx context.Context, uid gregor1.UID) error

func (*ConversationRetry) RekeyFixable

func (c *ConversationRetry) RekeyFixable(ctx context.Context, tlfID chat1.TLFID) bool

func (*ConversationRetry) SendStale

func (c *ConversationRetry) SendStale(ctx context.Context, uid gregor1.UID)

func (*ConversationRetry) String

func (c *ConversationRetry) String() string

type CtxFactory

type CtxFactory struct {
	globals.Contextified
}

func (*CtxFactory) NewKeyFinder

func (c *CtxFactory) NewKeyFinder() types.KeyFinder

func (*CtxFactory) NewUPAKFinder

func (c *CtxFactory) NewUPAKFinder() types.UPAKFinder

type DecryptionKeyNotFoundError

type DecryptionKeyNotFoundError struct {
	// contains filtered or unexported fields
}

func NewDecryptionKeyNotFoundError

func NewDecryptionKeyNotFoundError(generation int, public, kbfsEncrypted bool) DecryptionKeyNotFoundError

func (DecryptionKeyNotFoundError) Error

type Deliverer

type Deliverer struct {
	globals.Contextified
	sync.Mutex
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewDeliverer

func NewDeliverer(g *globals.Context, sender types.Sender, serverConn types.ServerConnection) *Deliverer

func (*Deliverer) ActiveDeliveries

func (s *Deliverer) ActiveDeliveries(ctx context.Context) (res []chat1.OutboxRecord, err error)

func (*Deliverer) Connected

func (s *Deliverer) Connected(ctx context.Context)

func (*Deliverer) Disconnected

func (s *Deliverer) Disconnected(ctx context.Context)

func (*Deliverer) ForceDeliverLoop

func (s *Deliverer) ForceDeliverLoop(ctx context.Context)

func (*Deliverer) IsDelivering

func (s *Deliverer) IsDelivering() bool

func (*Deliverer) IsOffline

func (s *Deliverer) IsOffline(ctx context.Context) bool

func (*Deliverer) NextFailure

func (s *Deliverer) NextFailure() (chan []chat1.OutboxRecord, func())

func (*Deliverer) Queue

func (s *Deliverer) Queue(ctx context.Context, convID chat1.ConversationID, msg chat1.MessagePlaintext,
	outboxID *chat1.OutboxID, sendOpts *chat1.SenderSendOptions, prepareOpts *chat1.SenderPrepareOptions,
	identifyBehavior keybase1.TLFIdentifyBehavior) (obr chat1.OutboxRecord, err error)

func (*Deliverer) SetClock

func (s *Deliverer) SetClock(clock clockwork.Clock)

func (*Deliverer) SetSender

func (s *Deliverer) SetSender(sender types.Sender)

func (*Deliverer) Start

func (s *Deliverer) Start(ctx context.Context, uid gregor1.UID)

func (*Deliverer) Stop

func (s *Deliverer) Stop(ctx context.Context) chan struct{}

type DelivererInfoError

type DelivererInfoError interface {
	IsImmediateFail() (chat1.OutboxErrorType, bool)
}

type DevConvEmojiSource

type DevConvEmojiSource struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewDevConvEmojiSource

func NewDevConvEmojiSource(g *globals.Context, ri func() chat1.RemoteInterface) *DevConvEmojiSource

func (*DevConvEmojiSource) Add

func (s *DevConvEmojiSource) Add(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID,
	alias, filename string, allowOverwrite bool) (res chat1.EmojiRemoteSource, err error)

func (*DevConvEmojiSource) AddAlias

func (s *DevConvEmojiSource) AddAlias(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID,
	newAlias, existingAlias string) (res chat1.EmojiRemoteSource, err error)

func (*DevConvEmojiSource) Decorate

func (s *DevConvEmojiSource) Decorate(ctx context.Context, body string, uid gregor1.UID,
	messageType chat1.MessageType, emojis []chat1.HarvestedEmoji) string

func (*DevConvEmojiSource) Get

func (*DevConvEmojiSource) Harvest

func (s *DevConvEmojiSource) Harvest(ctx context.Context, body string, uid gregor1.UID,
	convID chat1.ConversationID, mode types.EmojiHarvestMode) (res []chat1.HarvestedEmoji, err error)

func (*DevConvEmojiSource) IsStockEmoji

func (s *DevConvEmojiSource) IsStockEmoji(alias string) bool

func (*DevConvEmojiSource) IsValidSize

func (s *DevConvEmojiSource) IsValidSize(size int64) bool

func (*DevConvEmojiSource) RemoteToLocalSource

func (s *DevConvEmojiSource) RemoteToLocalSource(ctx context.Context, uid gregor1.UID,
	remote chat1.EmojiRemoteSource) (source chat1.EmojiLoadSource, noAnimSource chat1.EmojiLoadSource, err error)

func (*DevConvEmojiSource) Remove

func (s *DevConvEmojiSource) Remove(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID,
	alias string) (err error)

func (*DevConvEmojiSource) ToggleAnimations

func (s *DevConvEmojiSource) ToggleAnimations(ctx context.Context, uid gregor1.UID, enabled bool) (err error)

type DevConversationBackedStorage

type DevConversationBackedStorage struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewDevConversationBackedStorage

func NewDevConversationBackedStorage(g *globals.Context, ri func() chat1.RemoteInterface) *DevConversationBackedStorage

func (*DevConversationBackedStorage) Get

func (s *DevConversationBackedStorage) Get(ctx context.Context, uid gregor1.UID, name string,
	dest interface{}) (found bool, err error)

func (*DevConversationBackedStorage) Put

func (s *DevConversationBackedStorage) Put(ctx context.Context, uid gregor1.UID, name string, src interface{}) (err error)

type DevStorageAdminOnlyError

type DevStorageAdminOnlyError struct {
	// contains filtered or unexported fields
}

func (*DevStorageAdminOnlyError) Error

func (e *DevStorageAdminOnlyError) Error() string

type DevStoragePermissionDeniedError

type DevStoragePermissionDeniedError struct {
	// contains filtered or unexported fields
}

func (*DevStoragePermissionDeniedError) Error

type DummyIdentifyNotifier

type DummyIdentifyNotifier struct{}

func (DummyIdentifyNotifier) Reset

func (d DummyIdentifyNotifier) Reset()

func (DummyIdentifyNotifier) ResetOnGUIConnect

func (d DummyIdentifyNotifier) ResetOnGUIConnect()

func (DummyIdentifyNotifier) Send

type DuplicateTopicNameError

type DuplicateTopicNameError struct {
	Conv chat1.ConversationLocal
}

func (DuplicateTopicNameError) Error

func (e DuplicateTopicNameError) Error() string

type EmojiValidationError

type EmojiValidationError struct {
	Underlying error
	CLIDisplay string
	UIDisplay  string
}

func NewEmojiValidationError

func NewEmojiValidationError(err error, cliDisplay, uiDisplay string) *EmojiValidationError

func NewEmojiValidationErrorJustError

func NewEmojiValidationErrorJustError(err error) *EmojiValidationError

func NewEmojiValidationErrorSimple

func NewEmojiValidationErrorSimple(err error, display string) *EmojiValidationError

func (*EmojiValidationError) Error

func (e *EmojiValidationError) Error() string

func (*EmojiValidationError) Export

func (e *EmojiValidationError) Export() *chat1.EmojiError

type EphemeralAlreadyExpiredError

type EphemeralAlreadyExpiredError struct{}

func NewEphemeralAlreadyExpiredError

func NewEphemeralAlreadyExpiredError() EphemeralAlreadyExpiredError

func (EphemeralAlreadyExpiredError) Error

func (EphemeralAlreadyExpiredError) InternalError

func (e EphemeralAlreadyExpiredError) InternalError() string

type EphemeralTracker

type EphemeralTracker struct {
	globals.Contextified
	utils.DebugLabeler
	sync.Mutex
	// contains filtered or unexported fields
}

func NewEphemeralTracker

func NewEphemeralTracker(g *globals.Context) *EphemeralTracker

func (*EphemeralTracker) Clear

func (t *EphemeralTracker) Clear(ctx context.Context, convID chat1.ConversationID, uid gregor1.UID) (err error)

func (*EphemeralTracker) Flush

func (t *EphemeralTracker) Flush(ctx context.Context, uid gregor1.UID) error

func (*EphemeralTracker) GetAllPurgeInfo

func (t *EphemeralTracker) GetAllPurgeInfo(ctx context.Context, uid gregor1.UID) ([]chat1.EphemeralPurgeInfo, error)

func (*EphemeralTracker) GetPurgeInfo

func (*EphemeralTracker) InactivatePurgeInfo

func (t *EphemeralTracker) InactivatePurgeInfo(ctx context.Context,
	convID chat1.ConversationID, uid gregor1.UID) (err error)

func (*EphemeralTracker) MaybeUpdatePurgeInfo

func (t *EphemeralTracker) MaybeUpdatePurgeInfo(ctx context.Context,
	convID chat1.ConversationID, uid gregor1.UID, purgeInfo *chat1.EphemeralPurgeInfo) (err error)

When we are filtering new messages coming in/out of storage, we maybe update if they tell us about something older we should be purging.

func (*EphemeralTracker) OnDbNuke

func (t *EphemeralTracker) OnDbNuke(mctx libkb.MetaContext) error

func (*EphemeralTracker) OnLogout

func (t *EphemeralTracker) OnLogout(mctx libkb.MetaContext) error

func (*EphemeralTracker) SetPurgeInfo

func (t *EphemeralTracker) SetPurgeInfo(ctx context.Context,
	convID chat1.ConversationID, uid gregor1.UID, purgeInfo *chat1.EphemeralPurgeInfo) (err error)

func (*EphemeralTracker) Start

func (t *EphemeralTracker) Start(ctx context.Context, uid gregor1.UID)

func (*EphemeralTracker) Stop

func (t *EphemeralTracker) Stop(ctx context.Context) chan struct{}

type EphemeralUnboxingError

type EphemeralUnboxingError struct {
	// contains filtered or unexported fields
}

func (EphemeralUnboxingError) Error

func (e EphemeralUnboxingError) Error() string

func (EphemeralUnboxingError) InternalError

func (e EphemeralUnboxingError) InternalError() string

type FTLError

type FTLError struct {
	// contains filtered or unexported fields
}

func (FTLError) Error

func (f FTLError) Error() string

type FetchRetrier

type FetchRetrier struct {
	globals.Contextified
	utils.DebugLabeler
	sync.Mutex
	// contains filtered or unexported fields
}

FetchRetrier is responsible for tracking any nonblock fetch failures, and retrying them automatically.

func NewFetchRetrier

func NewFetchRetrier(g *globals.Context) *FetchRetrier

func (*FetchRetrier) Connected

func (f *FetchRetrier) Connected(ctx context.Context)

Connected is called when a connection to the chat server is established, and forces a pass over the retry queue

func (*FetchRetrier) Disconnected

func (f *FetchRetrier) Disconnected(ctx context.Context)

Disconnected is called when we lose connection to the chat server, and pauses attempts on the retry queue.

func (*FetchRetrier) Failure

func (f *FetchRetrier) Failure(ctx context.Context, uid gregor1.UID, desc types.RetryDescription)

Failure indicates a failure of type kind has happened when loading a conversation.

func (*FetchRetrier) Force

func (f *FetchRetrier) Force(ctx context.Context)

Force forces a run of the retry loop.

func (*FetchRetrier) IsOffline

func (f *FetchRetrier) IsOffline(ctx context.Context) bool

IsOffline returns if the module thinks we are connected to the chat server.

func (*FetchRetrier) Rekey

func (f *FetchRetrier) Rekey(ctx context.Context, name string, membersType chat1.ConversationMembersType,
	public bool)

func (*FetchRetrier) SetClock

func (f *FetchRetrier) SetClock(clock clockwork.Clock)

SetClock sets a custom clock for testing.

func (*FetchRetrier) Start

func (f *FetchRetrier) Start(ctx context.Context, uid gregor1.UID)

func (*FetchRetrier) Stop

func (f *FetchRetrier) Stop(ctx context.Context) chan struct{}

func (*FetchRetrier) Success

func (f *FetchRetrier) Success(ctx context.Context, uid gregor1.UID, desc types.RetryDescription)

Success indicates a success of type kind loading a conversation. This effectively removes that conversation from the retry queue.

type FetchType

type FetchType int
const (
	InboxLoad FetchType = iota
	ThreadLoad
	FullInboxLoad
)

type FlipManager

type FlipManager struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewFlipManager

func NewFlipManager(g *globals.Context, ri func() chat1.RemoteInterface) *FlipManager

func (*FlipManager) CLogf

func (m *FlipManager) CLogf(ctx context.Context, fmt string, args ...interface{})

CLogf implements the flip.DealersHelper interface

func (*FlipManager) Clock

func (m *FlipManager) Clock() clockwork.Clock

Clock implements the flip.DealersHelper interface

func (*FlipManager) DescribeFlipText

func (m *FlipManager) DescribeFlipText(ctx context.Context, text string) string

func (*FlipManager) HasActiveGames

func (m *FlipManager) HasActiveGames(ctx context.Context) bool

func (*FlipManager) IsFlipConversationCreated

func (m *FlipManager) IsFlipConversationCreated(ctx context.Context, outboxID chat1.OutboxID) (convID chat1.ConversationID, status types.FlipSendStatus)

func (*FlipManager) LoadFlip

func (m *FlipManager) LoadFlip(ctx context.Context, uid gregor1.UID, hostConvID chat1.ConversationID,
	hostMsgID chat1.MessageID, flipConvID chat1.ConversationID, gameID chat1.FlipGameID) (res chan chat1.UICoinFlipStatus, err chan error)

LoadFlip implements the types.CoinFlipManager interface

func (*FlipManager) MaybeInjectFlipMessage

func (m *FlipManager) MaybeInjectFlipMessage(ctx context.Context, boxedMsg chat1.MessageBoxed,
	inboxVers chat1.InboxVers, uid gregor1.UID, convID chat1.ConversationID, topicType chat1.TopicType) bool

MaybeInjectFlipMessage implements the types.CoinFlipManager interface

func (*FlipManager) Me

func (m *FlipManager) Me() flip.UserDevice

Me implements the flip.DealersHelper interface

func (*FlipManager) SendChat

func (m *FlipManager) SendChat(ctx context.Context, initatorUID gregor1.UID, convID chat1.ConversationID, gameID chat1.FlipGameID,
	msg flip.GameMessageEncoded) (err error)

SendChat implements the flip.DealersHelper interface

func (*FlipManager) ServerTime

func (m *FlipManager) ServerTime(ctx context.Context) (res time.Time, err error)

ServerTime implements the flip.DealersHelper interface

func (*FlipManager) ShouldCommit

func (m *FlipManager) ShouldCommit(ctx context.Context) bool

func (*FlipManager) Start

func (m *FlipManager) Start(ctx context.Context, uid gregor1.UID)

func (*FlipManager) StartFlip

func (m *FlipManager) StartFlip(ctx context.Context, uid gregor1.UID, hostConvID chat1.ConversationID,
	tlfName, text string, inOutboxID *chat1.OutboxID) (err error)

StartFlip implements the types.CoinFlipManager interface

func (*FlipManager) Stop

func (m *FlipManager) Stop(ctx context.Context) (ch chan struct{})

type FlipVisualizer

type FlipVisualizer struct {
	// contains filtered or unexported fields
}

func NewFlipVisualizer

func NewFlipVisualizer(width, height int) *FlipVisualizer

func (*FlipVisualizer) Visualize

func (v *FlipVisualizer) Visualize(status *chat1.UICoinFlipStatus)

type FullInboxRetry

type FullInboxRetry struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewFullInboxRetry

func NewFullInboxRetry(g *globals.Context, query *chat1.GetInboxLocalQuery) FullInboxRetry

func (FullInboxRetry) Fix

func (f FullInboxRetry) Fix(ctx context.Context, uid gregor1.UID) error

func (FullInboxRetry) RekeyFixable

func (f FullInboxRetry) RekeyFixable(ctx context.Context, tlfID chat1.TLFID) bool

func (FullInboxRetry) SendStale

func (f FullInboxRetry) SendStale(ctx context.Context, uid gregor1.UID)

func (FullInboxRetry) String

func (f FullInboxRetry) String() string

type HeaderMismatchError

type HeaderMismatchError struct {
	Field string
}

func NewHeaderMismatchError

func NewHeaderMismatchError(field string) HeaderMismatchError

func (HeaderMismatchError) Error

func (e HeaderMismatchError) Error() string

type Helper

type Helper struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewHelper

func NewHelper(g *globals.Context, ri func() chat1.RemoteInterface) *Helper

func (*Helper) BulkAddToConv

func (h *Helper) BulkAddToConv(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID, usernames []string) error

func (*Helper) DeleteMsg

func (h *Helper) DeleteMsg(ctx context.Context, convID chat1.ConversationID, tlfName string,
	msgID chat1.MessageID) error

func (*Helper) DeleteMsgNonblock

func (h *Helper) DeleteMsgNonblock(ctx context.Context, convID chat1.ConversationID, tlfName string,
	msgID chat1.MessageID) error

func (*Helper) FindConversations

func (h *Helper) FindConversations(ctx context.Context,
	name string, topicName *string,
	topicType chat1.TopicType, membersType chat1.ConversationMembersType, vis keybase1.TLFVisibility) ([]chat1.ConversationLocal, error)

func (*Helper) FindConversationsByID

func (h *Helper) FindConversationsByID(ctx context.Context, convIDs []chat1.ConversationID) ([]chat1.ConversationLocal, error)

func (*Helper) GetChannelTopicName

func (h *Helper) GetChannelTopicName(ctx context.Context, teamID keybase1.TeamID,
	topicType chat1.TopicType, convID chat1.ConversationID) (topicName string, err error)

GetChannelTopicName gets the name of a team channel even if it's not in the inbox.

func (*Helper) GetMessage

func (h *Helper) GetMessage(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID,
	msgID chat1.MessageID, resolveSupersedes bool, reason *chat1.GetThreadReason) (chat1.MessageUnboxed, error)

func (*Helper) GetMessages

func (h *Helper) GetMessages(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID,
	msgIDs []chat1.MessageID, resolveSupersedes bool, reason *chat1.GetThreadReason) ([]chat1.MessageUnboxed, error)

func (*Helper) InTeam

func (h *Helper) InTeam(ctx context.Context, uid gregor1.UID, teamID keybase1.TeamID) (bool, error)

InTeam gives a best effort to answer team membership based on the current state of the inbox cache

func (*Helper) JoinConversationByID

func (h *Helper) JoinConversationByID(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID) (err error)

func (*Helper) JoinConversationByName

func (h *Helper) JoinConversationByName(ctx context.Context, uid gregor1.UID, tlfName, topicName string,
	topicType chat1.TopicType, vis keybase1.TLFVisibility) (err error)

func (*Helper) JourneycardDebugState

func (h *Helper) JourneycardDebugState(ctx context.Context, uid gregor1.UID, teamID keybase1.TeamID) (string, error)

func (*Helper) JourneycardResetAllConvs

func (h *Helper) JourneycardResetAllConvs(ctx context.Context, uid gregor1.UID) error

func (*Helper) JourneycardTimeTravel

func (h *Helper) JourneycardTimeTravel(ctx context.Context, uid gregor1.UID, duration time.Duration) (int, int, error)

func (*Helper) LeaveConversation

func (h *Helper) LeaveConversation(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID) (err error)

func (*Helper) NewConversation

func (h *Helper) NewConversation(ctx context.Context, uid gregor1.UID, tlfName string,
	topicName *string, topicType chat1.TopicType, membersType chat1.ConversationMembersType,
	vis keybase1.TLFVisibility) (chat1.ConversationLocal, bool, error)

func (*Helper) NewConversationSkipFindExisting

func (h *Helper) NewConversationSkipFindExisting(ctx context.Context, uid gregor1.UID, tlfName string,
	topicName *string, topicType chat1.TopicType, membersType chat1.ConversationMembersType,
	vis keybase1.TLFVisibility) (chat1.ConversationLocal, bool, error)

func (*Helper) NewConversationWithMemberSourceConv

func (h *Helper) NewConversationWithMemberSourceConv(ctx context.Context, uid gregor1.UID, tlfName string,
	topicName *string, topicType chat1.TopicType, membersType chat1.ConversationMembersType,
	vis keybase1.TLFVisibility, retentionPolicy *chat1.RetentionPolicy,
	memberSourceConv *chat1.ConversationID) (chat1.ConversationLocal, bool, error)

func (*Helper) SendMsgByID

func (h *Helper) SendMsgByID(ctx context.Context, convID chat1.ConversationID, tlfName string,
	body chat1.MessageBody, msgType chat1.MessageType, vis keybase1.TLFVisibility) error

func (*Helper) SendMsgByIDNonblock

func (h *Helper) SendMsgByIDNonblock(ctx context.Context, convID chat1.ConversationID,
	tlfName string, body chat1.MessageBody, msgType chat1.MessageType, inOutboxID *chat1.OutboxID,
	replyTo *chat1.MessageID) (chat1.OutboxID, error)

func (*Helper) SendMsgByName

func (h *Helper) SendMsgByName(ctx context.Context, name string, topicName *string,
	membersType chat1.ConversationMembersType, ident keybase1.TLFIdentifyBehavior, body chat1.MessageBody,
	msgType chat1.MessageType) error

func (*Helper) SendMsgByNameNonblock

func (h *Helper) SendMsgByNameNonblock(ctx context.Context, name string, topicName *string,
	membersType chat1.ConversationMembersType, ident keybase1.TLFIdentifyBehavior, body chat1.MessageBody,
	msgType chat1.MessageType, inOutboxID *chat1.OutboxID) (chat1.OutboxID, error)

func (*Helper) SendTextByID

func (h *Helper) SendTextByID(ctx context.Context, convID chat1.ConversationID,
	tlfName string, text string, vis keybase1.TLFVisibility) error

func (*Helper) SendTextByIDNonblock

func (h *Helper) SendTextByIDNonblock(ctx context.Context, convID chat1.ConversationID,
	tlfName string, text string, outboxID *chat1.OutboxID, replyTo *chat1.MessageID) (chat1.OutboxID, error)

func (*Helper) SendTextByName

func (h *Helper) SendTextByName(ctx context.Context, name string, topicName *string,
	membersType chat1.ConversationMembersType, ident keybase1.TLFIdentifyBehavior, text string) error

func (*Helper) SendTextByNameNonblock

func (h *Helper) SendTextByNameNonblock(ctx context.Context, name string, topicName *string,
	membersType chat1.ConversationMembersType, ident keybase1.TLFIdentifyBehavior, text string,
	inOutboxID *chat1.OutboxID) (chat1.OutboxID, error)

func (*Helper) UpgradeKBFSToImpteam

func (h *Helper) UpgradeKBFSToImpteam(ctx context.Context, tlfName string, tlfID chat1.TLFID, public bool) (err error)

func (*Helper) UserReacjis

func (h *Helper) UserReacjis(ctx context.Context, uid gregor1.UID) keybase1.UserReacjis

type HybridConversationSource

type HybridConversationSource struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewHybridConversationSource

func NewHybridConversationSource(g *globals.Context, b *Boxer, storage *storage.Storage,
	ri func() chat1.RemoteInterface) *HybridConversationSource

func (*HybridConversationSource) AcquireConversationLock

func (s *HybridConversationSource) AcquireConversationLock(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID) error

func (*HybridConversationSource) Clear

func (s *HybridConversationSource) Clear(ctx context.Context, convID chat1.ConversationID, uid gregor1.UID,
	opts *types.ClearOpts) (err error)

func (HybridConversationSource) DeleteAssets

func (s HybridConversationSource) DeleteAssets(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, assets []chat1.Asset)

DeleteAssets implements github.com/keybase/go/chat/storage/storage.AssetDeleter interface.

func (*HybridConversationSource) EphemeralPurge

func (s *HybridConversationSource) EphemeralPurge(ctx context.Context, convID chat1.ConversationID, uid gregor1.UID,
	purgeInfo *chat1.EphemeralPurgeInfo) (newPurgeInfo *chat1.EphemeralPurgeInfo, explodedMsgs []chat1.MessageUnboxed, err error)

func (*HybridConversationSource) Expunge

Expunge from storage and maybe notify the gui of staleness

func (HybridConversationSource) GetMessage

func (s HybridConversationSource) GetMessage(ctx context.Context, convID chat1.ConversationID,
	uid gregor1.UID, msgID chat1.MessageID, reason *chat1.GetThreadReason, ri func() chat1.RemoteInterface,
	resolveSupersedes bool) (chat1.MessageUnboxed, error)

func (*HybridConversationSource) GetMessages

func (s *HybridConversationSource) GetMessages(ctx context.Context, convID chat1.ConversationID,
	uid gregor1.UID, msgIDs []chat1.MessageID, threadReason *chat1.GetThreadReason,
	customRi func() chat1.RemoteInterface, resolveSupersedes bool) (res []chat1.MessageUnboxed, err error)

func (*HybridConversationSource) GetMessagesWithRemotes

func (s *HybridConversationSource) GetMessagesWithRemotes(ctx context.Context,
	conv chat1.Conversation, uid gregor1.UID, msgs []chat1.MessageBoxed) (res []chat1.MessageUnboxed, err error)

func (*HybridConversationSource) GetUnreadline

func (s *HybridConversationSource) GetUnreadline(ctx context.Context,
	convID chat1.ConversationID, uid gregor1.UID, readMsgID chat1.MessageID) (unreadlineID *chat1.MessageID, err error)

func (*HybridConversationSource) Pull

func (s *HybridConversationSource) Pull(ctx context.Context, convID chat1.ConversationID,
	uid gregor1.UID, reason chat1.GetThreadReason, customRi func() chat1.RemoteInterface,
	query *chat1.GetThreadQuery, pagination *chat1.Pagination) (thread chat1.ThreadView, err error)

func (HybridConversationSource) PullFull

func (s HybridConversationSource) PullFull(ctx context.Context, convID chat1.ConversationID, uid gregor1.UID, reason chat1.GetThreadReason,
	query *chat1.GetThreadQuery, maxPages *int) (res chat1.ThreadView, err error)

func (*HybridConversationSource) PullLocalOnly

func (s *HybridConversationSource) PullLocalOnly(ctx context.Context, convID chat1.ConversationID,
	uid gregor1.UID, reason chat1.GetThreadReason, query *chat1.GetThreadQuery, pagination *chat1.Pagination, maxPlaceholders int) (tv chat1.ThreadView, err error)

func (*HybridConversationSource) Push

func (s *HybridConversationSource) Push(ctx context.Context, convID chat1.ConversationID,
	uid gregor1.UID, msg chat1.MessageBoxed) (decmsg chat1.MessageUnboxed, continuousUpdate bool, err error)

func (*HybridConversationSource) PushUnboxed

func (*HybridConversationSource) ReleaseConversationLock

func (s *HybridConversationSource) ReleaseConversationLock(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID)

func (HybridConversationSource) SetRemoteInterface

func (s HybridConversationSource) SetRemoteInterface(ri func() chat1.RemoteInterface)

func (HybridConversationSource) Sign

func (s HybridConversationSource) Sign(payload []byte) ([]byte, error)

Sign implements github.com/keybase/go/chat/s3.Signer interface.

func (HybridConversationSource) TransformSupersedes

func (s HybridConversationSource) TransformSupersedes(ctx context.Context,
	convID chat1.ConversationID, uid gregor1.UID, msgs []chat1.MessageUnboxed,
	q *chat1.GetThreadQuery, superXform types.SupersedesTransform, replyFiller types.ReplyFiller,
	maxDeletedUpTo *chat1.MessageID) (res []chat1.MessageUnboxed, err error)

type HybridInboxSource

type HybridInboxSource struct {
	sync.Mutex
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewHybridInboxSource

func NewHybridInboxSource(g *globals.Context,
	getChatInterface func() chat1.RemoteInterface) *HybridInboxSource

func (*HybridInboxSource) ApplyLocalChatState

func (s *HybridInboxSource) ApplyLocalChatState(ctx context.Context, infos []keybase1.BadgeConversationInfo) (res []keybase1.BadgeConversationInfo, smallTeamBadgeCount, bigTeamBadgeCount int)

ApplyLocalChatState marks items locally as read and badges conversations that have failed outbox items.

func (*HybridInboxSource) Clear

func (s *HybridInboxSource) Clear(ctx context.Context, uid gregor1.UID, opts *types.ClearOpts) (err error)

func (*HybridInboxSource) Connected

func (s *HybridInboxSource) Connected(ctx context.Context)

func (*HybridInboxSource) ConversationsUpdate

func (s *HybridInboxSource) ConversationsUpdate(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	convUpdates []chat1.ConversationUpdate) (err error)

func (HybridInboxSource) Disconnected

func (b HybridInboxSource) Disconnected(ctx context.Context)

func (*HybridInboxSource) Draft

func (s *HybridInboxSource) Draft(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID,
	text *string) (err error)

func (*HybridInboxSource) Expunge

func (HybridInboxSource) GetInboxQueryLocalToRemote

func (b HybridInboxSource) GetInboxQueryLocalToRemote(ctx context.Context,
	lquery *chat1.GetInboxLocalQuery) (rquery *chat1.GetInboxQuery, info types.NameInfo, err error)

func (*HybridInboxSource) IncrementLocalConvVersion

func (s *HybridInboxSource) IncrementLocalConvVersion(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID) (conv *chat1.ConversationLocal, err error)

func (HybridInboxSource) IsMember

func (b HybridInboxSource) IsMember(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID) (bool, error)

func (HybridInboxSource) IsOffline

func (b HybridInboxSource) IsOffline(ctx context.Context) bool

func (*HybridInboxSource) IsTeam

func (s *HybridInboxSource) IsTeam(ctx context.Context, uid gregor1.UID, item string) (res bool, err error)

func (*HybridInboxSource) Localize

func (s *HybridInboxSource) Localize(ctx context.Context, uid gregor1.UID, convs []types.RemoteConversation,
	localizerTyp types.ConversationLocalizerTyp) (res []chat1.ConversationLocal, localizeCb chan types.AsyncInboxResult, err error)

func (*HybridInboxSource) MarkAsRead

func (s *HybridInboxSource) MarkAsRead(ctx context.Context, convID chat1.ConversationID,
	uid gregor1.UID, msgID *chat1.MessageID, forceUnread bool) (err error)

func (*HybridInboxSource) MembershipUpdate

func (s *HybridInboxSource) MembershipUpdate(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	joined []chat1.ConversationMember, removed []chat1.ConversationMember, resets []chat1.ConversationMember,
	previews []chat1.ConversationID, teamMemberRoleUpdate *chat1.TeamMemberRoleUpdate) (res types.MembershipUpdateRes, err error)

func (*HybridInboxSource) MergeLocalMetadata

func (s *HybridInboxSource) MergeLocalMetadata(ctx context.Context, uid gregor1.UID, convs []chat1.ConversationLocal) (err error)

func (*HybridInboxSource) NewConversation

func (s *HybridInboxSource) NewConversation(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	conv chat1.Conversation) (err error)

func (*HybridInboxSource) NewMessage

func (*HybridInboxSource) NotifyUpdate

func (s *HybridInboxSource) NotifyUpdate(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID)

func (*HybridInboxSource) Read

func (s *HybridInboxSource) Read(ctx context.Context, uid gregor1.UID,
	localizerTyp types.ConversationLocalizerTyp, dataSource types.InboxSourceDataSourceTyp, maxLocalize *int,
	query *chat1.GetInboxLocalQuery) (inbox types.Inbox, localizeCb chan types.AsyncInboxResult, err error)

func (*HybridInboxSource) ReadMessage

func (s *HybridInboxSource) ReadMessage(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	convID chat1.ConversationID, msgID chat1.MessageID) (conv *chat1.ConversationLocal, err error)

func (*HybridInboxSource) ReadUnverified

func (s *HybridInboxSource) ReadUnverified(ctx context.Context, uid gregor1.UID,
	dataSource types.InboxSourceDataSourceTyp, query *chat1.GetInboxQuery) (res types.Inbox, err error)

func (*HybridInboxSource) RemoteDeleteConversation

func (s *HybridInboxSource) RemoteDeleteConversation(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID) (err error)

func (*HybridInboxSource) RemoteSetConversationStatus

func (s *HybridInboxSource) RemoteSetConversationStatus(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, status chat1.ConversationStatus) (err error)

func (HybridInboxSource) Resume

func (b HybridInboxSource) Resume(ctx context.Context) bool

func (*HybridInboxSource) Search

func (s *HybridInboxSource) Search(ctx context.Context, uid gregor1.UID, query string, limit int,
	emptyMode types.InboxSourceSearchEmptyMode) (res []types.RemoteConversation, err error)

func (*HybridInboxSource) SetAppNotificationSettings

func (s *HybridInboxSource) SetAppNotificationSettings(ctx context.Context, uid gregor1.UID,
	vers chat1.InboxVers, convID chat1.ConversationID, settings chat1.ConversationNotificationInfo) (conv *chat1.ConversationLocal, err error)

func (*HybridInboxSource) SetConvRetention

func (s *HybridInboxSource) SetConvRetention(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	convID chat1.ConversationID, policy chat1.RetentionPolicy) (res *chat1.ConversationLocal, err error)

func (*HybridInboxSource) SetConvSettings

func (s *HybridInboxSource) SetConvSettings(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	convID chat1.ConversationID, convSettings *chat1.ConversationSettings) (res *chat1.ConversationLocal, err error)

func (HybridInboxSource) SetRemoteInterface

func (b HybridInboxSource) SetRemoteInterface(ri func() chat1.RemoteInterface)

func (*HybridInboxSource) SetStatus

func (*HybridInboxSource) SetTeamRetention

func (s *HybridInboxSource) SetTeamRetention(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	teamID keybase1.TeamID, policy chat1.RetentionPolicy) (convs []chat1.ConversationLocal, err error)

func (*HybridInboxSource) Start

func (s *HybridInboxSource) Start(ctx context.Context, uid gregor1.UID)

func (*HybridInboxSource) Stop

func (s *HybridInboxSource) Stop(ctx context.Context) chan struct{}

func (*HybridInboxSource) SubteamRename

func (s *HybridInboxSource) SubteamRename(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	convIDs []chat1.ConversationID) (convs []chat1.ConversationLocal, err error)

func (HybridInboxSource) Suspend

func (b HybridInboxSource) Suspend(ctx context.Context) bool

func (*HybridInboxSource) Sync

func (s *HybridInboxSource) Sync(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers, convs []chat1.Conversation) (res types.InboxSyncRes, err error)

func (*HybridInboxSource) TeamBotSettingsForConv

func (s *HybridInboxSource) TeamBotSettingsForConv(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID) (
	teambotSettings map[keybase1.UID]keybase1.TeamBotSettings, err error)

func (*HybridInboxSource) TeamTypeChanged

func (s *HybridInboxSource) TeamTypeChanged(ctx context.Context, uid gregor1.UID,
	vers chat1.InboxVers, convID chat1.ConversationID, teamType chat1.TeamType) (conv *chat1.ConversationLocal, err error)

func (*HybridInboxSource) TlfFinalize

func (s *HybridInboxSource) TlfFinalize(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	convIDs []chat1.ConversationID, finalizeInfo chat1.ConversationFinalizeInfo) (convs []chat1.ConversationLocal, err error)

func (*HybridInboxSource) UpdateInboxVersion

func (s *HybridInboxSource) UpdateInboxVersion(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers) (err error)

func (*HybridInboxSource) UpdateLocalMtime

func (s *HybridInboxSource) UpdateLocalMtime(ctx context.Context, uid gregor1.UID, updates []chat1.LocalMtimeUpdate) error

func (*HybridInboxSource) UpgradeKBFSToImpteam

func (s *HybridInboxSource) UpgradeKBFSToImpteam(ctx context.Context, uid gregor1.UID,
	vers chat1.InboxVers, convID chat1.ConversationID) (conv *chat1.ConversationLocal, err error)

type IdentifyChangedHandler

type IdentifyChangedHandler struct {
	globals.Contextified
	utils.DebugLabeler
}

func NewIdentifyChangedHandler

func NewIdentifyChangedHandler(g *globals.Context) *IdentifyChangedHandler

func (*IdentifyChangedHandler) HandleUserChanged

func (h *IdentifyChangedHandler) HandleUserChanged(uid keybase1.UID) (err error)

type ImplicitTeamsNameInfoSource

type ImplicitTeamsNameInfoSource struct {
	globals.Contextified
	utils.DebugLabeler
	*NameIdentifier
	// contains filtered or unexported fields
}

func (*ImplicitTeamsNameInfoSource) AllCryptKeys

func (t *ImplicitTeamsNameInfoSource) AllCryptKeys(ctx context.Context, name string, public bool) (res types.AllCryptKeys, err error)

func (*ImplicitTeamsNameInfoSource) DecryptionKey

func (t *ImplicitTeamsNameInfoSource) DecryptionKey(ctx context.Context, name string, teamID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool,
	keyGeneration int, kbfsEncrypted bool, botUID *gregor1.UID) (res types.CryptKey, err error)

func (*ImplicitTeamsNameInfoSource) EncryptionKey

func (t *ImplicitTeamsNameInfoSource) EncryptionKey(ctx context.Context, name string, teamID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool,
	botUID *gregor1.UID) (res types.CryptKey, ni types.NameInfo, err error)

func (*ImplicitTeamsNameInfoSource) EphemeralDecryptionKey

func (t *ImplicitTeamsNameInfoSource) EphemeralDecryptionKey(mctx libkb.MetaContext, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool, botUID *gregor1.UID,
	generation keybase1.EkGeneration, contentCtime *gregor1.Time) (teamEK types.EphemeralCryptKey, err error)

func (*ImplicitTeamsNameInfoSource) EphemeralEncryptionKey

func (t *ImplicitTeamsNameInfoSource) EphemeralEncryptionKey(mctx libkb.MetaContext, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool, botUID *gregor1.UID) (ek types.EphemeralCryptKey, err error)

func (*ImplicitTeamsNameInfoSource) LookupID

func (t *ImplicitTeamsNameInfoSource) LookupID(ctx context.Context, name string, public bool) (res types.NameInfo, err error)

func (*ImplicitTeamsNameInfoSource) LookupName

func (t *ImplicitTeamsNameInfoSource) LookupName(ctx context.Context, tlfID chat1.TLFID, public bool,
	unverifiedTLFName string) (res types.NameInfo, err error)

func (*ImplicitTeamsNameInfoSource) ShouldPairwiseMAC

func (t *ImplicitTeamsNameInfoSource) ShouldPairwiseMAC(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (bool, []keybase1.KID, error)

func (*ImplicitTeamsNameInfoSource) TeamBotSettings

type ImpteamBadteamError

type ImpteamBadteamError struct {
	Msg string
}

func (ImpteamBadteamError) Error

func (e ImpteamBadteamError) Error() string

type InvalidMACError

type InvalidMACError struct{}

func NewInvalidMACError

func NewInvalidMACError() InvalidMACError

func (InvalidMACError) Error

func (e InvalidMACError) Error() string

type JourneyCardManager

type JourneyCardManager struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

JourneyCardManager handles user switching and proxies to the active JourneyCardManagerSingleUser.

func NewJourneyCardManager

func NewJourneyCardManager(g *globals.Context, ri func() chat1.RemoteInterface) *JourneyCardManager

func (*JourneyCardManager) DebugState

func (j *JourneyCardManager) DebugState(ctx context.Context, uid gregor1.UID, teamID keybase1.TeamID) (summary string, err error)

func (*JourneyCardManager) Dismiss

func (j *JourneyCardManager) Dismiss(ctx context.Context, uid gregor1.UID, teamID keybase1.TeamID, convID chat1.ConversationID, jcType chat1.JourneycardType)

func (*JourneyCardManager) OnDbNuke

func (j *JourneyCardManager) OnDbNuke(mctx libkb.MetaContext) error

func (*JourneyCardManager) PickCard

func (*JourneyCardManager) ResetAllConvs

func (j *JourneyCardManager) ResetAllConvs(ctx context.Context, uid gregor1.UID) (err error)

func (*JourneyCardManager) SentMessage

func (j *JourneyCardManager) SentMessage(ctx context.Context, uid gregor1.UID, teamID keybase1.TeamID, convID chat1.ConversationID)

func (*JourneyCardManager) Start

func (j *JourneyCardManager) Start(ctx context.Context, uid gregor1.UID)

func (*JourneyCardManager) Stop

func (j *JourneyCardManager) Stop(ctx context.Context) chan struct{}

func (*JourneyCardManager) TimeTravel

func (j *JourneyCardManager) TimeTravel(ctx context.Context, uid gregor1.UID, duration time.Duration) (int, int, error)

type JourneyCardManagerSingleUser

type JourneyCardManagerSingleUser struct {
	globals.Contextified

	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewJourneyCardManagerSingleUser

func NewJourneyCardManagerSingleUser(g *globals.Context, ri func() chat1.RemoteInterface, uid gregor1.UID) *JourneyCardManagerSingleUser

func (*JourneyCardManagerSingleUser) DebugState

func (cc *JourneyCardManagerSingleUser) DebugState(ctx context.Context, teamID keybase1.TeamID) (summary string, err error)

func (*JourneyCardManagerSingleUser) Dismiss

func (*JourneyCardManagerSingleUser) PickCard

Choose a journey card to show in the conversation. Called by postProcessThread so keep it snappy.

func (*JourneyCardManagerSingleUser) ResetAllConvs

func (cc *JourneyCardManagerSingleUser) ResetAllConvs(ctx context.Context) (err error)

ResetAllConvs deletes storage for all conversations. For use simulating a fresh user experience without the need to switch accounts.

func (*JourneyCardManagerSingleUser) SentMessage

func (cc *JourneyCardManagerSingleUser) SentMessage(ctx context.Context, teamID keybase1.TeamID, convID chat1.ConversationID)

The user has sent a message.

func (*JourneyCardManagerSingleUser) TimeTravel

func (cc *JourneyCardManagerSingleUser) TimeTravel(ctx context.Context, duration time.Duration) (nTeams, nConvs int, err error)

TimeTravel simulates moving all known conversations forward in time. For use simulating a user experience without the need to wait hours for cards to appear. Returns the number of known teams and convs.

type KBFSNameInfoSource

type KBFSNameInfoSource struct {
	globals.Contextified
	utils.DebugLabeler
	*NameIdentifier
}

func NewKBFSNameInfoSource

func NewKBFSNameInfoSource(g *globals.Context) *KBFSNameInfoSource

func (*KBFSNameInfoSource) AllCryptKeys

func (t *KBFSNameInfoSource) AllCryptKeys(ctx context.Context, tlfName string, public bool) (res types.AllCryptKeys, err error)

func (*KBFSNameInfoSource) CompleteAndCanonicalizePrivateTlfName

func (t *KBFSNameInfoSource) CompleteAndCanonicalizePrivateTlfName(ctx context.Context, tlfName string) (res keybase1.CanonicalTLFNameAndIDWithBreaks, err error)

func (*KBFSNameInfoSource) CryptKeys

func (t *KBFSNameInfoSource) CryptKeys(ctx context.Context, tlfName string) (res keybase1.GetTLFCryptKeysRes, err error)

func (*KBFSNameInfoSource) DecryptionKey

func (t *KBFSNameInfoSource) DecryptionKey(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool,
	keyGeneration int, kbfsEncrypted bool, botUID *gregor1.UID) (res types.CryptKey, err error)

func (*KBFSNameInfoSource) EncryptionKey

func (t *KBFSNameInfoSource) EncryptionKey(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool, botUID *gregor1.UID) (res types.CryptKey, ni types.NameInfo, err error)

func (*KBFSNameInfoSource) EphemeralDecryptionKey

func (t *KBFSNameInfoSource) EphemeralDecryptionKey(mctx libkb.MetaContext, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool, botUID *gregor1.UID,
	generation keybase1.EkGeneration, contentCtime *gregor1.Time) (teamEK types.EphemeralCryptKey, err error)

func (*KBFSNameInfoSource) EphemeralEncryptionKey

func (t *KBFSNameInfoSource) EphemeralEncryptionKey(mctx libkb.MetaContext, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool, botUID *gregor1.UID) (teamEK types.EphemeralCryptKey, err error)

func (*KBFSNameInfoSource) LookupID

func (t *KBFSNameInfoSource) LookupID(ctx context.Context, tlfName string, public bool) (res types.NameInfo, err error)

func (*KBFSNameInfoSource) LookupName

func (t *KBFSNameInfoSource) LookupName(ctx context.Context, tlfID chat1.TLFID, public bool,
	unverifiedTLFName string) (res types.NameInfo, err error)

func (*KBFSNameInfoSource) PublicCanonicalTLFNameAndID

func (t *KBFSNameInfoSource) PublicCanonicalTLFNameAndID(ctx context.Context, tlfName string) (res keybase1.CanonicalTLFNameAndIDWithBreaks, err error)

func (*KBFSNameInfoSource) ShouldPairwiseMAC

func (t *KBFSNameInfoSource) ShouldPairwiseMAC(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (bool, []keybase1.KID, error)

func (*KBFSNameInfoSource) TeamBotSettings

func (t *KBFSNameInfoSource) TeamBotSettings(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (map[keybase1.UserVersion]keybase1.TeamBotSettings, error)

type KeyFinderImpl

type KeyFinderImpl struct {
	globals.Contextified
	utils.DebugLabeler
	sync.Mutex
	// contains filtered or unexported fields
}

KeyFinder remembers results from previous calls to CryptKeys().

func (*KeyFinderImpl) EphemeralKeyForDecryption

func (k *KeyFinderImpl) EphemeralKeyForDecryption(mctx libkb.MetaContext, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool, botUID *gregor1.UID,
	generation keybase1.EkGeneration, contentCtime *gregor1.Time) (types.EphemeralCryptKey, error)

func (*KeyFinderImpl) EphemeralKeyForEncryption

func (k *KeyFinderImpl) EphemeralKeyForEncryption(mctx libkb.MetaContext, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool, botUID *gregor1.UID) (ek types.EphemeralCryptKey, err error)

func (*KeyFinderImpl) FindForDecryption

func (k *KeyFinderImpl) FindForDecryption(ctx context.Context,
	tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool,
	keyGeneration int, kbfsEncrypted bool, botUID *gregor1.UID) (res types.CryptKey, err error)

FindForDecryption ignores tlfName or teamID based on membersType.

func (*KeyFinderImpl) FindForEncryption

func (k *KeyFinderImpl) FindForEncryption(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool, botUID *gregor1.UID) (res types.CryptKey, ni types.NameInfo, err error)

FindForEncryption finds keys up-to-date enough for encrypting. Ignores tlfName or teamID based on membersType.

func (*KeyFinderImpl) Reset

func (k *KeyFinderImpl) Reset()

func (*KeyFinderImpl) ShouldPairwiseMAC

func (k *KeyFinderImpl) ShouldPairwiseMAC(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (bool, []keybase1.KID, error)

type KeyFinderMock

type KeyFinderMock struct {
	// contains filtered or unexported fields
}

func (*KeyFinderMock) EphemeralKeyForDecryption

func (k *KeyFinderMock) EphemeralKeyForDecryption(mctx libkb.MetaContext, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool, botUID *gregor1.UID,
	generation keybase1.EkGeneration, contentCtime *gregor1.Time) (types.EphemeralCryptKey, error)

func (*KeyFinderMock) EphemeralKeyForEncryption

func (k *KeyFinderMock) EphemeralKeyForEncryption(mctx libkb.MetaContext, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool, botUID *gregor1.UID) (types.EphemeralCryptKey, error)

func (*KeyFinderMock) FindForDecryption

func (k *KeyFinderMock) FindForDecryption(ctx context.Context,
	tlfName string, teamID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool,
	keyGeneration int, kbfsEncrypted bool, botUID *gregor1.UID) (res types.CryptKey, err error)

func (*KeyFinderMock) FindForEncryption

func (k *KeyFinderMock) FindForEncryption(ctx context.Context,
	tlfName string, teamID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool,
	botUID *gregor1.UID) (res types.CryptKey, ni types.NameInfo, err error)

func (*KeyFinderMock) Reset

func (k *KeyFinderMock) Reset()

func (*KeyFinderMock) SetNameInfoSourceOverride

func (k *KeyFinderMock) SetNameInfoSourceOverride(ni types.NameInfoSource)

func (*KeyFinderMock) ShouldPairwiseMAC

func (k *KeyFinderMock) ShouldPairwiseMAC(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (bool, []keybase1.KID, error)

type MobilePush

type MobilePush struct {
	globals.Contextified
	utils.DebugLabeler
}

func NewMobilePush

func NewMobilePush(g *globals.Context) *MobilePush

func (*MobilePush) AckNotificationSuccess

func (h *MobilePush) AckNotificationSuccess(ctx context.Context, pushIDs []string)

func (*MobilePush) UnboxPushNotification

func (h *MobilePush) UnboxPushNotification(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, membersType chat1.ConversationMembersType, payload string) (res chat1.MessageUnboxed, err error)

type NameIdentifier

type NameIdentifier struct {
	globals.Contextified
	utils.DebugLabeler
}

func NewNameIdentifier

func NewNameIdentifier(g *globals.Context) *NameIdentifier

func (*NameIdentifier) Identify

func (t *NameIdentifier) Identify(ctx context.Context, names []string, private bool,
	getTLFID func() keybase1.TLFID, getCanonicalName func() keybase1.CanonicalTlfName) (res []keybase1.TLFIdentifyFailure, err error)

type NewConvFindExistingMode

type NewConvFindExistingMode int
const (
	NewConvFindExistingNormal NewConvFindExistingMode = iota
	NewConvFindExistingSkip
)

type NonblockingSender

type NonblockingSender struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewNonblockingSender

func NewNonblockingSender(g *globals.Context, sender types.Sender) *NonblockingSender

func (*NonblockingSender) Send

func (*NonblockingSender) SendUnfurlNonblock

func (s *NonblockingSender) SendUnfurlNonblock(ctx context.Context, convID chat1.ConversationID,
	msg chat1.MessagePlaintext, clientPrev chat1.MessageID, outboxID chat1.OutboxID) (chat1.OutboxID, error)

type NotAuthenticatedForThisDeviceError

type NotAuthenticatedForThisDeviceError struct {
	// contains filtered or unexported fields
}

func NewNotAuthenticatedForThisDeviceError

func NewNotAuthenticatedForThisDeviceError(mctx libkb.MetaContext, memberCtime *keybase1.Time,
	contentCtime gregor1.Time) NotAuthenticatedForThisDeviceError

func (NotAuthenticatedForThisDeviceError) Error

func (NotAuthenticatedForThisDeviceError) InternalError

func (e NotAuthenticatedForThisDeviceError) InternalError() string

type NotifyRouterActivityRouter

type NotifyRouterActivityRouter struct {
	utils.DebugLabeler
	globals.Contextified
	sync.Mutex
	// contains filtered or unexported fields
}

func NewNotifyRouterActivityRouter

func NewNotifyRouterActivityRouter(g *globals.Context) *NotifyRouterActivityRouter

func (*NotifyRouterActivityRouter) Activity

func (n *NotifyRouterActivityRouter) Activity(ctx context.Context, uid gregor1.UID,
	topicType chat1.TopicType, activity *chat1.ChatActivity, source chat1.ChatActivitySource)

func (*NotifyRouterActivityRouter) AttachmentUploadProgress

func (n *NotifyRouterActivityRouter) AttachmentUploadProgress(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, outboxID chat1.OutboxID, bytesComplete, bytesTotal int64)

func (*NotifyRouterActivityRouter) AttachmentUploadStart

func (n *NotifyRouterActivityRouter) AttachmentUploadStart(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, outboxID chat1.OutboxID)

func (*NotifyRouterActivityRouter) ConvUpdate

func (n *NotifyRouterActivityRouter) ConvUpdate(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, topicType chat1.TopicType, conv *chat1.InboxUIItem)

func (*NotifyRouterActivityRouter) InboxStale

func (n *NotifyRouterActivityRouter) InboxStale(ctx context.Context, uid gregor1.UID)

func (*NotifyRouterActivityRouter) InboxSyncStarted

func (n *NotifyRouterActivityRouter) InboxSyncStarted(ctx context.Context, uid gregor1.UID)

func (*NotifyRouterActivityRouter) InboxSynced

func (n *NotifyRouterActivityRouter) InboxSynced(ctx context.Context, uid gregor1.UID,
	topicType chat1.TopicType, syncRes chat1.ChatSyncResult)

func (*NotifyRouterActivityRouter) JoinedConversation

func (n *NotifyRouterActivityRouter) JoinedConversation(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, topicType chat1.TopicType, conv *chat1.InboxUIItem)

func (*NotifyRouterActivityRouter) KBFSToImpteamUpgrade

func (n *NotifyRouterActivityRouter) KBFSToImpteamUpgrade(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, topicType chat1.TopicType)

func (*NotifyRouterActivityRouter) LeftConversation

func (n *NotifyRouterActivityRouter) LeftConversation(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, topicType chat1.TopicType)

func (*NotifyRouterActivityRouter) PromptUnfurl

func (n *NotifyRouterActivityRouter) PromptUnfurl(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, msgID chat1.MessageID, domain string)

func (*NotifyRouterActivityRouter) ResetConversation

func (n *NotifyRouterActivityRouter) ResetConversation(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, topicType chat1.TopicType)

func (*NotifyRouterActivityRouter) SetConvRetention

func (n *NotifyRouterActivityRouter) SetConvRetention(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, topicType chat1.TopicType, conv *chat1.InboxUIItem)

func (*NotifyRouterActivityRouter) SetConvSettings

func (n *NotifyRouterActivityRouter) SetConvSettings(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, topicType chat1.TopicType, conv *chat1.InboxUIItem)

func (*NotifyRouterActivityRouter) SetTeamRetention

func (n *NotifyRouterActivityRouter) SetTeamRetention(ctx context.Context, uid gregor1.UID,
	teamID keybase1.TeamID, topicType chat1.TopicType, convs []chat1.InboxUIItem)

func (*NotifyRouterActivityRouter) SubteamRename

func (n *NotifyRouterActivityRouter) SubteamRename(ctx context.Context, uid gregor1.UID,
	convIDs []chat1.ConversationID, topicType chat1.TopicType, convs []chat1.InboxUIItem)

func (*NotifyRouterActivityRouter) TLFFinalize

func (n *NotifyRouterActivityRouter) TLFFinalize(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, topicType chat1.TopicType, finalizeInfo chat1.ConversationFinalizeInfo, conv *chat1.InboxUIItem)

func (*NotifyRouterActivityRouter) TLFResolve

func (n *NotifyRouterActivityRouter) TLFResolve(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, topicType chat1.TopicType, resolveInfo chat1.ConversationResolveInfo)

func (*NotifyRouterActivityRouter) ThreadsStale

func (n *NotifyRouterActivityRouter) ThreadsStale(ctx context.Context, uid gregor1.UID,
	updates []chat1.ConversationStaleUpdate)

func (*NotifyRouterActivityRouter) TypingUpdate

func (n *NotifyRouterActivityRouter) TypingUpdate(ctx context.Context, updates []chat1.ConvTypingUpdate)

type OfflineClient

type OfflineClient struct {
}

func (OfflineClient) Call

func (e OfflineClient) Call(ctx context.Context, method string, arg interface{},
	res interface{}, timeout time.Duration) error

func (OfflineClient) CallCompressed

func (e OfflineClient) CallCompressed(ctx context.Context, method string, arg interface{},
	res interface{}, ctype rpc.CompressionType, timeout time.Duration) error

func (OfflineClient) Notify

func (e OfflineClient) Notify(ctx context.Context, method string, arg interface{}, timeout time.Duration) error

type OfflineError

type OfflineError struct {
}

func (OfflineError) Error

func (e OfflineError) Error() string

type OfflineErrorKind

type OfflineErrorKind int
const (
	OfflineErrorKindOnline OfflineErrorKind = iota
	OfflineErrorKindOfflineBasic
	OfflineErrorKindOfflineReconnect
)

func IsOfflineError

func IsOfflineError(err error) OfflineErrorKind

type PermanentUnboxingError

type PermanentUnboxingError struct {
	// contains filtered or unexported fields
}

func (PermanentUnboxingError) Error

func (e PermanentUnboxingError) Error() string

func (PermanentUnboxingError) ExportType

func (PermanentUnboxingError) Inner

func (e PermanentUnboxingError) Inner() error

func (PermanentUnboxingError) InternalError

func (e PermanentUnboxingError) InternalError() string

func (PermanentUnboxingError) IsCritical

func (e PermanentUnboxingError) IsCritical() bool

func (PermanentUnboxingError) IsPermanent

func (e PermanentUnboxingError) IsPermanent() bool

func (PermanentUnboxingError) ToStatus

func (e PermanentUnboxingError) ToStatus() (status keybase1.Status)

func (PermanentUnboxingError) VersionKind

func (e PermanentUnboxingError) VersionKind() chat1.VersionKind

func (PermanentUnboxingError) VersionNumber

func (e PermanentUnboxingError) VersionNumber() int

type PublicTeamEphemeralKeyError

type PublicTeamEphemeralKeyError struct{}

func NewPublicTeamEphemeralKeyError

func NewPublicTeamEphemeralKeyError() PublicTeamEphemeralKeyError

func (PublicTeamEphemeralKeyError) Error

type PullTranscriptConfig

type PullTranscriptConfig struct {
	// contains filtered or unexported fields
}

func PullTranscriptConfigDefault

func PullTranscriptConfigDefault() PullTranscriptConfig

type PushHandler

type PushHandler struct {
	globals.Contextified
	utils.DebugLabeler
	sync.Mutex
	// contains filtered or unexported fields
}

func NewPushHandler

func NewPushHandler(g *globals.Context) *PushHandler

func (*PushHandler) Activity

func (g *PushHandler) Activity(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) ConversationsUpdate

func (g *PushHandler) ConversationsUpdate(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) HandleOobm

func (g *PushHandler) HandleOobm(ctx context.Context, obm gregor.OutOfBandMessage) (bool, error)

func (*PushHandler) MembershipUpdate

func (g *PushHandler) MembershipUpdate(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) SetClock

func (g *PushHandler) SetClock(clock clockwork.Clock)

func (*PushHandler) SetConvRetention

func (g *PushHandler) SetConvRetention(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) SetConvSettings

func (g *PushHandler) SetConvSettings(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) SetTeamRetention

func (g *PushHandler) SetTeamRetention(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) Start

func (g *PushHandler) Start(ctx context.Context, _ gregor1.UID)

func (*PushHandler) Stop

func (g *PushHandler) Stop(ctx context.Context) chan struct{}

func (*PushHandler) SubteamRename

func (g *PushHandler) SubteamRename(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) TlfFinalize

func (g *PushHandler) TlfFinalize(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) TlfResolve

func (g *PushHandler) TlfResolve(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) Typing

func (g *PushHandler) Typing(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) UpgradeKBFSToImpteam

func (g *PushHandler) UpgradeKBFSToImpteam(ctx context.Context, m gregor.OutOfBandMessage) (err error)

type RemoteAttachmentFetcher

type RemoteAttachmentFetcher struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewRemoteAttachmentFetcher

func NewRemoteAttachmentFetcher(g *globals.Context, store attachments.Store) *RemoteAttachmentFetcher

func (*RemoteAttachmentFetcher) DeleteAssets

func (r *RemoteAttachmentFetcher) DeleteAssets(ctx context.Context,
	convID chat1.ConversationID, assets []chat1.Asset, ri func() chat1.RemoteInterface, signer s3.Signer) (err error)

func (*RemoteAttachmentFetcher) FetchAttachment

func (r *RemoteAttachmentFetcher) FetchAttachment(ctx context.Context, w io.Writer,
	convID chat1.ConversationID, asset chat1.Asset,
	ri func() chat1.RemoteInterface, signer s3.Signer, progress types.ProgressReporter) (err error)

func (*RemoteAttachmentFetcher) IsAssetLocal

func (r *RemoteAttachmentFetcher) IsAssetLocal(ctx context.Context, asset chat1.Asset) (bool, error)

func (*RemoteAttachmentFetcher) OnDbNuke

func (r *RemoteAttachmentFetcher) OnDbNuke(mctx libkb.MetaContext) error

func (*RemoteAttachmentFetcher) OnStart

func (r *RemoteAttachmentFetcher) OnStart(mctx libkb.MetaContext)

func (*RemoteAttachmentFetcher) PutUploadedAsset

func (r *RemoteAttachmentFetcher) PutUploadedAsset(ctx context.Context, filename string, asset chat1.Asset) error

func (*RemoteAttachmentFetcher) StreamAttachment

func (r *RemoteAttachmentFetcher) StreamAttachment(ctx context.Context, convID chat1.ConversationID,
	asset chat1.Asset, ri func() chat1.RemoteInterface, signer s3.Signer) (res io.ReadSeeker, err error)

type RemoteClient

type RemoteClient struct {
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewRemoteClient

func NewRemoteClient(g *globals.Context, cli rpc.GenericClient) *RemoteClient

func (*RemoteClient) Call

func (c *RemoteClient) Call(ctx context.Context, method string, arg interface{},
	res interface{}, timeout time.Duration) (err error)

func (*RemoteClient) CallCompressed

func (c *RemoteClient) CallCompressed(ctx context.Context, method string, arg interface{},
	res interface{}, ctype rpc.CompressionType, timeout time.Duration) (err error)

func (*RemoteClient) Notify

func (c *RemoteClient) Notify(ctx context.Context, method string, arg interface{}, timeout time.Duration) (err error)

type RemoteConversationSource

type RemoteConversationSource struct {
	globals.Contextified
	// contains filtered or unexported fields
}

func NewRemoteConversationSource

func NewRemoteConversationSource(g *globals.Context, b *Boxer, ri func() chat1.RemoteInterface) *RemoteConversationSource

func (*RemoteConversationSource) AcquireConversationLock

func (s *RemoteConversationSource) AcquireConversationLock(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID) error

func (*RemoteConversationSource) Clear

func (RemoteConversationSource) DeleteAssets

func (s RemoteConversationSource) DeleteAssets(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, assets []chat1.Asset)

DeleteAssets implements github.com/keybase/go/chat/storage/storage.AssetDeleter interface.

func (*RemoteConversationSource) EphemeralPurge

func (*RemoteConversationSource) Expunge

func (RemoteConversationSource) GetMessage

func (s RemoteConversationSource) GetMessage(ctx context.Context, convID chat1.ConversationID,
	uid gregor1.UID, msgID chat1.MessageID, reason *chat1.GetThreadReason, ri func() chat1.RemoteInterface,
	resolveSupersedes bool) (chat1.MessageUnboxed, error)

func (*RemoteConversationSource) GetMessages

func (s *RemoteConversationSource) GetMessages(ctx context.Context, convID chat1.ConversationID,
	uid gregor1.UID, msgIDs []chat1.MessageID, threadReason *chat1.GetThreadReason,
	customRi func() chat1.RemoteInterface, resolveSupersedes bool) (res []chat1.MessageUnboxed, err error)

func (*RemoteConversationSource) GetMessagesWithRemotes

func (s *RemoteConversationSource) GetMessagesWithRemotes(ctx context.Context,
	conv chat1.Conversation, uid gregor1.UID, msgs []chat1.MessageBoxed) ([]chat1.MessageUnboxed, error)

func (*RemoteConversationSource) GetUnreadline

func (s *RemoteConversationSource) GetUnreadline(ctx context.Context,
	convID chat1.ConversationID, uid gregor1.UID, readMsgID chat1.MessageID) (*chat1.MessageID, error)

func (*RemoteConversationSource) Pull

func (RemoteConversationSource) PullFull

func (s RemoteConversationSource) PullFull(ctx context.Context, convID chat1.ConversationID, uid gregor1.UID, reason chat1.GetThreadReason,
	query *chat1.GetThreadQuery, maxPages *int) (res chat1.ThreadView, err error)

func (*RemoteConversationSource) PullLocalOnly

func (s *RemoteConversationSource) PullLocalOnly(ctx context.Context, convID chat1.ConversationID,
	uid gregor1.UID, reason chat1.GetThreadReason, query *chat1.GetThreadQuery, pagination *chat1.Pagination, maxPlaceholders int) (chat1.ThreadView, error)

func (*RemoteConversationSource) Push

func (*RemoteConversationSource) PushUnboxed

func (*RemoteConversationSource) ReleaseConversationLock

func (s *RemoteConversationSource) ReleaseConversationLock(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID)

func (RemoteConversationSource) SetRemoteInterface

func (s RemoteConversationSource) SetRemoteInterface(ri func() chat1.RemoteInterface)

func (RemoteConversationSource) Sign

func (s RemoteConversationSource) Sign(payload []byte) ([]byte, error)

Sign implements github.com/keybase/go/chat/s3.Signer interface.

func (RemoteConversationSource) TransformSupersedes

func (s RemoteConversationSource) TransformSupersedes(ctx context.Context,
	convID chat1.ConversationID, uid gregor1.UID, msgs []chat1.MessageUnboxed,
	q *chat1.GetThreadQuery, superXform types.SupersedesTransform, replyFiller types.ReplyFiller,
	maxDeletedUpTo *chat1.MessageID) (res []chat1.MessageUnboxed, err error)

type RemoteExternalAPIKeySource

type RemoteExternalAPIKeySource struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewRemoteExternalAPIKeySource

func NewRemoteExternalAPIKeySource(g *globals.Context, ri func() chat1.RemoteInterface) *RemoteExternalAPIKeySource

func (*RemoteExternalAPIKeySource) GetAllKeys

func (r *RemoteExternalAPIKeySource) GetAllKeys(ctx context.Context) (res []chat1.ExternalAPIKey, err error)

func (*RemoteExternalAPIKeySource) GetKey

type RemoteInboxSource

type RemoteInboxSource struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewRemoteInboxSource

func NewRemoteInboxSource(g *globals.Context, ri func() chat1.RemoteInterface) *RemoteInboxSource

func (RemoteInboxSource) ApplyLocalChatState

func (b RemoteInboxSource) ApplyLocalChatState(ctx context.Context, i []keybase1.BadgeConversationInfo) ([]keybase1.BadgeConversationInfo, int, int)

func (*RemoteInboxSource) Clear

func (s *RemoteInboxSource) Clear(ctx context.Context, uid gregor1.UID, opts *types.ClearOpts) error

func (RemoteInboxSource) Connected

func (b RemoteInboxSource) Connected(ctx context.Context)

func (*RemoteInboxSource) ConversationsUpdate

func (s *RemoteInboxSource) ConversationsUpdate(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	convUpdates []chat1.ConversationUpdate) error

func (RemoteInboxSource) Disconnected

func (b RemoteInboxSource) Disconnected(ctx context.Context)

func (*RemoteInboxSource) Draft

func (s *RemoteInboxSource) Draft(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID,
	text *string) error

func (*RemoteInboxSource) Expunge

func (s *RemoteInboxSource) Expunge(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers, convID chat1.ConversationID,
	expunge chat1.Expunge, maxMsgs []chat1.MessageSummary) (res *chat1.ConversationLocal, err error)

func (RemoteInboxSource) GetInboxQueryLocalToRemote

func (b RemoteInboxSource) GetInboxQueryLocalToRemote(ctx context.Context,
	lquery *chat1.GetInboxLocalQuery) (rquery *chat1.GetInboxQuery, info types.NameInfo, err error)

func (*RemoteInboxSource) IncrementLocalConvVersion

func (s *RemoteInboxSource) IncrementLocalConvVersion(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID) (conv *chat1.ConversationLocal, err error)

func (RemoteInboxSource) IsMember

func (b RemoteInboxSource) IsMember(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID) (bool, error)

func (RemoteInboxSource) IsOffline

func (b RemoteInboxSource) IsOffline(ctx context.Context) bool

func (*RemoteInboxSource) IsTeam

func (s *RemoteInboxSource) IsTeam(ctx context.Context, uid gregor1.UID, item string) (bool, error)

func (RemoteInboxSource) Localize

func (b RemoteInboxSource) Localize(ctx context.Context, uid gregor1.UID, convs []types.RemoteConversation,
	localizerTyp types.ConversationLocalizerTyp) ([]chat1.ConversationLocal, chan types.AsyncInboxResult, error)

func (*RemoteInboxSource) MarkAsRead

func (s *RemoteInboxSource) MarkAsRead(ctx context.Context, convID chat1.ConversationID,
	uid gregor1.UID, msgID *chat1.MessageID, forceUnread bool) (err error)

func (*RemoteInboxSource) MembershipUpdate

func (s *RemoteInboxSource) MembershipUpdate(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	joined []chat1.ConversationMember, removed []chat1.ConversationMember, resets []chat1.ConversationMember,
	previews []chat1.ConversationID, teamMemberRoleUpdate *chat1.TeamMemberRoleUpdate) (res types.MembershipUpdateRes, err error)

func (*RemoteInboxSource) MergeLocalMetadata

func (s *RemoteInboxSource) MergeLocalMetadata(ctx context.Context, uid gregor1.UID,
	convs []chat1.ConversationLocal) error

func (*RemoteInboxSource) NewConversation

func (s *RemoteInboxSource) NewConversation(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	conv chat1.Conversation) error

func (*RemoteInboxSource) NewMessage

func (*RemoteInboxSource) NotifyUpdate

func (s *RemoteInboxSource) NotifyUpdate(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID)

func (*RemoteInboxSource) Read

func (*RemoteInboxSource) ReadMessage

func (*RemoteInboxSource) ReadUnverified

func (s *RemoteInboxSource) ReadUnverified(ctx context.Context, uid gregor1.UID,
	dataSource types.InboxSourceDataSourceTyp, rquery *chat1.GetInboxQuery) (types.Inbox, error)

func (RemoteInboxSource) RemoteDeleteConversation

func (b RemoteInboxSource) RemoteDeleteConversation(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID) (err error)

func (RemoteInboxSource) RemoteSetConversationStatus

func (b RemoteInboxSource) RemoteSetConversationStatus(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, status chat1.ConversationStatus) (err error)

func (RemoteInboxSource) Resume

func (b RemoteInboxSource) Resume(ctx context.Context) bool

func (*RemoteInboxSource) Search

func (s *RemoteInboxSource) Search(ctx context.Context, uid gregor1.UID, query string, limit int,
	emptyMode types.InboxSourceSearchEmptyMode) (res []types.RemoteConversation, err error)

func (*RemoteInboxSource) SetAppNotificationSettings

func (s *RemoteInboxSource) SetAppNotificationSettings(ctx context.Context, uid gregor1.UID,
	vers chat1.InboxVers, convID chat1.ConversationID, settings chat1.ConversationNotificationInfo) (*chat1.ConversationLocal, error)

func (*RemoteInboxSource) SetConvRetention

func (s *RemoteInboxSource) SetConvRetention(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	convID chat1.ConversationID, policy chat1.RetentionPolicy) (res *chat1.ConversationLocal, err error)

func (*RemoteInboxSource) SetConvSettings

func (s *RemoteInboxSource) SetConvSettings(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	convID chat1.ConversationID, convSettings *chat1.ConversationSettings) (res *chat1.ConversationLocal, err error)

func (RemoteInboxSource) SetRemoteInterface

func (b RemoteInboxSource) SetRemoteInterface(ri func() chat1.RemoteInterface)

func (*RemoteInboxSource) SetStatus

func (*RemoteInboxSource) SetTeamRetention

func (s *RemoteInboxSource) SetTeamRetention(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	teamID keybase1.TeamID, policy chat1.RetentionPolicy) (res []chat1.ConversationLocal, err error)

func (RemoteInboxSource) Start

func (b RemoteInboxSource) Start(ctx context.Context, uid gregor1.UID)

func (RemoteInboxSource) Stop

func (b RemoteInboxSource) Stop(ctx context.Context) chan struct{}

func (*RemoteInboxSource) SubteamRename

func (s *RemoteInboxSource) SubteamRename(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	convIDs []chat1.ConversationID) (convs []chat1.ConversationLocal, err error)

func (RemoteInboxSource) Suspend

func (b RemoteInboxSource) Suspend(ctx context.Context) bool

func (*RemoteInboxSource) Sync

func (s *RemoteInboxSource) Sync(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers, convs []chat1.Conversation) (res types.InboxSyncRes, err error)

func (*RemoteInboxSource) TeamBotSettingsForConv

func (s *RemoteInboxSource) TeamBotSettingsForConv(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID) (
	map[keybase1.UID]keybase1.TeamBotSettings, error)

func (*RemoteInboxSource) TeamTypeChanged

func (s *RemoteInboxSource) TeamTypeChanged(ctx context.Context, uid gregor1.UID,
	vers chat1.InboxVers, convID chat1.ConversationID, teamType chat1.TeamType) (conv *chat1.ConversationLocal, err error)

func (*RemoteInboxSource) TlfFinalize

func (*RemoteInboxSource) UpdateInboxVersion

func (s *RemoteInboxSource) UpdateInboxVersion(ctx context.Context, uid gregor1.UID,
	vers chat1.InboxVers) error

func (*RemoteInboxSource) UpdateLocalMtime

func (s *RemoteInboxSource) UpdateLocalMtime(ctx context.Context, uid gregor1.UID, updates []chat1.LocalMtimeUpdate) error

func (*RemoteInboxSource) UpgradeKBFSToImpteam

func (s *RemoteInboxSource) UpgradeKBFSToImpteam(ctx context.Context, uid gregor1.UID,
	vers chat1.InboxVers, convID chat1.ConversationID) (conv *chat1.ConversationLocal, err error)

type ReplyFiller

type ReplyFiller struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewReplyFiller

func NewReplyFiller(g *globals.Context, config ...func(*ReplyFiller)) *ReplyFiller

func (*ReplyFiller) Fill

func (f *ReplyFiller) Fill(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID,
	msgs []chat1.MessageUnboxed) (res []chat1.MessageUnboxed, err error)

func (*ReplyFiller) FillSingle

func (f *ReplyFiller) FillSingle(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID,
	msg chat1.MessageUnboxed) (res chat1.MessageUnboxed, err error)

func (*ReplyFiller) SetLocalOnlyReplyFill

func (f *ReplyFiller) SetLocalOnlyReplyFill(enabled bool)

type RestrictedBotChannelError

type RestrictedBotChannelError struct{}

func NewRestrictedBotChannelError

func NewRestrictedBotChannelError() RestrictedBotChannelError

func (RestrictedBotChannelError) Error

func (RestrictedBotChannelError) IsImmediateFail

func (e RestrictedBotChannelError) IsImmediateFail() (chat1.OutboxErrorType, bool)

type SenderTestImmediateFailError

type SenderTestImmediateFailError struct {
}

func (SenderTestImmediateFailError) Error

func (SenderTestImmediateFailError) IsImmediateFail

func (e SenderTestImmediateFailError) IsImmediateFail() (chat1.OutboxErrorType, bool)

type Server

type Server struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewServer

func NewServer(g *globals.Context, serverConn types.ServerConnection, uiSource UISource) *Server

func (*Server) AddBotConvSearch

func (h *Server) AddBotConvSearch(ctx context.Context, term string) (res []chat1.ConvSearchHit, err error)

func (*Server) AddBotMember

func (h *Server) AddBotMember(ctx context.Context, arg chat1.AddBotMemberArg) (err error)

func (*Server) AddEmoji

func (h *Server) AddEmoji(ctx context.Context, arg chat1.AddEmojiArg) (res chat1.AddEmojiRes, err error)

func (*Server) AddEmojiAlias

func (h *Server) AddEmojiAlias(ctx context.Context, arg chat1.AddEmojiAliasArg) (res chat1.AddEmojiAliasRes, err error)

func (*Server) AddEmojis

func (h *Server) AddEmojis(ctx context.Context, arg chat1.AddEmojisArg) (res chat1.AddEmojisRes, err error)

func (*Server) AddTeamMemberAfterReset

func (h *Server) AddTeamMemberAfterReset(ctx context.Context,
	arg chat1.AddTeamMemberAfterResetArg) (err error)

func (*Server) AdvertiseBotCommandsLocal

func (h *Server) AdvertiseBotCommandsLocal(ctx context.Context, arg chat1.AdvertiseBotCommandsLocalArg) (res chat1.AdvertiseBotCommandsLocalRes, err error)

func (*Server) BulkAddToConv

func (h *Server) BulkAddToConv(ctx context.Context, arg chat1.BulkAddToConvArg) (err error)

func (*Server) BulkAddToManyConvs

func (h *Server) BulkAddToManyConvs(ctx context.Context, arg chat1.BulkAddToManyConvsArg) (err error)

func (*Server) CancelActiveInboxSearch

func (h *Server) CancelActiveInboxSearch(ctx context.Context) (err error)

func (*Server) CancelActiveSearch

func (h *Server) CancelActiveSearch(ctx context.Context) (err error)

func (*Server) CancelPost

func (h *Server) CancelPost(ctx context.Context, outboxID chat1.OutboxID) (err error)

func (*Server) CancelUploadTempFile

func (h *Server) CancelUploadTempFile(ctx context.Context, outboxID chat1.OutboxID) (err error)

func (*Server) ClearBotCommandsLocal

func (h *Server) ClearBotCommandsLocal(ctx context.Context, filter *chat1.ClearBotCommandsFilter) (res chat1.ClearBotCommandsLocalRes, err error)

func (*Server) ConfigureFileAttachmentDownloadLocal

func (h *Server) ConfigureFileAttachmentDownloadLocal(ctx context.Context, arg chat1.ConfigureFileAttachmentDownloadLocalArg) (err error)

func (*Server) DeleteConversationLocal

func (h *Server) DeleteConversationLocal(ctx context.Context, arg chat1.DeleteConversationLocalArg) (res chat1.DeleteConversationLocalRes, err error)

func (*Server) DismissJourneycard

func (h *Server) DismissJourneycard(ctx context.Context, arg chat1.DismissJourneycardArg) (err error)

func (*Server) DownloadAttachmentLocal

func (h *Server) DownloadAttachmentLocal(ctx context.Context, arg chat1.DownloadAttachmentLocalArg) (res chat1.DownloadAttachmentLocalRes, err error)

DownloadAttachmentLocal implements chat1.LocalInterface.DownloadAttachmentLocal.

func (*Server) DownloadFileAttachmentLocal

func (h *Server) DownloadFileAttachmentLocal(ctx context.Context, arg chat1.DownloadFileAttachmentLocalArg) (res chat1.DownloadFileAttachmentLocalRes, err error)

DownloadFileAttachmentLocal implements chat1.LocalInterface.DownloadFileAttachmentLocal.

func (*Server) EditBotMember

func (h *Server) EditBotMember(ctx context.Context, arg chat1.EditBotMemberArg) (err error)

func (*Server) FindConversationsLocal

func (h *Server) FindConversationsLocal(ctx context.Context,
	arg chat1.FindConversationsLocalArg) (res chat1.FindConversationsLocalRes, err error)

func (*Server) FindGeneralConvFromTeamID

func (h *Server) FindGeneralConvFromTeamID(ctx context.Context, teamID keybase1.TeamID) (res chat1.InboxUIItem, err error)

func (*Server) ForwardMessage

func (h *Server) ForwardMessage(ctx context.Context, arg chat1.ForwardMessageArg) (res chat1.PostLocalRes, err error)

func (*Server) ForwardMessageConvSearch

func (h *Server) ForwardMessageConvSearch(ctx context.Context, term string) (res []chat1.ConvSearchHit, err error)

func (*Server) ForwardMessageNonblock

func (h *Server) ForwardMessageNonblock(ctx context.Context, arg chat1.ForwardMessageNonblockArg) (res chat1.PostLocalNonblockRes, err error)

func (*Server) GenerateOutboxID

func (h *Server) GenerateOutboxID(ctx context.Context) (res chat1.OutboxID, err error)

func (*Server) GetAllResetConvMembers

func (h *Server) GetAllResetConvMembers(ctx context.Context) (res chat1.GetAllResetConvMembersRes, err error)

func (*Server) GetBotMemberSettings

func (h *Server) GetBotMemberSettings(ctx context.Context, arg chat1.GetBotMemberSettingsArg) (res keybase1.TeamBotSettings, err error)

func (*Server) GetChannelMembershipsLocal

func (h *Server) GetChannelMembershipsLocal(ctx context.Context, arg chat1.GetChannelMembershipsLocalArg) (res chat1.GetChannelMembershipsLocalRes, err error)

func (*Server) GetConversationForCLILocal

func (h *Server) GetConversationForCLILocal(ctx context.Context, arg chat1.GetConversationForCLILocalQuery) (res chat1.GetConversationForCLILocalRes, err error)

func (*Server) GetDefaultTeamChannelsLocal

func (h *Server) GetDefaultTeamChannelsLocal(ctx context.Context, teamID keybase1.TeamID) (res chat1.GetDefaultTeamChannelsLocalRes, err error)

func (*Server) GetGlobalAppNotificationSettingsLocal

func (h *Server) GetGlobalAppNotificationSettingsLocal(ctx context.Context) (res chat1.GlobalAppNotificationSettings, err error)

func (*Server) GetInboxAndUnboxLocal

func (h *Server) GetInboxAndUnboxLocal(ctx context.Context, arg chat1.GetInboxAndUnboxLocalArg) (res chat1.GetInboxAndUnboxLocalRes, err error)

GetInboxAndUnboxLocal implements keybase.chatLocal.getInboxAndUnboxLocal protocol.

func (*Server) GetInboxAndUnboxUILocal

func (h *Server) GetInboxAndUnboxUILocal(ctx context.Context, arg chat1.GetInboxAndUnboxUILocalArg) (res chat1.GetInboxAndUnboxUILocalRes, err error)

func (*Server) GetInboxNonblockLocal

func (h *Server) GetInboxNonblockLocal(ctx context.Context, arg chat1.GetInboxNonblockLocalArg) (res chat1.NonblockFetchRes, err error)

func (*Server) GetInboxSummaryForCLILocal

func (h *Server) GetInboxSummaryForCLILocal(ctx context.Context, arg chat1.GetInboxSummaryForCLILocalQuery) (res chat1.GetInboxSummaryForCLILocalRes, err error)

func (*Server) GetLastActiveAtLocal

func (h *Server) GetLastActiveAtLocal(ctx context.Context, arg chat1.GetLastActiveAtLocalArg) (lastActiveAt gregor1.Time, err error)

func (*Server) GetLastActiveAtMultiLocal

func (h *Server) GetLastActiveAtMultiLocal(ctx context.Context, arg chat1.GetLastActiveAtMultiLocalArg) (res map[keybase1.TeamID]gregor1.Time, err error)

func (*Server) GetLastActiveForTLF

func (h *Server) GetLastActiveForTLF(ctx context.Context, tlfIDStr chat1.TLFIDStr) (res chat1.LastActiveStatus, err error)

func (*Server) GetLastActiveForTeams

func (h *Server) GetLastActiveForTeams(ctx context.Context) (res chat1.LastActiveStatusAll, err error)

func (*Server) GetMessagesLocal

func (h *Server) GetMessagesLocal(ctx context.Context, arg chat1.GetMessagesLocalArg) (res chat1.GetMessagesLocalRes, err error)

func (*Server) GetMutualTeamsLocal

func (h *Server) GetMutualTeamsLocal(ctx context.Context, usernames []string) (res chat1.GetMutualTeamsLocalRes, err error)

func (*Server) GetNextAttachmentMessageLocal

func (h *Server) GetNextAttachmentMessageLocal(ctx context.Context,
	arg chat1.GetNextAttachmentMessageLocalArg) (res chat1.GetNextAttachmentMessageLocalRes, err error)

func (*Server) GetParticipants

func (h *Server) GetParticipants(ctx context.Context, convID chat1.ConversationID) (participants []chat1.ConversationLocalParticipant, err error)

func (*Server) GetRecentJoinsLocal

func (h *Server) GetRecentJoinsLocal(ctx context.Context, convID chat1.ConversationID) (numJoins int, err error)

func (*Server) GetStaticConfig

func (h *Server) GetStaticConfig(ctx context.Context) (res chat1.StaticConfig, err error)

func (*Server) GetTLFConversationsLocal

func (h *Server) GetTLFConversationsLocal(ctx context.Context, arg chat1.GetTLFConversationsLocalArg) (res chat1.GetTLFConversationsLocalRes, err error)

func (*Server) GetTeamRetentionLocal

func (h *Server) GetTeamRetentionLocal(ctx context.Context, teamID keybase1.TeamID) (res *chat1.RetentionPolicy, err error)

func (*Server) GetTeamRoleInConversation

func (h *Server) GetTeamRoleInConversation(ctx context.Context, arg chat1.GetTeamRoleInConversationArg) (res keybase1.TeamRole, err error)

func (*Server) GetThreadLocal

func (h *Server) GetThreadLocal(ctx context.Context, arg chat1.GetThreadLocalArg) (res chat1.GetThreadLocalRes, err error)

GetThreadLocal implements keybase.chatLocal.getThreadLocal protocol.

func (*Server) GetThreadNonblock

func (h *Server) GetThreadNonblock(ctx context.Context, arg chat1.GetThreadNonblockArg) (res chat1.NonblockFetchRes, err error)

func (*Server) GetUnfurlSettings

func (h *Server) GetUnfurlSettings(ctx context.Context) (res chat1.UnfurlSettingsDisplay, err error)

func (*Server) GetUnreadline

func (h *Server) GetUnreadline(ctx context.Context, arg chat1.GetUnreadlineArg) (res chat1.UnreadlineRes, err error)

func (*Server) GetUploadTempFile

func (h *Server) GetUploadTempFile(ctx context.Context, arg chat1.GetUploadTempFileArg) (res string, err error)

func (*Server) GetWelcomeMessage

func (h *Server) GetWelcomeMessage(ctx context.Context, teamID keybase1.TeamID) (res chat1.WelcomeMessageDisplay, err error)

func (*Server) IgnorePinnedMessage

func (h *Server) IgnorePinnedMessage(ctx context.Context, convID chat1.ConversationID) (err error)

func (*Server) JoinConversationByIDLocal

func (h *Server) JoinConversationByIDLocal(ctx context.Context, convID chat1.ConversationID) (res chat1.JoinLeaveConversationLocalRes, err error)

func (*Server) JoinConversationLocal

func (h *Server) JoinConversationLocal(ctx context.Context, arg chat1.JoinConversationLocalArg) (res chat1.JoinLeaveConversationLocalRes, err error)

func (*Server) LeaveConversationLocal

func (h *Server) LeaveConversationLocal(ctx context.Context, convID chat1.ConversationID) (res chat1.JoinLeaveConversationLocalRes, err error)

func (*Server) ListBotCommandsLocal

func (h *Server) ListBotCommandsLocal(ctx context.Context, convID chat1.ConversationID) (res chat1.ListBotCommandsLocalRes, err error)

func (*Server) ListPublicBotCommandsLocal

func (h *Server) ListPublicBotCommandsLocal(ctx context.Context, username string) (res chat1.ListBotCommandsLocalRes, err error)

func (*Server) LoadFlip

func (h *Server) LoadFlip(ctx context.Context, arg chat1.LoadFlipArg) (res chat1.LoadFlipRes, err error)

func (*Server) LoadGallery

func (h *Server) LoadGallery(ctx context.Context, arg chat1.LoadGalleryArg) (res chat1.LoadGalleryRes, err error)

func (*Server) LocationUpdate

func (h *Server) LocationUpdate(ctx context.Context, coord chat1.Coordinate) (err error)

func (*Server) MakeAudioPreview

func (h *Server) MakeAudioPreview(ctx context.Context, arg chat1.MakeAudioPreviewArg) (res chat1.MakePreviewRes, err error)

func (*Server) MakePreview

func (h *Server) MakePreview(ctx context.Context, arg chat1.MakePreviewArg) (res chat1.MakePreviewRes, err error)

MakePreview implements chat1.LocalInterface.MakePreview.

func (*Server) MakeUploadTempFile

func (h *Server) MakeUploadTempFile(ctx context.Context, arg chat1.MakeUploadTempFileArg) (res string, err error)

func (*Server) MarkAsReadLocal

func (h *Server) MarkAsReadLocal(ctx context.Context, arg chat1.MarkAsReadLocalArg) (res chat1.MarkAsReadLocalRes, err error)

func (*Server) MarkTLFAsReadLocal

func (h *Server) MarkTLFAsReadLocal(ctx context.Context, arg chat1.MarkTLFAsReadLocalArg) (res chat1.MarkTLFAsReadLocalRes, err error)

func (*Server) NewConversationLocal

func (h *Server) NewConversationLocal(ctx context.Context, arg chat1.NewConversationLocalArg) (res chat1.NewConversationLocalRes, err error)

NewConversationLocal implements keybase.chatLocal.newConversationLocal protocol. Create a new conversation. Or in the case of CHAT, create-or-get a conversation.

func (*Server) NewConversationsLocal

func (h *Server) NewConversationsLocal(ctx context.Context, arg chat1.NewConversationsLocalArg) (res chat1.NewConversationsLocalRes, err error)

func (*Server) PinMessage

func (h *Server) PinMessage(ctx context.Context, arg chat1.PinMessageArg) (res chat1.PinMessageRes, err error)

func (*Server) PostDeleteHistoryByAge

func (h *Server) PostDeleteHistoryByAge(ctx context.Context, arg chat1.PostDeleteHistoryByAgeArg) (res chat1.PostLocalRes, err error)

func (*Server) PostDeleteHistoryThrough

func (h *Server) PostDeleteHistoryThrough(ctx context.Context, arg chat1.PostDeleteHistoryThroughArg) (res chat1.PostLocalRes, err error)

func (*Server) PostDeleteHistoryUpto

func (h *Server) PostDeleteHistoryUpto(ctx context.Context, arg chat1.PostDeleteHistoryUptoArg) (res chat1.PostLocalRes, err error)

func (*Server) PostDeleteNonblock

func (h *Server) PostDeleteNonblock(ctx context.Context, arg chat1.PostDeleteNonblockArg) (chat1.PostLocalNonblockRes, error)

func (*Server) PostEditNonblock

func (h *Server) PostEditNonblock(ctx context.Context, arg chat1.PostEditNonblockArg) (res chat1.PostLocalNonblockRes, err error)

func (*Server) PostFileAttachmentLocal

func (h *Server) PostFileAttachmentLocal(ctx context.Context, arg chat1.PostFileAttachmentLocalArg) (res chat1.PostLocalRes, err error)

PostFileAttachmentLocal implements chat1.LocalInterface.PostFileAttachmentLocal.

func (*Server) PostFileAttachmentLocalNonblock

func (h *Server) PostFileAttachmentLocalNonblock(ctx context.Context,
	arg chat1.PostFileAttachmentLocalNonblockArg) (res chat1.PostLocalNonblockRes, err error)

func (*Server) PostHeadline

func (h *Server) PostHeadline(ctx context.Context, arg chat1.PostHeadlineArg) (chat1.PostLocalRes, error)

func (*Server) PostHeadlineNonblock

func (h *Server) PostHeadlineNonblock(ctx context.Context, arg chat1.PostHeadlineNonblockArg) (chat1.PostLocalNonblockRes, error)

func (*Server) PostLocal

func (h *Server) PostLocal(ctx context.Context, arg chat1.PostLocalArg) (res chat1.PostLocalRes, err error)

PostLocal implements keybase.chatLocal.postLocal protocol.

func (*Server) PostLocalNonblock

func (h *Server) PostLocalNonblock(ctx context.Context, arg chat1.PostLocalNonblockArg) (res chat1.PostLocalNonblockRes, err error)

func (*Server) PostMetadata

func (h *Server) PostMetadata(ctx context.Context, arg chat1.PostMetadataArg) (chat1.PostLocalRes, error)

func (*Server) PostMetadataNonblock

func (h *Server) PostMetadataNonblock(ctx context.Context, arg chat1.PostMetadataNonblockArg) (chat1.PostLocalNonblockRes, error)

func (*Server) PostReactionNonblock

func (h *Server) PostReactionNonblock(ctx context.Context, arg chat1.PostReactionNonblockArg) (res chat1.PostLocalNonblockRes, err error)

func (*Server) PostTextNonblock

func (h *Server) PostTextNonblock(ctx context.Context, arg chat1.PostTextNonblockArg) (res chat1.PostLocalNonblockRes, err error)

func (*Server) PreviewConversationByIDLocal

func (h *Server) PreviewConversationByIDLocal(ctx context.Context, convID chat1.ConversationID) (res chat1.PreviewConversationLocalRes, err error)

func (*Server) ProfileChatSearch

func (h *Server) ProfileChatSearch(ctx context.Context, identifyBehavior keybase1.TLFIdentifyBehavior) (
	res map[chat1.ConvIDStr]chat1.ProfileSearchConvStats, err error)

func (*Server) PutReacjiSkinTone

func (h *Server) PutReacjiSkinTone(ctx context.Context, skinTone keybase1.ReacjiSkinTone) (res keybase1.UserReacjis, err error)

func (*Server) RefreshParticipants

func (h *Server) RefreshParticipants(ctx context.Context, convID chat1.ConversationID) (err error)

func (*Server) RemoveBotMember

func (h *Server) RemoveBotMember(ctx context.Context, arg chat1.RemoveBotMemberArg) (err error)

func (*Server) RemoveEmoji

func (h *Server) RemoveEmoji(ctx context.Context, arg chat1.RemoveEmojiArg) (res chat1.RemoveEmojiRes, err error)

func (*Server) RemoveFromConversationLocal

func (h *Server) RemoveFromConversationLocal(ctx context.Context, arg chat1.RemoveFromConversationLocalArg) (res chat1.RemoveFromConversationLocalRes, err error)

func (*Server) RequestInboxLayout

func (h *Server) RequestInboxLayout(ctx context.Context, reselectMode chat1.InboxLayoutReselectMode) (err error)

func (*Server) RequestInboxSmallIncrease

func (h *Server) RequestInboxSmallIncrease(ctx context.Context) (err error)

func (*Server) RequestInboxSmallReset

func (h *Server) RequestInboxSmallReset(ctx context.Context) (err error)

func (*Server) RequestInboxUnbox

func (h *Server) RequestInboxUnbox(ctx context.Context, convIDs []chat1.ConversationID) (err error)

func (*Server) ResolveMaybeMention

func (h *Server) ResolveMaybeMention(ctx context.Context, mention chat1.MaybeMention) (err error)

func (*Server) ResolveUnfurlPrompt

func (h *Server) ResolveUnfurlPrompt(ctx context.Context, arg chat1.ResolveUnfurlPromptArg) (err error)

func (*Server) RetryPost

func (h *Server) RetryPost(ctx context.Context, arg chat1.RetryPostArg) (err error)

func (*Server) SaveUnfurlSettings

func (h *Server) SaveUnfurlSettings(ctx context.Context, arg chat1.SaveUnfurlSettingsArg) (err error)

func (*Server) SearchInbox

func (h *Server) SearchInbox(ctx context.Context, arg chat1.SearchInboxArg) (res chat1.SearchInboxRes, err error)

func (*Server) SearchRegexp

func (h *Server) SearchRegexp(ctx context.Context, arg chat1.SearchRegexpArg) (res chat1.SearchRegexpRes, err error)

func (*Server) SetBotMemberSettings

func (h *Server) SetBotMemberSettings(ctx context.Context, arg chat1.SetBotMemberSettingsArg) (err error)

func (*Server) SetConvMinWriterRoleLocal

func (h *Server) SetConvMinWriterRoleLocal(ctx context.Context, arg chat1.SetConvMinWriterRoleLocalArg) (err error)

func (*Server) SetConvRetentionLocal

func (h *Server) SetConvRetentionLocal(ctx context.Context, arg chat1.SetConvRetentionLocalArg) (err error)

func (*Server) SetConversationStatusLocal

func (h *Server) SetConversationStatusLocal(ctx context.Context, arg chat1.SetConversationStatusLocalArg) (res chat1.SetConversationStatusLocalRes, err error)

func (*Server) SetDefaultTeamChannelsLocal

func (h *Server) SetDefaultTeamChannelsLocal(ctx context.Context, arg chat1.SetDefaultTeamChannelsLocalArg) (res chat1.SetDefaultTeamChannelsLocalRes, err error)

func (*Server) SetGlobalAppNotificationSettingsLocal

func (h *Server) SetGlobalAppNotificationSettingsLocal(ctx context.Context,
	strSettings map[string]bool) (err error)

func (*Server) SetTeamRetentionLocal

func (h *Server) SetTeamRetentionLocal(ctx context.Context, arg chat1.SetTeamRetentionLocalArg) (err error)

func (*Server) SetWelcomeMessage

func (h *Server) SetWelcomeMessage(ctx context.Context, arg chat1.SetWelcomeMessageArg) (err error)

func (*Server) SimpleSearchInboxConvNames

func (h *Server) SimpleSearchInboxConvNames(ctx context.Context, query string) (res []chat1.SimpleSearchInboxConvNamesHit, err error)

func (*Server) TeamIDFromTLFName

func (h *Server) TeamIDFromTLFName(ctx context.Context, arg chat1.TeamIDFromTLFNameArg) (res keybase1.TeamID, err error)

func (*Server) ToggleEmojiAnimations

func (h *Server) ToggleEmojiAnimations(ctx context.Context, enabled bool) (err error)

func (*Server) ToggleMessageCollapse

func (h *Server) ToggleMessageCollapse(ctx context.Context, arg chat1.ToggleMessageCollapseArg) (err error)

func (*Server) TrackGiphySelect

func (h *Server) TrackGiphySelect(ctx context.Context, arg chat1.TrackGiphySelectArg) (res chat1.TrackGiphySelectRes, err error)

func (*Server) UnboxMobilePushNotification

func (h *Server) UnboxMobilePushNotification(ctx context.Context, arg chat1.UnboxMobilePushNotificationArg) (res string, err error)

func (*Server) UnpinMessage

func (h *Server) UnpinMessage(ctx context.Context, convID chat1.ConversationID) (res chat1.PinMessageRes, err error)

func (*Server) UpdateTyping

func (h *Server) UpdateTyping(ctx context.Context, arg chat1.UpdateTypingArg) (err error)

func (*Server) UpdateUnsentText

func (h *Server) UpdateUnsentText(ctx context.Context, arg chat1.UpdateUnsentTextArg) (err error)

func (*Server) UpgradeKBFSConversationToImpteam

func (h *Server) UpgradeKBFSConversationToImpteam(ctx context.Context, convID chat1.ConversationID) (err error)

func (*Server) UserEmojis

func (h *Server) UserEmojis(ctx context.Context, arg chat1.UserEmojisArg) (res chat1.UserEmojiRes, err error)

type SimpleIdentifyNotifier

type SimpleIdentifyNotifier struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewSimpleIdentifyNotifier

func NewSimpleIdentifyNotifier(g *globals.Context) *SimpleIdentifyNotifier

func (*SimpleIdentifyNotifier) Reset

func (d *SimpleIdentifyNotifier) Reset()

func (*SimpleIdentifyNotifier) ResetOnGUIConnect

func (d *SimpleIdentifyNotifier) ResetOnGUIConnect()

func (*SimpleIdentifyNotifier) Send

type Syncer

type Syncer struct {
	globals.Contextified
	utils.DebugLabeler
	sync.Mutex
	// contains filtered or unexported fields
}

func NewSyncer

func NewSyncer(g *globals.Context) *Syncer

func (*Syncer) Connected

func (s *Syncer) Connected(ctx context.Context, cli chat1.RemoteInterface, uid gregor1.UID,
	syncRes *chat1.SyncChatRes) (err error)

func (*Syncer) Disconnected

func (s *Syncer) Disconnected(ctx context.Context)

func (*Syncer) GetSelectedConversation

func (s *Syncer) GetSelectedConversation() chat1.ConversationID

func (*Syncer) IsConnected

func (s *Syncer) IsConnected(ctx context.Context) bool

func (*Syncer) IsSelectedConversation

func (s *Syncer) IsSelectedConversation(convID chat1.ConversationID) bool

func (*Syncer) RegisterOfflinable

func (s *Syncer) RegisterOfflinable(offlinable types.Offlinable)

func (*Syncer) SelectConversation

func (s *Syncer) SelectConversation(ctx context.Context, convID chat1.ConversationID)

func (*Syncer) SendChatStaleNotifications

func (s *Syncer) SendChatStaleNotifications(ctx context.Context, uid gregor1.UID,
	updates []chat1.ConversationStaleUpdate, immediate bool)

func (*Syncer) SetClock

func (s *Syncer) SetClock(clock clockwork.Clock)

func (*Syncer) Shutdown

func (s *Syncer) Shutdown()

func (*Syncer) Sync

func (s *Syncer) Sync(ctx context.Context, cli chat1.RemoteInterface, uid gregor1.UID,
	syncRes *chat1.SyncChatRes) (err error)

type TeamChannelSource

type TeamChannelSource struct {
	sync.Mutex
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewTeamChannelSource

func NewTeamChannelSource(g *globals.Context) *TeamChannelSource

func (*TeamChannelSource) GetChannelTopicName

func (c *TeamChannelSource) GetChannelTopicName(ctx context.Context, uid gregor1.UID,
	tlfID chat1.TLFID, topicType chat1.TopicType, convID chat1.ConversationID) (res string, err error)

func (*TeamChannelSource) GetChannelsFull

func (c *TeamChannelSource) GetChannelsFull(ctx context.Context, uid gregor1.UID,
	tlfID chat1.TLFID, topicType chat1.TopicType) (res []chat1.ConversationLocal, err error)

func (*TeamChannelSource) GetChannelsTopicName

func (c *TeamChannelSource) GetChannelsTopicName(ctx context.Context, uid gregor1.UID,
	tlfID chat1.TLFID, topicType chat1.TopicType) (res []chat1.ChannelNameMention, err error)

func (*TeamChannelSource) GetLastActiveAt

func (c *TeamChannelSource) GetLastActiveAt(ctx context.Context, teamID keybase1.TeamID, uid gregor1.UID,
	remoteClient chat1.RemoteInterface) (res gregor1.Time, err error)

func (*TeamChannelSource) GetLastActiveForTLF

func (c *TeamChannelSource) GetLastActiveForTLF(ctx context.Context, uid gregor1.UID,
	tlfID chat1.TLFID, topicType chat1.TopicType) (res gregor1.Time, err error)

func (*TeamChannelSource) GetLastActiveForTeams

func (c *TeamChannelSource) GetLastActiveForTeams(ctx context.Context, uid gregor1.UID, topicType chat1.TopicType) (
	res chat1.LastActiveTimeAll, err error)

func (*TeamChannelSource) GetRecentJoins

func (c *TeamChannelSource) GetRecentJoins(ctx context.Context, convID chat1.ConversationID, remoteClient chat1.RemoteInterface) (res int, err error)

func (*TeamChannelSource) OnDbNuke

func (c *TeamChannelSource) OnDbNuke(mctx libkb.MetaContext) error

func (*TeamChannelSource) OnLogout

func (c *TeamChannelSource) OnLogout(mctx libkb.MetaContext) error

type TeamLoader

type TeamLoader struct {
	libkb.Contextified
	utils.DebugLabeler
}

func NewTeamLoader

func NewTeamLoader(g *libkb.GlobalContext) *TeamLoader

type TeamMentionLoader

type TeamMentionLoader struct {
	sync.Mutex
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewTeamMentionLoader

func NewTeamMentionLoader(g *globals.Context) *TeamMentionLoader

func (*TeamMentionLoader) IsTeamMention

func (l *TeamMentionLoader) IsTeamMention(ctx context.Context, uid gregor1.UID,
	maybeMention chat1.MaybeMention, knownTeamMentions []chat1.KnownTeamMention) bool

func (*TeamMentionLoader) LoadTeamMention

func (l *TeamMentionLoader) LoadTeamMention(ctx context.Context, uid gregor1.UID,
	maybeMention chat1.MaybeMention, knownTeamMentions []chat1.KnownTeamMention, forceRemote bool) (err error)

func (*TeamMentionLoader) Start

func (l *TeamMentionLoader) Start(ctx context.Context, uid gregor1.UID)

func (*TeamMentionLoader) Stop

func (l *TeamMentionLoader) Stop(ctx context.Context) chan struct{}

type TeamsNameInfoSource

type TeamsNameInfoSource struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewTeamsNameInfoSource

func NewTeamsNameInfoSource(g *globals.Context) *TeamsNameInfoSource

func (*TeamsNameInfoSource) AllCryptKeys

func (t *TeamsNameInfoSource) AllCryptKeys(ctx context.Context, name string, public bool) (res types.AllCryptKeys, err error)

func (*TeamsNameInfoSource) DecryptionKey

func (t *TeamsNameInfoSource) DecryptionKey(ctx context.Context, name string, teamID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool,
	keyGeneration int, kbfsEncrypted bool, botUID *gregor1.UID) (res types.CryptKey, err error)

func (*TeamsNameInfoSource) EncryptionKey

func (t *TeamsNameInfoSource) EncryptionKey(ctx context.Context, name string, teamID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool, botUID *gregor1.UID) (res types.CryptKey, ni types.NameInfo, err error)

func (*TeamsNameInfoSource) EphemeralDecryptionKey

func (t *TeamsNameInfoSource) EphemeralDecryptionKey(mctx libkb.MetaContext, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool, botUID *gregor1.UID,
	generation keybase1.EkGeneration, contentCtime *gregor1.Time) (ek types.EphemeralCryptKey, err error)

func (*TeamsNameInfoSource) EphemeralEncryptionKey

func (t *TeamsNameInfoSource) EphemeralEncryptionKey(mctx libkb.MetaContext, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool, botUID *gregor1.UID) (ek types.EphemeralCryptKey, err error)

func (*TeamsNameInfoSource) LookupID

func (t *TeamsNameInfoSource) LookupID(ctx context.Context, name string, public bool) (res types.NameInfo, err error)

func (*TeamsNameInfoSource) LookupName

func (t *TeamsNameInfoSource) LookupName(ctx context.Context, tlfID chat1.TLFID, public bool,
	unverifiedTLFName string) (res types.NameInfo, err error)

func (*TeamsNameInfoSource) ShouldPairwiseMAC

func (t *TeamsNameInfoSource) ShouldPairwiseMAC(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (bool, []keybase1.KID, error)

func (*TeamsNameInfoSource) TeamBotSettings

func (t *TeamsNameInfoSource) TeamBotSettings(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (map[keybase1.UserVersion]keybase1.TeamBotSettings, error)

type TransientUnboxingError

type TransientUnboxingError struct {
	// contains filtered or unexported fields
}

func (TransientUnboxingError) Error

func (e TransientUnboxingError) Error() string

func (TransientUnboxingError) ExportType

func (TransientUnboxingError) Inner

func (e TransientUnboxingError) Inner() error

func (TransientUnboxingError) InternalError

func (e TransientUnboxingError) InternalError() string

func (TransientUnboxingError) IsCritical

func (e TransientUnboxingError) IsCritical() bool

func (TransientUnboxingError) IsPermanent

func (e TransientUnboxingError) IsPermanent() bool

func (TransientUnboxingError) ToStatus

func (e TransientUnboxingError) ToStatus() (status keybase1.Status)

func (TransientUnboxingError) VersionKind

func (e TransientUnboxingError) VersionKind() chat1.VersionKind

func (TransientUnboxingError) VersionNumber

func (e TransientUnboxingError) VersionNumber() int

type TypingMonitor

type TypingMonitor struct {
	globals.Contextified
	sync.Mutex
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewTypingMonitor

func NewTypingMonitor(g *globals.Context) *TypingMonitor

func (*TypingMonitor) SetClock

func (t *TypingMonitor) SetClock(clock clockwork.Clock)

func (*TypingMonitor) SetTimeout

func (t *TypingMonitor) SetTimeout(timeout time.Duration)

func (*TypingMonitor) Update

func (t *TypingMonitor) Update(ctx context.Context, typer chat1.TyperInfo, convID chat1.ConversationID,
	teamType chat1.TeamType, typing bool)

type UIInboxLoader

type UIInboxLoader struct {
	globals.Contextified
	utils.DebugLabeler
	sync.Mutex
	// contains filtered or unexported fields
}

func NewUIInboxLoader

func NewUIInboxLoader(g *globals.Context) *UIInboxLoader

func (*UIInboxLoader) LoadNonblock

func (h *UIInboxLoader) LoadNonblock(ctx context.Context, query *chat1.GetInboxLocalQuery,
	maxUnbox *int, skipUnverified bool) (err error)

func (*UIInboxLoader) Query

func (*UIInboxLoader) Start

func (h *UIInboxLoader) Start(ctx context.Context, uid gregor1.UID)

func (*UIInboxLoader) Stop

func (h *UIInboxLoader) Stop(ctx context.Context) chan struct{}

func (*UIInboxLoader) UpdateConvs

func (h *UIInboxLoader) UpdateConvs(ctx context.Context, convIDs []chat1.ConversationID) (err error)

func (*UIInboxLoader) UpdateLayout

func (h *UIInboxLoader) UpdateLayout(ctx context.Context, reselectMode chat1.InboxLayoutReselectMode,
	reason string)

func (*UIInboxLoader) UpdateLayoutFromNewMessage

func (h *UIInboxLoader) UpdateLayoutFromNewMessage(ctx context.Context, conv types.RemoteConversation)

func (*UIInboxLoader) UpdateLayoutFromSmallIncrease

func (h *UIInboxLoader) UpdateLayoutFromSmallIncrease(ctx context.Context)

func (*UIInboxLoader) UpdateLayoutFromSmallReset

func (h *UIInboxLoader) UpdateLayoutFromSmallReset(ctx context.Context)

func (*UIInboxLoader) UpdateLayoutFromSubteamRename

func (h *UIInboxLoader) UpdateLayoutFromSubteamRename(ctx context.Context, convs []types.RemoteConversation)

type UISource

type UISource interface {
	GetChatUI(sessionID int) libkb.ChatUI
	GetStreamUICli() *keybase1.StreamUiClient
}

type UIThreadLoader

type UIThreadLoader struct {
	globals.Contextified
	utils.DebugLabeler
	sync.Mutex
	// contains filtered or unexported fields
}

func NewUIThreadLoader

func NewUIThreadLoader(g *globals.Context, ri func() chat1.RemoteInterface) *UIThreadLoader

func (*UIThreadLoader) Connected

func (t *UIThreadLoader) Connected(ctx context.Context)

func (*UIThreadLoader) Disconnected

func (t *UIThreadLoader) Disconnected(ctx context.Context)

func (*UIThreadLoader) IsOffline

func (t *UIThreadLoader) IsOffline(ctx context.Context) bool

func (*UIThreadLoader) Load

func (t *UIThreadLoader) Load(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID,
	reason chat1.GetThreadReason, knownRemotes []string, query *chat1.GetThreadQuery, pagination *chat1.Pagination) (res chat1.ThreadView, err error)

func (*UIThreadLoader) LoadNonblock

func (t *UIThreadLoader) LoadNonblock(ctx context.Context, chatUI libkb.ChatUI, uid gregor1.UID,
	convID chat1.ConversationID, reason chat1.GetThreadReason, pgmode chat1.GetThreadNonblockPgMode,
	cbmode chat1.GetThreadNonblockCbMode, knownRemotes []string, query *chat1.GetThreadQuery,
	uipagination *chat1.UIPagination) (err error)

func (*UIThreadLoader) SetRemoteInterface

func (t *UIThreadLoader) SetRemoteInterface(ri func() chat1.RemoteInterface)

type UnknownTLFNameError

type UnknownTLFNameError struct {
	// contains filtered or unexported fields
}

func NewUnknownTLFNameError

func NewUnknownTLFNameError(name string) UnknownTLFNameError

func (UnknownTLFNameError) Error

func (e UnknownTLFNameError) Error() string

type VersionError

type VersionError struct {
	Kind     string
	Version  int
	Critical bool
}

func NewBodyVersionError

func NewBodyVersionError(version chat1.BodyPlaintextVersion, defaultBody chat1.BodyPlaintextUnsupported) VersionError

func NewHeaderVersionError

func NewHeaderVersionError(version chat1.HeaderPlaintextVersion,
	defaultHeader chat1.HeaderPlaintextUnsupported) VersionError

func NewMessageBoxedVersionError

func NewMessageBoxedVersionError(version chat1.MessageBoxedVersion) VersionError

func (VersionError) Error

func (e VersionError) Error() string

func (VersionError) ExportType

func (VersionError) IsCritical

func (e VersionError) IsCritical() bool

func (VersionError) VersionKind

func (e VersionError) VersionKind() chat1.VersionKind

func (VersionError) VersionNumber

func (e VersionError) VersionNumber() int

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL