@famir/database 0.0.1

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 (188) hide show
  1. package/README.md +4 -0
  2. package/dist/database.d.ts +27 -0
  3. package/dist/database.error.d.ts +9 -0
  4. package/dist/database.error.js +13 -0
  5. package/dist/database.error.js.map +1 -0
  6. package/dist/database.functions.d.ts +242 -0
  7. package/dist/database.functions.js +17 -0
  8. package/dist/database.functions.js.map +1 -0
  9. package/dist/database.js +5 -0
  10. package/dist/database.js.map +1 -0
  11. package/dist/database.keys.d.ts +21 -0
  12. package/dist/database.keys.js +67 -0
  13. package/dist/database.keys.js.map +1 -0
  14. package/dist/database.schemas.d.ts +3 -0
  15. package/dist/database.schemas.js +12 -0
  16. package/dist/database.schemas.js.map +1 -0
  17. package/dist/index.d.ts +7 -0
  18. package/dist/index.js +8 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/models/campaign/campaign.d.ts +24 -0
  21. package/dist/models/campaign/campaign.js +47 -0
  22. package/dist/models/campaign/campaign.js.map +1 -0
  23. package/dist/models/campaign/index.d.ts +1 -0
  24. package/dist/models/campaign/index.js +2 -0
  25. package/dist/models/campaign/index.js.map +1 -0
  26. package/dist/models/index.d.ts +7 -0
  27. package/dist/models/index.js +8 -0
  28. package/dist/models/index.js.map +1 -0
  29. package/dist/models/lure/index.d.ts +1 -0
  30. package/dist/models/lure/index.js +2 -0
  31. package/dist/models/lure/index.js.map +1 -0
  32. package/dist/models/lure/lure.d.ts +17 -0
  33. package/dist/models/lure/lure.js +25 -0
  34. package/dist/models/lure/lure.js.map +1 -0
  35. package/dist/models/message/index.d.ts +1 -0
  36. package/dist/models/message/index.js +2 -0
  37. package/dist/models/message/index.js.map +1 -0
  38. package/dist/models/message/message.d.ts +38 -0
  39. package/dist/models/message/message.js +58 -0
  40. package/dist/models/message/message.js.map +1 -0
  41. package/dist/models/proxy/index.d.ts +1 -0
  42. package/dist/models/proxy/index.js +2 -0
  43. package/dist/models/proxy/index.js.map +1 -0
  44. package/dist/models/proxy/proxy.d.ts +16 -0
  45. package/dist/models/proxy/proxy.js +23 -0
  46. package/dist/models/proxy/proxy.js.map +1 -0
  47. package/dist/models/redirector/index.d.ts +1 -0
  48. package/dist/models/redirector/index.js +2 -0
  49. package/dist/models/redirector/index.js.map +1 -0
  50. package/dist/models/redirector/redirector.d.ts +12 -0
  51. package/dist/models/redirector/redirector.js +23 -0
  52. package/dist/models/redirector/redirector.js.map +1 -0
  53. package/dist/models/session/index.d.ts +1 -0
  54. package/dist/models/session/index.js +2 -0
  55. package/dist/models/session/index.js.map +1 -0
  56. package/dist/models/session/session.d.ts +13 -0
  57. package/dist/models/session/session.js +27 -0
  58. package/dist/models/session/session.js.map +1 -0
  59. package/dist/models/target/index.d.ts +1 -0
  60. package/dist/models/target/index.js +2 -0
  61. package/dist/models/target/index.js.map +1 -0
  62. package/dist/models/target/target.d.ts +51 -0
  63. package/dist/models/target/target.js +110 -0
  64. package/dist/models/target/target.js.map +1 -0
  65. package/dist/redis-database-connector.d.ts +15 -0
  66. package/dist/redis-database-connector.js +47 -0
  67. package/dist/redis-database-connector.js.map +1 -0
  68. package/dist/redis-database-manager.d.ts +11 -0
  69. package/dist/redis-database-manager.js +27 -0
  70. package/dist/redis-database-manager.js.map +1 -0
  71. package/dist/redis-functions.d.ts +1 -0
  72. package/dist/redis-functions.js +1396 -0
  73. package/dist/redis-functions.js.map +1 -0
  74. package/dist/repositories/base/index.d.ts +1 -0
  75. package/dist/repositories/base/index.js +2 -0
  76. package/dist/repositories/base/index.js.map +1 -0
  77. package/dist/repositories/base/redis-base.repository.d.ts +23 -0
  78. package/dist/repositories/base/redis-base.repository.js +140 -0
  79. package/dist/repositories/base/redis-base.repository.js.map +1 -0
  80. package/dist/repositories/campaign/campaign.d.ts +13 -0
  81. package/dist/repositories/campaign/campaign.functions.d.ts +66 -0
  82. package/dist/repositories/campaign/campaign.functions.js +111 -0
  83. package/dist/repositories/campaign/campaign.functions.js.map +1 -0
  84. package/dist/repositories/campaign/campaign.js +2 -0
  85. package/dist/repositories/campaign/campaign.js.map +1 -0
  86. package/dist/repositories/campaign/campaign.schemas.d.ts +9 -0
  87. package/dist/repositories/campaign/campaign.schemas.js +148 -0
  88. package/dist/repositories/campaign/campaign.schemas.js.map +1 -0
  89. package/dist/repositories/campaign/index.d.ts +3 -0
  90. package/dist/repositories/campaign/index.js +4 -0
  91. package/dist/repositories/campaign/index.js.map +1 -0
  92. package/dist/repositories/campaign/redis-campaign.repository.d.ts +25 -0
  93. package/dist/repositories/campaign/redis-campaign.repository.js +138 -0
  94. package/dist/repositories/campaign/redis-campaign.repository.js.map +1 -0
  95. package/dist/repositories/index.d.ts +8 -0
  96. package/dist/repositories/index.js +9 -0
  97. package/dist/repositories/index.js.map +1 -0
  98. package/dist/repositories/lure/index.d.ts +3 -0
  99. package/dist/repositories/lure/index.js +4 -0
  100. package/dist/repositories/lure/index.js.map +1 -0
  101. package/dist/repositories/lure/lure.d.ts +11 -0
  102. package/dist/repositories/lure/lure.functions.d.ts +49 -0
  103. package/dist/repositories/lure/lure.functions.js +82 -0
  104. package/dist/repositories/lure/lure.functions.js.map +1 -0
  105. package/dist/repositories/lure/lure.js +2 -0
  106. package/dist/repositories/lure/lure.js.map +1 -0
  107. package/dist/repositories/lure/lure.schemas.d.ts +3 -0
  108. package/dist/repositories/lure/lure.schemas.js +45 -0
  109. package/dist/repositories/lure/lure.schemas.js.map +1 -0
  110. package/dist/repositories/lure/redis-lure.repository.d.ts +21 -0
  111. package/dist/repositories/lure/redis-lure.repository.js +107 -0
  112. package/dist/repositories/lure/redis-lure.repository.js.map +1 -0
  113. package/dist/repositories/message/index.d.ts +3 -0
  114. package/dist/repositories/message/index.js +4 -0
  115. package/dist/repositories/message/index.js.map +1 -0
  116. package/dist/repositories/message/message.d.ts +6 -0
  117. package/dist/repositories/message/message.functions.d.ts +44 -0
  118. package/dist/repositories/message/message.functions.js +53 -0
  119. package/dist/repositories/message/message.functions.js.map +1 -0
  120. package/dist/repositories/message/message.js +2 -0
  121. package/dist/repositories/message/message.js.map +1 -0
  122. package/dist/repositories/message/message.schemas.d.ts +2 -0
  123. package/dist/repositories/message/message.schemas.js +206 -0
  124. package/dist/repositories/message/message.schemas.js.map +1 -0
  125. package/dist/repositories/message/redis-message.repository.d.ts +20 -0
  126. package/dist/repositories/message/redis-message.repository.js +72 -0
  127. package/dist/repositories/message/redis-message.repository.js.map +1 -0
  128. package/dist/repositories/proxy/index.d.ts +3 -0
  129. package/dist/repositories/proxy/index.js +4 -0
  130. package/dist/repositories/proxy/index.js.map +1 -0
  131. package/dist/repositories/proxy/proxy.d.ts +10 -0
  132. package/dist/repositories/proxy/proxy.functions.d.ts +43 -0
  133. package/dist/repositories/proxy/proxy.functions.js +72 -0
  134. package/dist/repositories/proxy/proxy.functions.js.map +1 -0
  135. package/dist/repositories/proxy/proxy.js +2 -0
  136. package/dist/repositories/proxy/proxy.js.map +1 -0
  137. package/dist/repositories/proxy/proxy.schemas.d.ts +3 -0
  138. package/dist/repositories/proxy/proxy.schemas.js +34 -0
  139. package/dist/repositories/proxy/proxy.schemas.js.map +1 -0
  140. package/dist/repositories/proxy/redis-proxy.repository.d.ts +20 -0
  141. package/dist/repositories/proxy/redis-proxy.repository.js +93 -0
  142. package/dist/repositories/proxy/redis-proxy.repository.js.map +1 -0
  143. package/dist/repositories/redirector/index.d.ts +3 -0
  144. package/dist/repositories/redirector/index.js +4 -0
  145. package/dist/repositories/redirector/index.js.map +1 -0
  146. package/dist/repositories/redirector/redirector.d.ts +11 -0
  147. package/dist/repositories/redirector/redirector.functions.d.ts +44 -0
  148. package/dist/repositories/redirector/redirector.functions.js +70 -0
  149. package/dist/repositories/redirector/redirector.functions.js.map +1 -0
  150. package/dist/repositories/redirector/redirector.js +2 -0
  151. package/dist/repositories/redirector/redirector.js.map +1 -0
  152. package/dist/repositories/redirector/redirector.schemas.d.ts +3 -0
  153. package/dist/repositories/redirector/redirector.schemas.js +51 -0
  154. package/dist/repositories/redirector/redirector.schemas.js.map +1 -0
  155. package/dist/repositories/redirector/redis-redirector.repository.d.ts +23 -0
  156. package/dist/repositories/redirector/redis-redirector.repository.js +121 -0
  157. package/dist/repositories/redirector/redis-redirector.repository.js.map +1 -0
  158. package/dist/repositories/session/index.d.ts +3 -0
  159. package/dist/repositories/session/index.js +4 -0
  160. package/dist/repositories/session/index.js.map +1 -0
  161. package/dist/repositories/session/redis-session.repository.d.ts +18 -0
  162. package/dist/repositories/session/redis-session.repository.js +85 -0
  163. package/dist/repositories/session/redis-session.repository.js.map +1 -0
  164. package/dist/repositories/session/session.d.ts +8 -0
  165. package/dist/repositories/session/session.functions.d.ts +35 -0
  166. package/dist/repositories/session/session.functions.js +47 -0
  167. package/dist/repositories/session/session.functions.js.map +1 -0
  168. package/dist/repositories/session/session.js +2 -0
  169. package/dist/repositories/session/session.js.map +1 -0
  170. package/dist/repositories/session/session.schemas.d.ts +2 -0
  171. package/dist/repositories/session/session.schemas.js +44 -0
  172. package/dist/repositories/session/session.schemas.js.map +1 -0
  173. package/dist/repositories/target/index.d.ts +3 -0
  174. package/dist/repositories/target/index.js +4 -0
  175. package/dist/repositories/target/index.js.map +1 -0
  176. package/dist/repositories/target/redis-target.repository.d.ts +30 -0
  177. package/dist/repositories/target/redis-target.repository.js +198 -0
  178. package/dist/repositories/target/redis-target.repository.js.map +1 -0
  179. package/dist/repositories/target/target.d.ts +17 -0
  180. package/dist/repositories/target/target.functions.d.ts +89 -0
  181. package/dist/repositories/target/target.functions.js +184 -0
  182. package/dist/repositories/target/target.functions.js.map +1 -0
  183. package/dist/repositories/target/target.js +2 -0
  184. package/dist/repositories/target/target.js.map +1 -0
  185. package/dist/repositories/target/target.schemas.d.ts +13 -0
  186. package/dist/repositories/target/target.schemas.js +241 -0
  187. package/dist/repositories/target/target.schemas.js.map +1 -0
  188. package/package.json +46 -0
package/README.md ADDED
@@ -0,0 +1,4 @@
1
+ # @famir/database
2
+
3
+ Database connector, repositories and models.
4
+
@@ -0,0 +1,27 @@
1
+ import { RedisClientType } from 'redis';
2
+ import { DatabaseFunctions } from './database.functions.js';
3
+ export declare const DATABASE_CONNECTOR: unique symbol;
4
+ export declare const DATABASE_MANAGER: unique symbol;
5
+ export interface DatabaseConnector {
6
+ connection<T>(): T;
7
+ connect(): Promise<void>;
8
+ close(): Promise<void>;
9
+ }
10
+ export type RedisDatabaseConnection = RedisClientType<Record<string, never>, DatabaseFunctions, Record<string, never>, 3>;
11
+ export interface DatabaseManager {
12
+ loadFunctions(): Promise<void>;
13
+ cleanup(): Promise<void>;
14
+ }
15
+ export declare const DATABASE_STATUS_CODES: readonly ["OK", "NOT_FOUND", "CONFLICT", "FORBIDDEN"];
16
+ export type DatabaseStatusCode = (typeof DATABASE_STATUS_CODES)[number];
17
+ export interface RedisDatabaseConfig {
18
+ DATABASE_CONNECTION_URL: string;
19
+ DATABASE_PREFIX: string;
20
+ }
21
+ export interface RedisDatabaseConnectorOptions {
22
+ connectionUrl: string;
23
+ }
24
+ export interface RedisDatabaseRepositoryOptions {
25
+ prefix: string;
26
+ }
27
+ export declare const DATABASE_LOCK_TIMEOUT: number;
@@ -0,0 +1,9 @@
1
+ import { CommonError, CommonErrorOptions } from '@famir/common';
2
+ export type DatabaseErrorCode = 'NOT_FOUND' | 'CONFLICT' | 'FORBIDDEN' | 'INTERNAL_ERROR';
3
+ export type DatabaseErrorOptions = CommonErrorOptions & {
4
+ code: DatabaseErrorCode;
5
+ };
6
+ export declare class DatabaseError extends CommonError {
7
+ code: DatabaseErrorCode;
8
+ constructor(message: string, options: DatabaseErrorOptions);
9
+ }
@@ -0,0 +1,13 @@
1
+ import { CommonError } from '@famir/common';
2
+ export class DatabaseError extends CommonError {
3
+ code;
4
+ constructor(message, options) {
5
+ super(message, {
6
+ cause: options.cause,
7
+ context: options.context
8
+ });
9
+ this.name = 'DatabaseError';
10
+ this.code = options.code;
11
+ }
12
+ }
13
+ //# sourceMappingURL=database.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.error.js","sourceRoot":"","sources":["../src/database.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,eAAe,CAAA;AAQ/D,MAAM,OAAO,aAAc,SAAQ,WAAW;IAC5C,IAAI,CAAmB;IAEvB,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,OAAO,EAAE;YACb,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAA;QAEF,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;QAC3B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IAC1B,CAAC;CACF"}
@@ -0,0 +1,242 @@
1
+ export declare const databaseFunctions: {
2
+ readonly message: {
3
+ readonly create_message: {
4
+ readonly NUMBER_OF_KEYS: 5;
5
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, messageId: string, proxyId: string, targetId: string, sessionId: string, kind: string, method: string, url: string, requestHeaders: string, requestBody: string, status: number, responseHeaders: string, responseBody: string, connection: string, payload: string, errors: string, processor: string, startTime: number, finishTime: number) => void;
6
+ readonly transformReply: () => unknown;
7
+ };
8
+ readonly read_message: {
9
+ readonly NUMBER_OF_KEYS: 2;
10
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, messageId: string) => void;
11
+ readonly transformReply: () => unknown;
12
+ };
13
+ readonly read_full_message: {
14
+ readonly NUMBER_OF_KEYS: 2;
15
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, messageId: string) => void;
16
+ readonly transformReply: () => unknown;
17
+ };
18
+ };
19
+ readonly session: {
20
+ readonly create_session: {
21
+ readonly NUMBER_OF_KEYS: 3;
22
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, sessionId: string, secret: string) => void;
23
+ readonly transformReply: () => unknown;
24
+ };
25
+ readonly read_session: {
26
+ readonly NUMBER_OF_KEYS: 2;
27
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, sessionId: string) => void;
28
+ readonly transformReply: () => unknown;
29
+ };
30
+ readonly auth_session: {
31
+ readonly NUMBER_OF_KEYS: 3;
32
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, sessionId: string) => void;
33
+ readonly transformReply: () => unknown;
34
+ };
35
+ readonly upgrade_session: {
36
+ readonly NUMBER_OF_KEYS: 3;
37
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, lureId: string, sessionId: string, secret: string) => void;
38
+ readonly transformReply: () => unknown;
39
+ };
40
+ };
41
+ readonly lure: {
42
+ readonly create_lure: {
43
+ readonly NUMBER_OF_KEYS: 6;
44
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, lureId: string, path: string, redirectorId: string, lockSecret: string) => void;
45
+ readonly transformReply: () => unknown;
46
+ };
47
+ readonly read_lure: {
48
+ readonly NUMBER_OF_KEYS: 2;
49
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, lureId: string) => void;
50
+ readonly transformReply: () => unknown;
51
+ };
52
+ readonly find_lure_id: {
53
+ readonly NUMBER_OF_KEYS: 2;
54
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, path: string) => void;
55
+ readonly transformReply: () => unknown;
56
+ };
57
+ readonly read_lure_index: {
58
+ readonly NUMBER_OF_KEYS: 2;
59
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string) => void;
60
+ readonly transformReply: () => unknown;
61
+ };
62
+ readonly enable_lure: {
63
+ readonly NUMBER_OF_KEYS: 3;
64
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, lureId: string, lockSecret: string) => void;
65
+ readonly transformReply: () => unknown;
66
+ };
67
+ readonly disable_lure: {
68
+ readonly NUMBER_OF_KEYS: 3;
69
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, lureId: string, lockSecret: string) => void;
70
+ readonly transformReply: () => unknown;
71
+ };
72
+ readonly delete_lure: {
73
+ readonly NUMBER_OF_KEYS: 6;
74
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, lureId: string, redirectorId: string, lockSecret: string) => void;
75
+ readonly transformReply: () => unknown;
76
+ };
77
+ };
78
+ readonly redirector: {
79
+ readonly create_redirector: {
80
+ readonly NUMBER_OF_KEYS: 4;
81
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, redirectorId: string, page: string, lockSecret: string) => void;
82
+ readonly transformReply: () => unknown;
83
+ };
84
+ readonly read_redirector: {
85
+ readonly NUMBER_OF_KEYS: 2;
86
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, redirectorId: string) => void;
87
+ readonly transformReply: () => unknown;
88
+ };
89
+ readonly read_full_redirector: {
90
+ readonly NUMBER_OF_KEYS: 2;
91
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, redirectorId: string) => void;
92
+ readonly transformReply: () => unknown;
93
+ };
94
+ readonly read_redirector_index: {
95
+ readonly NUMBER_OF_KEYS: 2;
96
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string) => void;
97
+ readonly transformReply: () => unknown;
98
+ };
99
+ readonly update_redirector: {
100
+ readonly NUMBER_OF_KEYS: 3;
101
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, redirectorId: string, page: string | null | undefined, lockSecret: string) => void;
102
+ readonly transformReply: () => unknown;
103
+ };
104
+ readonly delete_redirector: {
105
+ readonly NUMBER_OF_KEYS: 4;
106
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, redirectorId: string, lockSecret: string) => void;
107
+ readonly transformReply: () => unknown;
108
+ };
109
+ };
110
+ readonly target: {
111
+ readonly create_target: {
112
+ readonly NUMBER_OF_KEYS: 7;
113
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, targetId: string, isLanding: boolean, donorSecure: boolean, donorSub: string, donorDomain: string, donorPort: number, mirrorSecure: boolean, mirrorSub: string, mirrorPort: number, connectTimeout: number, simpleTimeout: number, streamTimeout: number, headersSizeLimit: number, bodySizeLimit: number, mainPage: string, notFoundPage: string, faviconIco: string, robotsTxt: string, sitemapXml: string, lockSecret: string) => void;
114
+ readonly transformReply: () => unknown;
115
+ };
116
+ readonly read_target: {
117
+ readonly NUMBER_OF_KEYS: 3;
118
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, targetId: string) => void;
119
+ readonly transformReply: () => unknown;
120
+ };
121
+ readonly read_full_target: {
122
+ readonly NUMBER_OF_KEYS: 3;
123
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, targetId: string) => void;
124
+ readonly transformReply: () => unknown;
125
+ };
126
+ readonly find_target_link: {
127
+ readonly NUMBER_OF_KEYS: 1;
128
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, mirrorHost: string) => void;
129
+ readonly transformReply: () => unknown;
130
+ };
131
+ readonly read_target_index: {
132
+ readonly NUMBER_OF_KEYS: 2;
133
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string) => void;
134
+ readonly transformReply: () => unknown;
135
+ };
136
+ readonly update_target: {
137
+ readonly NUMBER_OF_KEYS: 3;
138
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, targetId: string, connectTimeout: number | null | undefined, simpleTimeout: number | null | undefined, streamTimeout: number | null | undefined, headersSizeLimit: number | null | undefined, bodySizeLimit: number | null | undefined, mainPage: string | null | undefined, notFoundPage: string | null | undefined, faviconIco: string | null | undefined, robotsTxt: string | null | undefined, sitemapXml: string | null | undefined, lockSecret: string) => void;
139
+ readonly transformReply: () => unknown;
140
+ };
141
+ readonly enable_target: {
142
+ readonly NUMBER_OF_KEYS: 3;
143
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, targetId: string, lockSecret: string) => void;
144
+ readonly transformReply: () => unknown;
145
+ };
146
+ readonly disable_target: {
147
+ readonly NUMBER_OF_KEYS: 3;
148
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, targetId: string, lockSecret: string) => void;
149
+ readonly transformReply: () => unknown;
150
+ };
151
+ readonly append_target_label: {
152
+ readonly NUMBER_OF_KEYS: 4;
153
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, targetId: string, label: string, lockSecret: string) => void;
154
+ readonly transformReply: () => unknown;
155
+ };
156
+ readonly remove_target_label: {
157
+ readonly NUMBER_OF_KEYS: 4;
158
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, targetId: string, label: string, lockSecret: string) => void;
159
+ readonly transformReply: () => unknown;
160
+ };
161
+ readonly delete_target: {
162
+ readonly NUMBER_OF_KEYS: 8;
163
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, targetId: string, lockSecret: string) => void;
164
+ readonly transformReply: () => unknown;
165
+ };
166
+ };
167
+ readonly proxy: {
168
+ readonly create_proxy: {
169
+ readonly NUMBER_OF_KEYS: 5;
170
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, proxyId: string, url: string, lockSecret: string) => void;
171
+ readonly transformReply: () => unknown;
172
+ };
173
+ readonly read_proxy: {
174
+ readonly NUMBER_OF_KEYS: 2;
175
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, proxyId: string) => void;
176
+ readonly transformReply: () => unknown;
177
+ };
178
+ readonly read_proxy_index: {
179
+ readonly NUMBER_OF_KEYS: 2;
180
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string) => void;
181
+ readonly transformReply: () => unknown;
182
+ };
183
+ readonly enable_proxy: {
184
+ readonly NUMBER_OF_KEYS: 4;
185
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, proxyId: string, lockSecret: string) => void;
186
+ readonly transformReply: () => unknown;
187
+ };
188
+ readonly disable_proxy: {
189
+ readonly NUMBER_OF_KEYS: 4;
190
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, proxyId: string, lockSecret: string) => void;
191
+ readonly transformReply: () => unknown;
192
+ };
193
+ readonly delete_proxy: {
194
+ readonly NUMBER_OF_KEYS: 5;
195
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, proxyId: string, lockSecret: string) => void;
196
+ readonly transformReply: () => unknown;
197
+ };
198
+ };
199
+ readonly campaign: {
200
+ readonly create_campaign: {
201
+ readonly NUMBER_OF_KEYS: 3;
202
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, mirrorDomain: string, description: string, cryptSecret: string, landingUpgradePath: string, sessionCookieName: string, sessionExpire: number, newSessionExpire: number, messageExpire: number) => void;
203
+ readonly transformReply: () => unknown;
204
+ };
205
+ readonly read_campaign: {
206
+ readonly NUMBER_OF_KEYS: 2;
207
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string) => void;
208
+ readonly transformReply: () => unknown;
209
+ };
210
+ readonly read_full_campaign: {
211
+ readonly NUMBER_OF_KEYS: 6;
212
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string) => void;
213
+ readonly transformReply: () => unknown;
214
+ };
215
+ readonly read_campaign_index: {
216
+ readonly NUMBER_OF_KEYS: 1;
217
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string) => void;
218
+ readonly transformReply: () => unknown;
219
+ };
220
+ readonly lock_campaign: {
221
+ readonly NUMBER_OF_KEYS: 2;
222
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, lockSecret: string, lockTimeout: number) => void;
223
+ readonly transformReply: () => unknown;
224
+ };
225
+ readonly unlock_campaign: {
226
+ readonly NUMBER_OF_KEYS: 2;
227
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, lockSecret: string) => void;
228
+ readonly transformReply: () => unknown;
229
+ };
230
+ readonly update_campaign: {
231
+ readonly NUMBER_OF_KEYS: 2;
232
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, description: string | null | undefined, sessionExpire: number | null | undefined, newSessionExpire: number | null | undefined, messageExpire: number | null | undefined, lockSecret: string) => void;
233
+ readonly transformReply: () => unknown;
234
+ };
235
+ readonly delete_campaign: {
236
+ readonly NUMBER_OF_KEYS: 8;
237
+ readonly parseCommand: (parser: import("redis").CommandParser, prefix: string, campaignId: string, lockSecret: string) => void;
238
+ readonly transformReply: () => unknown;
239
+ };
240
+ };
241
+ };
242
+ export type DatabaseFunctions = typeof databaseFunctions;
@@ -0,0 +1,17 @@
1
+ import { campaignFunctions } from './repositories/campaign/campaign.functions.js';
2
+ import { lureFunctions } from './repositories/lure/lure.functions.js';
3
+ import { messageFunctions } from './repositories/message/message.functions.js';
4
+ import { proxyFunctions } from './repositories/proxy/proxy.functions.js';
5
+ import { redirectorFunctions } from './repositories/redirector/redirector.functions.js';
6
+ import { sessionFunctions } from './repositories/session/session.functions.js';
7
+ import { targetFunctions } from './repositories/target/target.functions.js';
8
+ export const databaseFunctions = {
9
+ ...campaignFunctions,
10
+ ...proxyFunctions,
11
+ ...targetFunctions,
12
+ ...redirectorFunctions,
13
+ ...lureFunctions,
14
+ ...sessionFunctions,
15
+ ...messageFunctions
16
+ };
17
+ //# sourceMappingURL=database.functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.functions.js","sourceRoot":"","sources":["../src/database.functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAA;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAA;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAE3E,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,GAAG,iBAAiB;IACpB,GAAG,cAAc;IACjB,GAAG,eAAe;IAClB,GAAG,mBAAmB;IACtB,GAAG,aAAa;IAChB,GAAG,gBAAgB;IACnB,GAAG,gBAAgB;CACX,CAAA"}
@@ -0,0 +1,5 @@
1
+ export const DATABASE_CONNECTOR = Symbol('DatabaseConnector');
2
+ export const DATABASE_MANAGER = Symbol('DatabaseManager');
3
+ export const DATABASE_STATUS_CODES = ['OK', 'NOT_FOUND', 'CONFLICT', 'FORBIDDEN'];
4
+ export const DATABASE_LOCK_TIMEOUT = 5 * 60 * 1000;
5
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAA;AAC7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAqBzD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,CAAU,CAAA;AAgB1F,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA"}
@@ -0,0 +1,21 @@
1
+ export declare const campaignKey: (prefix: string, campaignId: string) => string;
2
+ export declare const campaignLockKey: (prefix: string, campaignId: string) => string;
3
+ export declare const campaignUniqueMirrorDomainKey: (prefix: string) => string;
4
+ export declare const campaignIndexKey: (prefix: string) => string;
5
+ export declare const proxyKey: (prefix: string, campaignId: string, proxyId: string) => string;
6
+ export declare const proxyUniqueUrlKey: (prefix: string, campaignId: string) => string;
7
+ export declare const proxyIndexKey: (prefix: string, campaignId: string) => string;
8
+ export declare const enabledProxyIndexKey: (prefix: string, campaignId: string) => string;
9
+ export declare const targetKey: (prefix: string, campaignId: string, targetId: string) => string;
10
+ export declare const targetLabelsKey: (prefix: string, campaignId: string, targetId: string) => string;
11
+ export declare const targetUniqueDonorKey: (prefix: string, campaignId: string) => string;
12
+ export declare const targetUniqueMirrorKey: (prefix: string, campaignId: string) => string;
13
+ export declare const targetMirrorHostsKey: (prefix: string) => string;
14
+ export declare const targetIndexKey: (prefix: string, campaignId: string) => string;
15
+ export declare const redirectorKey: (prefix: string, campaignId: string, redirectorId: string) => string;
16
+ export declare const redirectorIndexKey: (prefix: string, campaignId: string) => string;
17
+ export declare const lureKey: (prefix: string, campaignId: string, lureId: string) => string;
18
+ export declare const lurePathsKey: (prefix: string, campaignId: string) => string;
19
+ export declare const lureIndexKey: (prefix: string, campaignId: string) => string;
20
+ export declare const sessionKey: (prefix: string, campaignId: string, sessionId: string) => string;
21
+ export declare const messageKey: (prefix: string, campaignId: string, messageId: string) => string;
@@ -0,0 +1,67 @@
1
+ const buildKey = (...args) => {
2
+ return args.join(':');
3
+ };
4
+ export const campaignKey = (prefix, campaignId) => {
5
+ return buildKey(prefix, 'campaign', campaignId);
6
+ };
7
+ export const campaignLockKey = (prefix, campaignId) => {
8
+ return buildKey(prefix, 'campaign-lock', campaignId);
9
+ };
10
+ export const campaignUniqueMirrorDomainKey = (prefix) => {
11
+ return buildKey(prefix, 'campaign-unique-mirror-domain');
12
+ };
13
+ export const campaignIndexKey = (prefix) => {
14
+ return buildKey(prefix, 'campaign-index');
15
+ };
16
+ export const proxyKey = (prefix, campaignId, proxyId) => {
17
+ return buildKey(prefix, 'proxy', campaignId, proxyId);
18
+ };
19
+ export const proxyUniqueUrlKey = (prefix, campaignId) => {
20
+ return buildKey(prefix, 'proxy-unique-url', campaignId);
21
+ };
22
+ export const proxyIndexKey = (prefix, campaignId) => {
23
+ return buildKey(prefix, 'proxy-index', campaignId);
24
+ };
25
+ export const enabledProxyIndexKey = (prefix, campaignId) => {
26
+ return buildKey(prefix, 'enabled-proxy-index', campaignId);
27
+ };
28
+ export const targetKey = (prefix, campaignId, targetId) => {
29
+ return buildKey(prefix, 'target', campaignId, targetId);
30
+ };
31
+ export const targetLabelsKey = (prefix, campaignId, targetId) => {
32
+ return buildKey(prefix, 'target-labels', campaignId, targetId);
33
+ };
34
+ export const targetUniqueDonorKey = (prefix, campaignId) => {
35
+ return buildKey(prefix, 'target-unique-donor', campaignId);
36
+ };
37
+ export const targetUniqueMirrorKey = (prefix, campaignId) => {
38
+ return buildKey(prefix, 'target-unique-mirror', campaignId);
39
+ };
40
+ export const targetMirrorHostsKey = (prefix) => {
41
+ return buildKey(prefix, 'target-mirror-hosts');
42
+ };
43
+ export const targetIndexKey = (prefix, campaignId) => {
44
+ return buildKey(prefix, 'target-index', campaignId);
45
+ };
46
+ export const redirectorKey = (prefix, campaignId, redirectorId) => {
47
+ return buildKey(prefix, 'redirector', campaignId, redirectorId);
48
+ };
49
+ export const redirectorIndexKey = (prefix, campaignId) => {
50
+ return buildKey(prefix, 'redirector-index', campaignId);
51
+ };
52
+ export const lureKey = (prefix, campaignId, lureId) => {
53
+ return buildKey(prefix, 'lure', campaignId, lureId);
54
+ };
55
+ export const lurePathsKey = (prefix, campaignId) => {
56
+ return buildKey(prefix, 'lure-paths', campaignId);
57
+ };
58
+ export const lureIndexKey = (prefix, campaignId) => {
59
+ return buildKey(prefix, 'lure-index', campaignId);
60
+ };
61
+ export const sessionKey = (prefix, campaignId, sessionId) => {
62
+ return buildKey(prefix, 'session', campaignId, sessionId);
63
+ };
64
+ export const messageKey = (prefix, campaignId, messageId) => {
65
+ return buildKey(prefix, 'message', campaignId, messageId);
66
+ };
67
+ //# sourceMappingURL=database.keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.keys.js","sourceRoot":"","sources":["../src/database.keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { JSONSchemaType } from '@famir/validator';
2
+ export declare const configRedisDatabaseConnectionUrlSchema: JSONSchemaType<string>;
3
+ export declare const configRedisDatabasePrefixSchema: JSONSchemaType<string>;
@@ -0,0 +1,12 @@
1
+ export const configRedisDatabaseConnectionUrlSchema = {
2
+ type: 'string',
3
+ minLength: 1,
4
+ maxLength: 128
5
+ };
6
+ export const configRedisDatabasePrefixSchema = {
7
+ type: 'string',
8
+ minLength: 1,
9
+ maxLength: 128,
10
+ default: 'famir'
11
+ };
12
+ //# sourceMappingURL=database.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.schemas.js","sourceRoot":"","sources":["../src/database.schemas.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sCAAsC,GAA2B;IAC5E,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,GAAG;CAEN,CAAA;AAEV,MAAM,CAAC,MAAM,+BAA+B,GAA2B;IACrE,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,OAAO;CACR,CAAA"}
@@ -0,0 +1,7 @@
1
+ export * from './database.error.js';
2
+ export * from './database.js';
3
+ export * from './database.schemas.js';
4
+ export * from './models/index.js';
5
+ export * from './redis-database-connector.js';
6
+ export * from './redis-database-manager.js';
7
+ export * from './repositories/index.js';
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export * from './database.error.js';
2
+ export * from './database.js';
3
+ export * from './database.schemas.js';
4
+ export * from './models/index.js';
5
+ export * from './redis-database-connector.js';
6
+ export * from './redis-database-manager.js';
7
+ export * from './repositories/index.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA"}
@@ -0,0 +1,24 @@
1
+ export declare class CampaignModel {
2
+ readonly campaignId: string;
3
+ readonly mirrorDomain: string;
4
+ readonly isLocked: boolean;
5
+ readonly sessionCount: number;
6
+ readonly messageCount: number;
7
+ readonly createdAt: Date;
8
+ static isNotNull: <T extends CampaignModel>(model: T | null) => model is T;
9
+ constructor(campaignId: string, mirrorDomain: string, isLocked: boolean, sessionCount: number, messageCount: number, createdAt: Date);
10
+ }
11
+ export declare class FullCampaignModel extends CampaignModel {
12
+ readonly description: string;
13
+ readonly cryptSecret: string;
14
+ readonly landingUpgradePath: string;
15
+ readonly sessionCookieName: string;
16
+ readonly sessionExpire: number;
17
+ readonly newSessionExpire: number;
18
+ readonly messageExpire: number;
19
+ readonly proxyCount: number;
20
+ readonly targetCount: number;
21
+ readonly redirectorCount: number;
22
+ readonly lureCount: number;
23
+ constructor(campaignId: string, mirrorDomain: string, description: string, cryptSecret: string, landingUpgradePath: string, sessionCookieName: string, sessionExpire: number, newSessionExpire: number, messageExpire: number, isLocked: boolean, proxyCount: number, targetCount: number, redirectorCount: number, lureCount: number, sessionCount: number, messageCount: number, createdAt: Date);
24
+ }
@@ -0,0 +1,47 @@
1
+ export class CampaignModel {
2
+ campaignId;
3
+ mirrorDomain;
4
+ isLocked;
5
+ sessionCount;
6
+ messageCount;
7
+ createdAt;
8
+ static isNotNull = (model) => {
9
+ return model != null;
10
+ };
11
+ constructor(campaignId, mirrorDomain, isLocked, sessionCount, messageCount, createdAt) {
12
+ this.campaignId = campaignId;
13
+ this.mirrorDomain = mirrorDomain;
14
+ this.isLocked = isLocked;
15
+ this.sessionCount = sessionCount;
16
+ this.messageCount = messageCount;
17
+ this.createdAt = createdAt;
18
+ }
19
+ }
20
+ export class FullCampaignModel extends CampaignModel {
21
+ description;
22
+ cryptSecret;
23
+ landingUpgradePath;
24
+ sessionCookieName;
25
+ sessionExpire;
26
+ newSessionExpire;
27
+ messageExpire;
28
+ proxyCount;
29
+ targetCount;
30
+ redirectorCount;
31
+ lureCount;
32
+ constructor(campaignId, mirrorDomain, description, cryptSecret, landingUpgradePath, sessionCookieName, sessionExpire, newSessionExpire, messageExpire, isLocked, proxyCount, targetCount, redirectorCount, lureCount, sessionCount, messageCount, createdAt) {
33
+ super(campaignId, mirrorDomain, isLocked, sessionCount, messageCount, createdAt);
34
+ this.description = description;
35
+ this.cryptSecret = cryptSecret;
36
+ this.landingUpgradePath = landingUpgradePath;
37
+ this.sessionCookieName = sessionCookieName;
38
+ this.sessionExpire = sessionExpire;
39
+ this.newSessionExpire = newSessionExpire;
40
+ this.messageExpire = messageExpire;
41
+ this.proxyCount = proxyCount;
42
+ this.targetCount = targetCount;
43
+ this.redirectorCount = redirectorCount;
44
+ this.lureCount = lureCount;
45
+ }
46
+ }
47
+ //# sourceMappingURL=campaign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign.js","sourceRoot":"","sources":["../../../src/models/campaign/campaign.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,aAAa;IAMb;IACA;IACA;IACA;IACA;IACA;IAVX,MAAM,CAAC,SAAS,GAAG,CAA0B,KAAe,EAAc,EAAE;QAC1E,OAAO,KAAK,IAAI,IAAI,CAAA;IACtB,CAAC,CAAA;IAED,YACW,UAAkB,EAClB,YAAoB,EACpB,QAAiB,EACjB,YAAoB,EACpB,YAAoB,EACpB,SAAe;QALf,eAAU,GAAV,UAAU,CAAQ;QAClB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,aAAQ,GAAR,QAAQ,CAAS;QACjB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,cAAS,GAAT,SAAS,CAAM;IACvB,CAAC;;AAGN,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAIvC;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IAdX,YACE,UAAkB,EAClB,YAAoB,EACX,WAAmB,EACnB,WAAmB,EACnB,kBAA0B,EAC1B,iBAAyB,EACzB,aAAqB,EACrB,gBAAwB,EACxB,aAAqB,EAC9B,QAAiB,EACR,UAAkB,EAClB,WAAmB,EACnB,eAAuB,EACvB,SAAiB,EAC1B,YAAoB,EACpB,YAAoB,EACpB,SAAe;QAEf,KAAK,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;QAhBvE,gBAAW,GAAX,WAAW,CAAQ;QACnB,gBAAW,GAAX,WAAW,CAAQ;QACnB,uBAAkB,GAAlB,kBAAkB,CAAQ;QAC1B,sBAAiB,GAAjB,iBAAiB,CAAQ;QACzB,kBAAa,GAAb,aAAa,CAAQ;QACrB,qBAAgB,GAAhB,gBAAgB,CAAQ;QACxB,kBAAa,GAAb,aAAa,CAAQ;QAErB,eAAU,GAAV,UAAU,CAAQ;QAClB,gBAAW,GAAX,WAAW,CAAQ;QACnB,oBAAe,GAAf,eAAe,CAAQ;QACvB,cAAS,GAAT,SAAS,CAAQ;IAM5B,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ export * from './campaign.js';
@@ -0,0 +1,2 @@
1
+ export * from './campaign.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/campaign/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
@@ -0,0 +1,7 @@
1
+ export * from './campaign/index.js';
2
+ export * from './lure/index.js';
3
+ export * from './message/index.js';
4
+ export * from './proxy/index.js';
5
+ export * from './redirector/index.js';
6
+ export * from './session/index.js';
7
+ export * from './target/index.js';
@@ -0,0 +1,8 @@
1
+ export * from './campaign/index.js';
2
+ export * from './lure/index.js';
3
+ export * from './message/index.js';
4
+ export * from './proxy/index.js';
5
+ export * from './redirector/index.js';
6
+ export * from './session/index.js';
7
+ export * from './target/index.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1 @@
1
+ export * from './lure.js';
@@ -0,0 +1,2 @@
1
+ export * from './lure.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/lure/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
@@ -0,0 +1,17 @@
1
+ export declare class LureModel {
2
+ readonly campaignId: string;
3
+ readonly lureId: string;
4
+ readonly path: string;
5
+ readonly redirectorId: string;
6
+ readonly isEnabled: boolean;
7
+ readonly sessionCount: number;
8
+ readonly createdAt: Date;
9
+ static isNotNull: <T extends LureModel>(model: T | null) => model is T;
10
+ static isEnabled: <T extends LureModel>(model: T) => model is T & {
11
+ isEnabled: true;
12
+ };
13
+ constructor(campaignId: string, lureId: string, path: string, redirectorId: string, isEnabled: boolean, sessionCount: number, createdAt: Date);
14
+ }
15
+ export interface EnabledLureModel extends LureModel {
16
+ isEnabled: true;
17
+ }