global.d.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. interface User {
  2. id: number;
  3. apikey?: string;
  4. banned: boolean;
  5. banned_by_id?: number;
  6. cooldowns?: string[];
  7. created_at: string;
  8. email: string;
  9. password: string;
  10. reset_password_expires?: string;
  11. reset_password_token?: string;
  12. updated_at: string;
  13. verification_expires?: string;
  14. verification_token?: string;
  15. verified?: boolean;
  16. }
  17. interface UserJoined extends User {
  18. admin?: boolean;
  19. homepage?: string;
  20. domain?: string;
  21. domain_id?: number;
  22. }
  23. interface Domain {
  24. id: number;
  25. address: string;
  26. banned: boolean;
  27. banned_by_id?: number;
  28. created_at: string;
  29. homepage?: string;
  30. updated_at: string;
  31. user_id?: number;
  32. }
  33. interface Host {
  34. id: number;
  35. address: string;
  36. banned: boolean;
  37. banned_by_id?: number;
  38. created_at: string;
  39. updated_at: string;
  40. }
  41. interface IP {
  42. id: number;
  43. created_at: string;
  44. updated_at: string;
  45. ip: string;
  46. }
  47. interface Link {
  48. id: number;
  49. address: string;
  50. banned: boolean;
  51. banned_by_id?: number;
  52. created_at: string;
  53. domain_id?: number;
  54. password?: string;
  55. target: string;
  56. updated_at: string;
  57. user_id?: number;
  58. visit_count: number;
  59. }
  60. interface LinkJoinedDomain extends Link {
  61. domain?: string;
  62. }
  63. interface Visit {
  64. id: number;
  65. countries: Record<string, number>;
  66. created_at: string;
  67. link_id: number;
  68. referrers: Record<string, number>;
  69. total: number;
  70. br_chrome: number;
  71. br_edge: number;
  72. br_firefox: number;
  73. br_ie: number;
  74. br_opera: number;
  75. br_other: number;
  76. br_safari: number;
  77. os_android: number;
  78. os_ios: number;
  79. os_linux: number;
  80. os_macos: number;
  81. os_other: number;
  82. os_windows: number;
  83. }
  84. interface Stats {
  85. browser: Record<
  86. 'chrome' | 'edge' | 'firefox' | 'ie' | 'opera' | 'other' | 'safari',
  87. number
  88. >;
  89. os: Record<
  90. 'android' | 'ios' | 'linux' | 'macos' | 'other' | 'windows',
  91. number
  92. >;
  93. country: Record<string, number>;
  94. referrer: Record<string, number>;
  95. }
  96. declare namespace Express {
  97. export interface Request {
  98. realIP?: string;
  99. pageType?: string;
  100. linkTarget?: string;
  101. protectedLink?: string;
  102. token?: string;
  103. user: UserJoined;
  104. }
  105. }