SYMBOL INDEX (186 symbols across 46 files) FILE: unfollow-monkey-ui/src/App.js function App (line 39) | function App() { FILE: unfollow-monkey-ui/src/components/Faq.js function Faq (line 6) | function Faq(props) { FILE: unfollow-monkey-ui/src/components/MiniApp.js constant API_URL (line 22) | const API_URL = 'https://api.unfollow-monkey.com'; function formatMessage (line 56) | function formatMessage(message) { function MiniApp (line 106) | function MiniApp(props) { FILE: unfollow-monkey-ui/src/components/MiniApp/LanguageSelector.js function LanguageSelector (line 11) | function LanguageSelector(props) { FILE: unfollow-monkey-ui/src/components/MiniApp/ProCard.js function ProCard (line 9) | function ProCard(props) { FILE: unfollow-monkey-ui/src/components/Repo.js function Repo (line 5) | function Repo(props) { FILE: unfollow-monkey-ui/src/images/index.js function useAlaska (line 16) | function useAlaska() { // react hook to get the right alaska image url FILE: unfollow-monkey-ui/src/index.js constant DSN (line 7) | const DSN = process.env.REACT_APP_SENTRY_DSN; FILE: unfollow-monkey-ui/src/serviceWorkerRegistration.js function register (line 21) | function register(config) { function registerValidSW (line 55) | function registerValidSW(swUrl, config) { function checkValidServiceWorker (line 99) | function checkValidServiceWorker(swUrl, config) { function unregister (line 127) | function unregister() { FILE: unfollow-ninja-server/src/api.ts function assertEnvVariable (line 20) | function assertEnvVariable(name: string) { constant SENTRY_DSN (line 32) | const SENTRY_DSN = process.env.SENTRY_DSN_API || undefined; type NinjaSession (line 57) | interface NinjaSession { FILE: unfollow-ninja-server/src/api/admin.ts function createAdminRouter (line 10) | function createAdminRouter(dao: Dao, queue: Queue) { FILE: unfollow-ninja-server/src/api/auth.ts constant DEFAULT_LANGUAGE (line 42) | const DEFAULT_LANGUAGE = (process.env.DEFAULT_LANGUAGE || 'en') as Lang; function createAuthRouter (line 44) | function createAuthRouter(dao: Dao, queue: Queue) { FILE: unfollow-ninja-server/src/api/stripe.ts type Price (line 178) | interface Price { constant PRICES (line 186) | const PRICES: Record = { FILE: unfollow-ninja-server/src/api/user.ts function createUserRouter (line 12) | function createUserRouter(dao: Dao, queue: Queue) { FILE: unfollow-ninja-server/src/dao/dao.ts type UserCategory (line 10) | enum UserCategory { type ICachedUsername (line 20) | interface ICachedUsername extends Model { type IFriendCode (line 24) | interface IFriendCode extends Model { class Dao (line 30) | class Dao { method constructor (line 40) | constructor( method load (line 94) | public async load(): Promise { method disconnect (line 108) | public async disconnect() { method getUserDao (line 113) | public getUserDao(userId: string) { method addUser (line 117) | public async addUser(userEgg: IUserEgg): Promise { method getUserIds (line 150) | public async getUserIds(): Promise { method getUserIdsByCategory (line 154) | public async getUserIdsByCategory(category: UserCategory): Promise { method getCachedUserId (line 170) | public async getCachedUserId(username: string): Promise { method addTwittoToCache (line 176) | public async addTwittoToCache(twittoInfo: ITwittoInfo): Promise { method getSession (line 184) | public async getSession(uid: string): Promise { method setSession (line 188) | public async setSession(uid: string, params: Record): ... method deleteSession (line 193) | public async deleteSession(uid: string): Promise { method getTokenSecret (line 197) | public async getTokenSecret(token: string): Promise { method setTokenSecret (line 201) | public async setTokenSecret(token: string, secret: string): Promise { method getCategory (line 78) | public async getCategory(): Promise { method setCategory (line 82) | public async setCategory(category: UserCategory): Promise { method enable (line 89) | public async enable(): Promise { method getNextCheckTime (line 104) | public async getNextCheckTime(): Promise { method setNextCheckTime (line 109) | public async setNextCheckTime(nextCheckTime: number | string): Promise... method getTemporaryFollowerList (line 114) | public async getTemporaryFollowerList(): Promise<{ nextCursor: string;... method setTemporaryFollowerList (line 122) | public async setTemporaryFollowerList(nextCursor: string, followers: s... method deleteTemporaryFollowerList (line 130) | public async deleteTemporaryFollowerList(): Promise { method getUserParams (line 134) | public async getUserParams(): Promise { method setUserParams (line 144) | public async setUserParams(userParams: Partial): Promise<... method getTwit (line 148) | public async getTwit(): Promise { method getTwitterApi (line 161) | public async getTwitterApi(): Promise { method getDmTwit (line 174) | public async getDmTwit(): Promise { method getDmTwitterApi (line 187) | public async getDmTwitterApi(): Promise { method getLang (line 200) | public async getLang(): Promise { method isPro (line 204) | public async isPro(): Promise { method getDmId (line 208) | public getDmId(): Promise { method getFollowers (line 214) | public async getFollowers(): Promise { method updateFollowers (line 218) | public async updateFollowers( method setFollowerSnowflakeId (line 254) | public async setFollowerSnowflakeId(followerId: string, snowflakeId: s... method getFollowerSnowflakeId (line 263) | public async getFollowerSnowflakeId(followerId: string): Promise { method addUncachableFollower (line 284) | public async addUncachableFollower(followerId: string): Promise { method getFollowTime (line 293) | public async getFollowTime(followerId: string): Promise { method getFollowDetectedTime (line 300) | public async getFollowDetectedTime(followerId: string): Promise { method getCachedFollowers (line 325) | public async getCachedFollowers(): Promise { method getFriendCodes (line 355) | public async getFriendCodes(): Promise { method getFriendCodesWithUsername (line 361) | public async getFriendCodesWithUsername(): Promise<{ code: string; fri... method addFriendCodes (line 371) | public async addFriendCodes(): Promise { method deleteFriendCodes (line 382) | public async deleteFriendCodes(code: string): Promise { method registerFriendCode (line 386) | public async registerFriendCode(code: string): Promise { method getRegisteredFriendCode (line 394) | public async getRegisteredFriendCode(): Promise { method getAllUserData (line 400) | public async getAllUserData() { method cleanUser (line 441) | public async cleanUser(): Promise { method deleteUser (line 451) | public async deleteUser(): Promise { FILE: unfollow-ninja-server/src/dao/userEventDao.ts type WebEvent (line 11) | enum WebEvent { type IWebEvent (line 28) | interface IWebEvent extends Model, InferCreat... type FollowEvent (line 36) | enum FollowEvent { type IFollowEvent (line 42) | interface IFollowEvent extends Model, Infe... type IUnfollowerEvent (line 49) | interface IUnfollowerEvent extends Model, ... class UserEventDao (line 85) | class UserEventDao { method constructor (line 94) | constructor(dao: Dao) { method createTables (line 183) | public async createTables() { method logWebEvent (line 191) | public async logWebEvent(userId: string, event: WebEvent, ip: string, ... method getWebEvents (line 198) | public async getWebEvents(userId: string, limit = 500, offset = 0) { method logFollowEvent (line 212) | public async logFollowEvent(userId: string, event: FollowEvent, follow... method getFollowEvent (line 219) | public async getFollowEvent(userId: string, limit = 500, offset = 0) { method logUnfollowerEvent (line 233) | public async logUnfollowerEvent(userId: string, isSecondCheck: boolean... method getUnfollowerEvents (line 269) | public async getUnfollowerEvents(userId: string, limit = 500, offset =... method logNotificationEvent (line 278) | public async logNotificationEvent(userId: string, event: NotificationE... method getNotificationEvents (line 285) | public async getNotificationEvents(userId: string, limit = 500, offset... method logCategoryEvent (line 299) | public async logCategoryEvent(userId: string, category: UserCategory, ... method getCategoryEvents (line 306) | public async getCategoryEvents(userId: string, limit = 500, offset = 0) { FILE: unfollow-ninja-server/src/jobs/cleanUsersWithRevokedTokens.ts function runJob (line 5) | async function runJob() { FILE: unfollow-ninja-server/src/jobs/deleteRedisSnowflakeIds.ts function run (line 8) | async function run() { FILE: unfollow-ninja-server/src/jobs/emptyQueue.ts function runJob (line 19) | async function runJob() { FILE: unfollow-ninja-server/src/jobs/migrateCachedUsernamesFromRedisToPostres.ts function run (line 8) | async function run() { FILE: unfollow-ninja-server/src/jobs/migrateFollowersFromRedisToPostres.ts type IFollowersDetail (line 9) | interface IFollowersDetail extends Model Task; FILE: unfollow-ninja-server/src/tasks/updateMetrics.ts method run (line 6) | public async run() { FILE: unfollow-ninja-server/src/utils/metrics.ts constant STATSD_HOST (line 3) | const STATSD_HOST = process.env.STATSD_HOST || undefined; constant DD_AGENT_HOST (line 4) | const DD_AGENT_HOST = process.env.DD_AGENT_HOST || undefined; constant METRICS_PREFIX (line 5) | const METRICS_PREFIX = process.env.METRICS_PREFIX || 'uninja'; class Metrics (line 7) | class Metrics { method addStatsdHost (line 10) | public static addStatsdHost(host: string, port = 8125) { method gauge (line 14) | public static gauge(metric: string, value: number) { method increment (line 18) | public static increment(metric: string, value = 1) { method kill (line 22) | public static kill() { FILE: unfollow-ninja-server/src/utils/types.ts type Lang (line 4) | type Lang = typeof SUPPORTED_LANGUAGES_CONST[number]; type IFollowerInfo (line 6) | interface IFollowerInfo { type IUnfollowerInfo (line 11) | interface IUnfollowerInfo extends IFollowerInfo { type ITwittoInfo (line 27) | interface ITwittoInfo { type IUserParams (line 32) | interface IUserParams { type IUserEgg (line 45) | interface IUserEgg extends ITwittoInfo, IUserParams { type Session (line 49) | interface Session { FILE: unfollow-ninja-server/src/utils/utils.ts function twitterCursorToTime (line 7) | function twitterCursorToTime(cursor: string): number { constant SUPPORTED_LANGUAGES_CONST (line 11) | const SUPPORTED_LANGUAGES_CONST = [ constant SUPPORTED_LANGUAGES (line 28) | const SUPPORTED_LANGUAGES = SUPPORTED_LANGUAGES_CONST as unknown as stri... FILE: unfollow-ninja-server/src/workers.ts constant CLUSTER_SIZE (line 16) | const CLUSTER_SIZE = Number(process.env.CLUSTER_SIZE) || cpus().length; constant WORKER_RATE_LIMIT (line 17) | const WORKER_RATE_LIMIT = Number(process.env.WORKER_RATE_LIMIT) || 15; constant SENTRY_DSN (line 18) | const SENTRY_DSN = process.env.SENTRY_DSN || undefined; function death (line 105) | async function death() { FILE: unfollow-ninja-server/src/workers/cacheAllFollowers.ts constant CACHE_WORKER_RATE_LIMIT (line 9) | const CACHE_WORKER_RATE_LIMIT = function cacheAllFollowers (line 18) | async function cacheAllFollowers(workerId: number, nbWorkers: number, da... function hashCode (line 60) | function hashCode(s: string) { function cacheFollowers (line 68) | async function cacheFollowers(userId: string, dao: Dao) { FILE: unfollow-ninja-server/src/workers/checkAllFollowers.ts constant WORKER_RATE_LIMIT (line 13) | const WORKER_RATE_LIMIT = Number(process.env.WORKER_RATE_LIMIT) || 15; constant VIP_WORKER_RATE_LIMIT (line 14) | const VIP_WORKER_RATE_LIMIT = Number(process.env.VIP_WORKER_RATE_LIMIT) ... function checkAllFollowers (line 23) | async function checkAllFollowers(workerId: number, nbWorkers: number, da... function checkAllVipFollowers (line 47) | async function checkAllVipFollowers(workerId: number, nbWorkers: number,... function hashCode (line 72) | function hashCode(s: string) { function checkFollowersWithTimeout (line 86) | async function checkFollowersWithTimeout(userId: string, dao: Dao, queue... function checkFollowers (line 111) | async function checkFollowers(userId: string, dao: Dao, queue: Queue) { function detectUnfollows (line 195) | async function detectUnfollows(userId: string, followers: string[], dao:... function manageTwitterErrors (line 263) | async function manageTwitterErrors(twitterReply: Twit.Twitter.Errors, us... FILE: unfollow-ninja-server/tests/dao/userDao.spec.ts constant USER_PARAMS_1 (line 29) | const USER_PARAMS_1: IUserParams = { constant USER_PARAMS_2 (line 35) | const USER_PARAMS_2: IUserParams = { FILE: unfollow-ninja-server/tests/tasks/notifyUser.spec.ts function mockUsersLookupReply (line 21) | function mockUsersLookupReply(ids: string[], screenNames: string[], frie... function mockFriendshipShowReply (line 31) | function mockFriendshipShowReply( function mockFriendshipShowReplyNotFound (line 57) | function mockFriendshipShowReplyNotFound() { FILE: unfollow-ninja-server/tests/utils.ts function userDaoMock (line 5) | function userDaoMock() { function _daoMock (line 33) | function _daoMock() { function daoMock (line 53) | function daoMock() { function queueMock (line 57) | function queueMock() { type DmSendParams (line 63) | interface DmSendParams { function twitMock (line 67) | function twitMock() { FILE: unfollow-ninja-ui/src/App.js function App (line 49) | function App() { FILE: unfollow-ninja-ui/src/components/Faq.js function Faq (line 6) | function Faq(props) { FILE: unfollow-ninja-ui/src/components/MiniApp.js function MiniApp (line 10) | function MiniApp(props) { FILE: unfollow-ninja-ui/src/components/Repo.js function Repo (line 5) | function Repo(props) { FILE: unfollow-ninja-ui/src/images/index.js function useAlaska (line 12) | function useAlaska() { // react hook to get the right alaska image url FILE: unfollow-ninja-ui/src/index.js constant DSN (line 7) | const DSN = process.env.REACT_APP_SENTRY_DSN; FILE: unfollow-ninja-ui/src/serviceWorkerRegistration.js function register (line 21) | function register(config) { function registerValidSW (line 55) | function registerValidSW(swUrl, config) { function checkValidServiceWorker (line 99) | function checkValidServiceWorker(swUrl, config) { function unregister (line 127) | function unregister() {