SYMBOL INDEX (235 symbols across 46 files) FILE: db/sql/migration003.sql function delete_expired_messages (line 1) | CREATE FUNCTION delete_expired_messages() RETURNS void AS $$ FILE: db/sql/table01_rooms.sql type rooms (line 1) | CREATE TABLE rooms ( FILE: db/sql/table02_messages.sql type messages (line 1) | CREATE TABLE messages ( FILE: gzip.go type gzipResponseWriter (line 14) | type gzipResponseWriter struct method Write (line 21) | func (w gzipResponseWriter) Write(b []byte) (int, error) { function inAnyStr (line 25) | func inAnyStr(s string, container []string) bool { function gzipHandler (line 34) | func gzipHandler(h http.Handler) http.Handler { FILE: json.go constant contentTypeJSON (line 14) | contentTypeJSON = "application/json; charset=utf-8" function WriteError (line 16) | func WriteError(w http.ResponseWriter, errStr string, secretErr error) e... function WriteErrorStatus (line 20) | func WriteErrorStatus(w http.ResponseWriter, errStr string, secretErr er... function WSWriteError (line 32) | func WSWriteError(wsConn *websocket.Conn, errStr string, secretErr error... FILE: leapchat.go function init (line 17) | func init() { function main (line 27) | func main() { FILE: messages.go type Message (line 12) | type Message type OutgoingPayload (line 14) | type OutgoingPayload struct type FromServer (line 19) | type FromServer struct type ToServer (line 23) | type ToServer struct type IncomingPayload (line 28) | type IncomingPayload struct function WSMessagesHandler (line 33) | func WSMessagesHandler(rooms *RoomManager) func(w http.ResponseWriter, r... function messageReader (line 51) | func messageReader(room *Room, client *Client) { FILE: miniware/miniware.go constant MINILOCK_ID_KEY (line 20) | MINILOCK_ID_KEY = "minilock_id" constant MINILOCK_KEYPAIR_KEY (line 21) | MINILOCK_KEYPAIR_KEY = "minilock_keypair" constant WEBSOCKET_CONNECTION (line 22) | WEBSOCKET_CONNECTION = "websocket_connection" constant AuthError (line 24) | AuthError = "Error authorizing you" type Mapper (line 32) | type Mapper struct method GetMinilockID (line 41) | func (m *Mapper) GetMinilockID(authToken string) (string, error) { method SetMinilockID (line 52) | func (m *Mapper) SetMinilockID(authToken, mID string) error { function NewMapper (line 37) | func NewMapper() *Mapper { function Auth (line 78) | func Auth(h http.Handler, m *Mapper) func(w http.ResponseWriter, req *ht... function GetMinilockID (line 160) | func GetMinilockID(req *http.Request) (string, error) { function GetWebsocketConn (line 169) | func GetWebsocketConn(req *http.Request) (*websocket.Conn, error) { function writeWSError (line 178) | func writeWSError(wsConn *websocket.Conn, errStr string) error { function writeError (line 186) | func writeError(w http.ResponseWriter, errStr string, statusCode int) { FILE: pg_types.go type PGClient (line 18) | type PGClient struct method Post (line 28) | func (cl *PGClient) Post(urlSuffix string, payload interface{}) (*http... method PostWanted (line 49) | func (cl *PGClient) PostWanted(urlSuffix string, payload interface{}, ... method Get (line 69) | func (cl *PGClient) Get(urlSuffix string) (*http.Response, error) { method Delete (line 80) | func (cl *PGClient) Delete(urlSuffix string) (*http.Response, error) { method GetInto (line 91) | func (cl *PGClient) GetInto(urlSuffix string, respobj interface{}) err... function NewPGClient (line 22) | func NewPGClient(baseURL string) *PGClient { type PGRoom (line 113) | type PGRoom struct method Create (line 117) | func (room PGRoom) Create(cl *PGClient) error { type PGMessage (line 121) | type PGMessage struct method MarshalJSON (line 132) | func (msg *PGMessage) MarshalJSON() ([]byte, error) { type pgPostMessage (line 130) | type pgPostMessage type PGMessages (line 139) | type PGMessages method Create (line 141) | func (msgs PGMessages) Create(pgClient *PGClient) error { FILE: room.go constant POSTGREST_BASE_URL (line 17) | POSTGREST_BASE_URL = "http://localhost:3000" type RoomManager (line 27) | type RoomManager struct method GetRoom (line 55) | func (rm *RoomManager) GetRoom(roomID string) *Room { function NewRoomManager (line 34) | func NewRoomManager(pgClient *PGClient) *RoomManager { type Room (line 67) | type Room struct method GetMessages (line 85) | func (r *Room) GetMessages() ([]Message, error) { method AddMessages (line 112) | func (r *Room) AddMessages(msgs []Message, ttlSecs *int) error { method AddClient (line 149) | func (r *Room) AddClient(c *Client) { method RemoveClient (line 156) | func (r *Room) RemoveClient(c *Client) { method BroadcastMessages (line 172) | func (r *Room) BroadcastMessages(sender *Client, msgs ...Message) { method DeleteAllMessages (line 186) | func (r *Room) DeleteAllMessages() error { method BroadcastDeleteSignal (line 205) | func (r *Room) BroadcastDeleteSignal() { function NewRoom (line 76) | func NewRoom(roomID string, pgClient *PGClient) *Room { function byteaToBytes (line 126) | func byteaToBytes(hexdata string) ([]byte, error) { type Client (line 219) | type Client struct method SendMessages (line 226) | func (c *Client) SendMessages(msgs ...Message) error { method SendDeleteSignal (line 247) | func (c *Client) SendDeleteSignal() error { method SendError (line 273) | func (c *Client) SendError(errStr string, secretErr error) error { FILE: room_test.go function TestRoomManager (line 11) | func TestRoomManager(t *testing.T) { function TestRoomMessages (line 33) | func TestRoomMessages(t *testing.T) { function TestRoomClients (line 77) | func TestRoomClients(t *testing.T) { function TestRoomBroadcastMessages (line 109) | func TestRoomBroadcastMessages(t *testing.T) {} FILE: server.go constant MINILOCK_ID_KEY (line 28) | MINILOCK_ID_KEY = "minilock_id" function NewRouter (line 31) | func NewRouter(m *miniware.Mapper) *mux.Router { function NewServer (line 49) | func NewServer(m *miniware.Mapper, httpAddr string) *http.Server { function ProductionServer (line 61) | func ProductionServer(srv *http.Server, httpsAddr, domain string, manage... function Login (line 74) | func Login(m *miniware.Mapper, pgClient *PGClient) func(w http.ResponseW... function parseMinilockID (line 124) | func parseMinilockID(req *http.Request) (string, *taber.Keys, error) { function redirectToHTTPS (line 136) | func redirectToHTTPS(httpAddr, httpsPort, domain string, manager *autoce... function getAutocertManager (line 155) | func getAutocertManager(domain string) *autocert.Manager { FILE: server_test.go function TestParseMinilockID (line 12) | func TestParseMinilockID(t *testing.T) { FILE: src/components/App.js class App (line 19) | class App extends Component { method constructor (line 20) | constructor(props) { method componentDidMount (line 36) | componentDidMount() { method componentDidUpdate (line 41) | componentDidUpdate(prevProps, prevState) { method connectIfNeeded (line 45) | connectIfNeeded() { method createDeviceSession (line 59) | createDeviceSession(passphrase) { method onInitConnection (line 63) | onInitConnection(pincode='') { method render (line 82) | render() { FILE: src/components/chat/ChatRoom.js class ChatRoom (line 3) | class ChatRoom extends Component { method onSelectRoom (line 4) | onSelectRoom(){ method render (line 9) | render(){ FILE: src/components/chat/Message.js class Message (line 5) | class Message extends Component { method render (line 7) | render() { FILE: src/components/chat/MessageBox.js class MessageBox (line 8) | class MessageBox extends Component { method constructor (line 9) | constructor(props){ method render (line 35) | render(){ FILE: src/components/chat/MessageForm.js class MessageForm (line 30) | class MessageForm extends Component { method constructor (line 31) | constructor(props) { method componentDidMount (line 37) | componentDidMount() { method componentDidUpdate (line 41) | componentDidUpdate() { method resolveFocus (line 45) | resolveFocus() { method isPayloadValid (line 89) | isPayloadValid(message) { method render (line 143) | render() { FILE: src/components/chat/MessageList.js class MessageList (line 6) | class MessageList extends Component { method shouldComponentUpdate (line 8) | shouldComponentUpdate(nextProps, nextState) { method componentDidUpdate (line 22) | componentDidUpdate(){ method render (line 26) | render() { FILE: src/components/general/Throbber.js class Throbber (line 15) | class Throbber extends Component { method componentDidMount (line 16) | componentDidMount(){ method animateLoadingDots (line 24) | animateLoadingDots(){ method render (line 50) | render(){ FILE: src/components/layout/ChatRoom.js class ChatRoom (line 3) | class ChatRoom extends Component { method render (line 4) | render(){ FILE: src/components/modals/PincodeModal.js class PincodeModal (line 8) | class PincodeModal extends PureComponent { method componentDidMount (line 10) | componentDidMount() { method componentDidUpdate (line 14) | componentDidUpdate(){ method isPincodeValid (line 26) | isPincodeValid(pincode) { method render (line 51) | render() { FILE: src/components/modals/SearchModal.js class SearchModal (line 21) | class SearchModal extends Component { method constructor (line 22) | constructor(props) { method indexAllMessages (line 36) | indexAllMessages(messages) { method render (line 61) | render() { FILE: src/components/modals/Username.js constant MAX_USERNAME_LENGTH (line 11) | const MAX_USERNAME_LENGTH = 45; FILE: src/constants/messaging.js constant SERVER_ERROR_PREFIX (line 1) | const SERVER_ERROR_PREFIX = "Error from server: "; constant AUTH_ERROR (line 2) | const AUTH_ERROR = "Error authorizing you"; constant ON_CLOSE_RECONNECT_MESSAGE (line 3) | const ON_CLOSE_RECONNECT_MESSAGE = "Message WebSocket closed. Reconnecti... constant ONE_MINUTE (line 4) | const ONE_MINUTE = 60 * 1000; constant USER_STATUS_DELAY_MS (line 6) | const USER_STATUS_DELAY_MS = 10 * ONE_MINUTE; constant PARANOID_USERNAME (line 8) | const PARANOID_USERNAME = ' '; constant USERNAME_KEY (line 9) | const USERNAME_KEY = 'username'; FILE: src/data/minishare.js function randomIntsInRange (line 8) | function randomIntsInRange(min, max, numInts){ function genPassphrase (line 24) | function genPassphrase(numWords=25){ FILE: src/data/username.js function getRandomAdjective (line 3) | function getRandomAdjective(){ function getRandomNoun (line 7) | function getRandomNoun(){ function generateRandomUsername (line 11) | function generateRandomUsername(){ FILE: src/store/actions/alertActions.js constant ALERT_DISPLAY (line 1) | const ALERT_DISPLAY = 'ALERT_DISPLAY'; constant ALERT_DISMISS (line 2) | const ALERT_DISMISS = 'ALERT_DISMISS'; FILE: src/store/actions/chatActions.js constant CHAT_INIT_CHAT (line 2) | const CHAT_INIT_CHAT = 'CHAT_INIT_CHAT'; constant CHAT_INIT_CONNECTION (line 3) | const CHAT_INIT_CONNECTION = 'CHAT_INIT_CONNECTION'; constant CHAT_DISCONNECTED (line 4) | const CHAT_DISCONNECTED = 'CHAT_DISCONNECTED'; constant CHAT_CONNECTION_INITIATED (line 5) | const CHAT_CONNECTION_INITIATED = 'CHAT_CONNECTION_INITIATED'; constant CHAT_SEND_MESSAGE (line 6) | const CHAT_SEND_MESSAGE = 'CHAT_SEND_MESSAGE'; constant CHAT_MESSAGE_SENT (line 7) | const CHAT_MESSAGE_SENT = 'CHAT_MESSAGE_SENT'; constant CHAT_ADD_MESSAGE (line 8) | const CHAT_ADD_MESSAGE = 'CHAT_ADD_MESSAGE'; constant CHAT_SET_USER_STATUS (line 9) | const CHAT_SET_USER_STATUS = 'CHAT_SET_USER_STATUS'; constant CHAT_USER_STATUS_SENT (line 10) | const CHAT_USER_STATUS_SENT = 'CHAT_USER_STATUS_SENT'; constant CHAT_SET_USERNAME (line 11) | const CHAT_SET_USERNAME = 'CHAT_SET_USERNAME'; constant CHAT_USERNAME_SET (line 12) | const CHAT_USERNAME_SET = 'CHAT_USERNAME_SET'; FILE: src/store/actions/settingsActions.js constant ENABLE_AUDIO (line 1) | const ENABLE_AUDIO = 'ENABLE_AUDIO'; constant DISABLE_AUDIO (line 2) | const DISABLE_AUDIO = 'DISABLE_AUDIO'; FILE: src/store/epics/chatEpics.js function createKeyPairObservable (line 72) | function createKeyPairObservable({ createDeviceSession, urlHash }) { function createDecryptMessageObservable (line 99) | function createDecryptMessageObservable({ message, mID, secretKey }) { function getAuthRequestSettings (line 115) | function getAuthRequestSettings({ mID }) { FILE: src/store/epics/helpers/ChatHandler.js class ChatHandler (line 19) | class ChatHandler { method constructor (line 21) | constructor(wsUrl) { method send (line 117) | send({ contents = {}, tags, ttl = 0 }) { method sendMessage (line 137) | sendMessage(message, username) { FILE: src/store/epics/helpers/createDetectPageVisibilityObservable.js function createDetectPageVisibilityObservable (line 7) | function createDetectPageVisibilityObservable() { FILE: src/store/reducers/alertReducer.js function alertReducer (line 13) | function alertReducer(state = initialState, action) { FILE: src/store/reducers/chatReducer.js function chatReducer (line 41) | function chatReducer(state = initialState, action) { FILE: src/store/reducers/settingsReducer.js function settingsReducer (line 13) | function settingsReducer(state = initialState, action) { FILE: src/utils/audio.js function playNotification (line 1) | function playNotification(){ FILE: src/utils/chat.js function extractMessageMetadata (line 3) | function extractMessageMetadata(tags) { FILE: src/utils/crypto/nacl.js function ts64 (line 34) | function ts64(x, i, h, l) { function vn (line 45) | function vn(x, xi, y, yi, n) { function crypto_verify_16 (line 51) | function crypto_verify_16(x, xi, y, yi) { function crypto_verify_32 (line 55) | function crypto_verify_32(x, xi, y, yi) { function core_salsa20 (line 59) | function core_salsa20(o, p, k, c) { function core_hsalsa20 (line 252) | function core_hsalsa20(o, p, k, c) { function crypto_core_salsa20 (line 389) | function crypto_core_salsa20(out, inp, k, c) { function crypto_core_hsalsa20 (line 393) | function crypto_core_hsalsa20(out, inp, k, c) { function crypto_stream_salsa20_xor (line 400) | function crypto_stream_salsa20_xor(c, cpos, m, mpos, b, n, k) { function crypto_stream_salsa20 (line 425) | function crypto_stream_salsa20(c, cpos, b, n, k) { function crypto_stream (line 449) | function crypto_stream(c, cpos, d, n, k) { function crypto_stream_xor (line 457) | function crypto_stream_xor(c, cpos, m, mpos, d, n, k) { function crypto_onetimeauth (line 822) | function crypto_onetimeauth(out, outpos, m, mpos, n, k) { function crypto_onetimeauth_verify (line 829) | function crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) { function crypto_secretbox (line 835) | function crypto_secretbox(c, m, d, n, k) { function crypto_secretbox_open (line 844) | function crypto_secretbox_open(m, c, d, n, k) { function set25519 (line 855) | function set25519(r, a) { function car25519 (line 860) | function car25519(o) { function sel25519 (line 870) | function sel25519(p, q, b) { function pack25519 (line 879) | function pack25519(o, n) { function neq25519 (line 903) | function neq25519(a, b) { function par25519 (line 910) | function par25519(a) { function unpack25519 (line 916) | function unpack25519(o, n) { function A (line 922) | function A(o, a, b) { function Z (line 926) | function Z(o, a, b) { function M (line 930) | function M(o, a, b) { function S (line 1301) | function S(o, a) { function inv25519 (line 1305) | function inv25519(o, i) { function pow2523 (line 1316) | function pow2523(o, i) { function crypto_scalarmult (line 1327) | function crypto_scalarmult(q, n, p) { function crypto_scalarmult_base (line 1380) | function crypto_scalarmult_base(q, n) { function crypto_box_keypair (line 1384) | function crypto_box_keypair(y, x) { function crypto_box_beforenm (line 1389) | function crypto_box_beforenm(k, y, x) { function crypto_box (line 1398) | function crypto_box(c, m, d, n, y, x) { function crypto_box_open (line 1404) | function crypto_box_open(m, c, d, n, y, x) { function crypto_hashblocks_hl (line 1453) | function crypto_hashblocks_hl(hh, hl, m, n) { function crypto_hash (line 1814) | function crypto_hash(out, m, n) { function add (line 1854) | function add(p, q) { function cswap (line 1880) | function cswap(p, q, b) { function pack (line 1887) | function pack(r, p) { function scalarmult (line 1896) | function scalarmult(p, q, s) { function scalarbase (line 1911) | function scalarbase(p, s) { function crypto_sign_keypair (line 1920) | function crypto_sign_keypair(pk, sk, seeded) { function modL (line 1940) | function modL(r, x) { function reduce (line 1965) | function reduce(r) { function crypto_sign (line 1973) | function crypto_sign(sm, m, n, sk) { function unpackneg (line 2008) | function unpackneg(r, p) { function crypto_sign_open (line 2046) | function crypto_sign_open(m, sm, n, pk) { function checkLengths (line 2141) | function checkLengths(k, n) { function checkBoxLengths (line 2146) | function checkBoxLengths(pk, sk) { function checkArrayTypes (line 2151) | function checkArrayTypes() { function incrementChunkCounter (line 2398) | function incrementChunkCounter(fullNonce) { function setLastChunkFlag (line 2405) | function setLastChunkFlag(fullNonce) { function clean (line 2409) | function clean() { function readChunkLength (line 2416) | function readChunkLength(data, offset) { function checkArgs (line 2424) | function checkArgs(key, nonce, maxChunkLength) { function StreamEncryptor (line 2431) | function StreamEncryptor(key, nonce, maxChunkLength) { function StreamDecryptor (line 2467) | function StreamDecryptor(key, nonce, maxChunkLength) { FILE: src/utils/crypto/scrypt.js function scrypt (line 26) | function scrypt(password, salt, logN, r, dkLen, interruptStep, callback,... FILE: src/utils/encrypter.js function getEmail (line 7) | function getEmail(passphrase){ function getPassphrase (line 11) | function getPassphrase(documentHash){ function generateMessageKey (line 31) | function generateMessageKey(i){ FILE: src/utils/pagevisibility.js function detectPageVisible (line 3) | function detectPageVisible(onVisible, onHidden, onClose){ FILE: src/utils/sessions.js function connectWithAuthRequest (line 21) | async function connectWithAuthRequest(initiateConnection, mID, secretKey... FILE: src/utils/tags.js function tagByPrefix (line 5) | function tagByPrefix(plaintags, ...prefixes) { function tagByPrefixStripped (line 18) | function tagByPrefixStripped(plaintags, ...prefixes) { function tagsByPrefix (line 30) | function tagsByPrefix(plaintags, prefix) { function tagsByPrefixStripped (line 40) | function tagsByPrefixStripped(plaintags, prefix) { function sortRowByCreated (line 51) | function sortRowByCreated(row, nextRow){ function parseJSON (line 58) | function parseJSON(str){ function encodeObjForPost (line 62) | function encodeObjForPost(obj){ function cleanedFields (line 66) | function cleanedFields(s){ FILE: src/utils/time.js function nowUTC (line 1) | function nowUTC(){ FILE: src/utils/vh_fix.js function vh (line 3) | function vh() {