evogram-gramjs 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/.evogram/7878190870/database.db +0 -0
  2. package/lib/EvogramGramJS.d.ts +51 -0
  3. package/lib/EvogramGramJS.js +99 -0
  4. package/lib/commands/Accounts.command.d.ts +6 -0
  5. package/lib/commands/Accounts.command.js +90 -0
  6. package/lib/commands/AddAccount.command.d.ts +6 -0
  7. package/lib/commands/AddAccount.command.js +170 -0
  8. package/lib/commands/index.d.ts +0 -0
  9. package/lib/commands/index.js +1 -0
  10. package/lib/commands/managment/DeleteAccount.command.d.ts +0 -0
  11. package/lib/commands/managment/DeleteAccount.command.js +12 -0
  12. package/lib/config/database.config.d.ts +26 -0
  13. package/lib/config/database.config.js +31 -0
  14. package/lib/entities/Session.entity.d.ts +28 -0
  15. package/lib/entities/Session.entity.js +71 -0
  16. package/lib/entities/SessionEventLog.entity.d.ts +22 -0
  17. package/lib/entities/SessionEventLog.entity.js +50 -0
  18. package/lib/examples/auth.example.d.ts +10 -0
  19. package/lib/examples/auth.example.js +126 -0
  20. package/lib/examples/database.example.d.ts +13 -0
  21. package/lib/examples/database.example.js +109 -0
  22. package/lib/examples/usage.example.d.ts +13 -0
  23. package/lib/examples/usage.example.js +127 -0
  24. package/lib/index.d.ts +7 -0
  25. package/lib/index.js +10 -0
  26. package/lib/services/DatabaseService.d.ts +30 -0
  27. package/lib/services/DatabaseService.js +93 -0
  28. package/lib/services/ImageUploadService.d.ts +15 -0
  29. package/lib/services/ImageUploadService.js +56 -0
  30. package/lib/sessions/Session.d.ts +13 -0
  31. package/lib/sessions/Session.js +25 -0
  32. package/lib/sessions/SessionAuth.d.ts +62 -0
  33. package/lib/sessions/SessionAuth.js +165 -0
  34. package/lib/sessions/SessionLogger.d.ts +84 -0
  35. package/lib/sessions/SessionLogger.js +196 -0
  36. package/lib/sessions/SessionManager.d.ts +79 -0
  37. package/lib/sessions/SessionManager.js +184 -0
  38. package/lib/types/auth.types.d.ts +90 -0
  39. package/lib/types/auth.types.js +19 -0
  40. package/lib/types/session.types.d.ts +87 -0
  41. package/lib/types/session.types.js +21 -0
  42. package/lib/utils/Deferrer.d.ts +6 -0
  43. package/lib/utils/Deferrer.js +14 -0
  44. package/package-lock.json +6 -0
  45. package/package.json +27 -0
  46. package/src/EvogramGramJS.ts +98 -0
  47. package/src/commands/Accounts.command.ts +84 -0
  48. package/src/commands/AddAccount.command.ts +171 -0
  49. package/src/commands/index.ts +0 -0
  50. package/src/commands/managment/DeleteAccount.command.ts +13 -0
  51. package/src/config/database.config.ts +75 -0
  52. package/src/entities/Session.entity.ts +58 -0
  53. package/src/entities/SessionEventLog.entity.ts +41 -0
  54. package/src/index.ts +7 -0
  55. package/src/services/DatabaseService.ts +82 -0
  56. package/src/services/ImageUploadService.ts +49 -0
  57. package/src/sessions/Session.ts +21 -0
  58. package/src/sessions/SessionAuth.ts +173 -0
  59. package/src/sessions/SessionLogger.ts +208 -0
  60. package/src/sessions/SessionManager.ts +190 -0
  61. package/src/types/auth.types.ts +94 -0
  62. package/src/types/session.types.ts +96 -0
  63. package/src/utils/Deferrer.ts +12 -0
  64. package/tsconfig.json +17 -0
@@ -0,0 +1,96 @@
1
+ import { Session } from '../sessions/Session'
2
+
3
+ /**
4
+ * Конфигурация для создания новой сессии
5
+ */
6
+ export interface SessionConfig {
7
+ /** Уникальный идентификатор сессии */
8
+ sessionId: string
9
+ /** API ID из Telegram */
10
+ apiId?: number
11
+ /** API Hash из Telegram */
12
+ apiHash?: string
13
+ /** Строка сессии (если уже существует) */
14
+ sessionString?: string
15
+ /** Дополнительные опции для клиента */
16
+ clientOptions?: {
17
+ /** Использовать IPv6 */
18
+ useIPV6?: boolean
19
+ /** Таймаут подключения */
20
+ connectionRetries?: number
21
+ /** Максимальное количество попыток переподключения */
22
+ maxRetries?: number
23
+ }
24
+ /** Настройки логирования */
25
+ logging?: {
26
+ /** Включить логирование (по умолчанию true) */
27
+ enabled?: boolean
28
+ /** Директория для хранения логов (по умолчанию './logs') */
29
+ logsDirectory?: string
30
+ }
31
+ }
32
+
33
+ /**
34
+ * Информация о сессии
35
+ * Использует класс Session для представления сессии
36
+ */
37
+ export type SessionInfo = Session
38
+
39
+ /**
40
+ * События, которые может генерировать менеджер сессий
41
+ */
42
+ export enum SessionEvent {
43
+ /** Сессия была добавлена */
44
+ SESSION_ADDED = 'session:added',
45
+ /** Сессия была удалена */
46
+ SESSION_REMOVED = 'session:removed',
47
+ /** Сессия подключилась */
48
+ SESSION_CONNECTED = 'session:connected',
49
+ /** Сессия отключилась */
50
+ SESSION_DISCONNECTED = 'session:disconnected',
51
+ /** Произошла ошибка в сессии */
52
+ SESSION_ERROR = 'session:error',
53
+
54
+ /** Сессия стала недействительной */
55
+ SESSION_INVALID = 'session:invalid',
56
+ }
57
+
58
+ /**
59
+ * Данные события добавления/удаления сессии
60
+ */
61
+ export interface SessionEventData {
62
+ sessionId: string
63
+ sessionInfo?: Session
64
+ }
65
+
66
+ /**
67
+ * Данные события подключения/отключения
68
+ */
69
+ export interface SessionConnectionEventData {
70
+ sessionId: string
71
+ isConnected: boolean
72
+ }
73
+
74
+ /**
75
+ * Данные события ошибки
76
+ */
77
+ export interface SessionErrorEventData {
78
+ sessionId: string
79
+ error: Error
80
+ }
81
+
82
+ /**
83
+ * Данные события удаления сессии
84
+ */
85
+ export interface SessionRemovedEventData {
86
+ sessionId: string
87
+ error: Error
88
+ }
89
+
90
+ /**
91
+ * Данные события недействительности сессии
92
+ */
93
+ export interface SessionInvalidEventData {
94
+ sessionId: string
95
+ error: Error
96
+ }
@@ -0,0 +1,12 @@
1
+ export class Deferred<T> {
2
+ public promise: Promise<T>
3
+ public resolve: (value: T | PromiseLike<T>) => void = () => {}
4
+ public reject: (reason?: any) => void = () => {}
5
+
6
+ constructor() {
7
+ this.promise = new Promise<T>((resolve, reject) => {
8
+ this.resolve = resolve
9
+ this.reject = reject
10
+ })
11
+ }
12
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,17 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es2016",
4
+ "module": "CommonJS",
5
+ "rootDir": "./src",
6
+ "outDir": "./lib",
7
+ "esModuleInterop": true,
8
+ "forceConsistentCasingInFileNames": true,
9
+ "strict": true,
10
+ "declaration": true,
11
+ "experimentalDecorators": true,
12
+ "emitDecoratorMetadata": true,
13
+ "importHelpers": true,
14
+ "skipLibCheck": true,
15
+ "resolveJsonModule": true
16
+ }
17
+ }