@soulbatical/tetra-core 0.10.5 → 0.11.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 (245) hide show
  1. package/README.md +32 -6
  2. package/dist/core/createApp.d.ts +1 -1
  3. package/dist/core/createApp.d.ts.map +1 -1
  4. package/dist/generators/rls-checker.d.ts +1 -1
  5. package/dist/generators/rls-checker.js +1 -1
  6. package/dist/generators/rls-exec-sql.d.ts +1 -1
  7. package/dist/generators/rls-exec-sql.js +1 -1
  8. package/dist/generators/rpc/index.d.ts +1 -1
  9. package/dist/generators/rpc/index.js +1 -1
  10. package/dist/index.d.ts +0 -6
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +3 -9
  13. package/dist/index.js.map +1 -1
  14. package/dist/middleware/securityMiddleware.d.ts +1 -1
  15. package/dist/middleware/securityMiddleware.d.ts.map +1 -1
  16. package/dist/utils/logger.d.ts.map +1 -1
  17. package/dist/utils/logger.js +12 -1
  18. package/dist/utils/logger.js.map +1 -1
  19. package/package.json +30 -44
  20. package/dist/affiliate.d.ts +0 -11
  21. package/dist/affiliate.d.ts.map +0 -1
  22. package/dist/affiliate.js +0 -10
  23. package/dist/affiliate.js.map +0 -1
  24. package/dist/billing.d.ts +0 -8
  25. package/dist/billing.d.ts.map +0 -1
  26. package/dist/billing.js +0 -7
  27. package/dist/billing.js.map +0 -1
  28. package/dist/email.d.ts +0 -9
  29. package/dist/email.d.ts.map +0 -1
  30. package/dist/email.js +0 -8
  31. package/dist/email.js.map +0 -1
  32. package/dist/generators/rls-exec-sql.sql +0 -57
  33. package/dist/generators.d.ts +0 -9
  34. package/dist/generators.d.ts.map +0 -1
  35. package/dist/generators.js +0 -8
  36. package/dist/generators.js.map +0 -1
  37. package/dist/mcp.d.ts +0 -8
  38. package/dist/mcp.d.ts.map +0 -1
  39. package/dist/mcp.js +0 -7
  40. package/dist/mcp.js.map +0 -1
  41. package/dist/planner.d.ts +0 -8
  42. package/dist/planner.d.ts.map +0 -1
  43. package/dist/planner.js +0 -7
  44. package/dist/planner.js.map +0 -1
  45. package/dist/shared/affiliate/AffiliateAttributionService.d.ts +0 -47
  46. package/dist/shared/affiliate/AffiliateAttributionService.d.ts.map +0 -1
  47. package/dist/shared/affiliate/AffiliateAttributionService.js +0 -308
  48. package/dist/shared/affiliate/AffiliateAttributionService.js.map +0 -1
  49. package/dist/shared/affiliate/AffiliateClickService.d.ts +0 -35
  50. package/dist/shared/affiliate/AffiliateClickService.d.ts.map +0 -1
  51. package/dist/shared/affiliate/AffiliateClickService.js +0 -87
  52. package/dist/shared/affiliate/AffiliateClickService.js.map +0 -1
  53. package/dist/shared/affiliate/affiliateFeatureConfig.d.ts +0 -11
  54. package/dist/shared/affiliate/affiliateFeatureConfig.d.ts.map +0 -1
  55. package/dist/shared/affiliate/affiliateFeatureConfig.js +0 -242
  56. package/dist/shared/affiliate/affiliateFeatureConfig.js.map +0 -1
  57. package/dist/shared/affiliate/index.d.ts +0 -11
  58. package/dist/shared/affiliate/index.d.ts.map +0 -1
  59. package/dist/shared/affiliate/index.js +0 -13
  60. package/dist/shared/affiliate/index.js.map +0 -1
  61. package/dist/shared/affiliate/routes.d.ts +0 -87
  62. package/dist/shared/affiliate/routes.d.ts.map +0 -1
  63. package/dist/shared/affiliate/routes.js +0 -404
  64. package/dist/shared/affiliate/routes.js.map +0 -1
  65. package/dist/shared/affiliate/types.d.ts +0 -170
  66. package/dist/shared/affiliate/types.d.ts.map +0 -1
  67. package/dist/shared/affiliate/types.js +0 -11
  68. package/dist/shared/affiliate/types.js.map +0 -1
  69. package/dist/shared/billing/BillingService.d.ts +0 -56
  70. package/dist/shared/billing/BillingService.d.ts.map +0 -1
  71. package/dist/shared/billing/BillingService.js +0 -588
  72. package/dist/shared/billing/BillingService.js.map +0 -1
  73. package/dist/shared/billing/SeatBillingService.d.ts +0 -106
  74. package/dist/shared/billing/SeatBillingService.d.ts.map +0 -1
  75. package/dist/shared/billing/SeatBillingService.js +0 -292
  76. package/dist/shared/billing/SeatBillingService.js.map +0 -1
  77. package/dist/shared/billing/index.d.ts +0 -30
  78. package/dist/shared/billing/index.d.ts.map +0 -1
  79. package/dist/shared/billing/index.js +0 -27
  80. package/dist/shared/billing/index.js.map +0 -1
  81. package/dist/shared/billing/routes.d.ts +0 -45
  82. package/dist/shared/billing/routes.d.ts.map +0 -1
  83. package/dist/shared/billing/routes.js +0 -184
  84. package/dist/shared/billing/routes.js.map +0 -1
  85. package/dist/shared/billing/seat-pricing.d.ts +0 -53
  86. package/dist/shared/billing/seat-pricing.d.ts.map +0 -1
  87. package/dist/shared/billing/seat-pricing.js +0 -81
  88. package/dist/shared/billing/seat-pricing.js.map +0 -1
  89. package/dist/shared/billing/types.d.ts +0 -109
  90. package/dist/shared/billing/types.d.ts.map +0 -1
  91. package/dist/shared/billing/types.js +0 -8
  92. package/dist/shared/billing/types.js.map +0 -1
  93. package/dist/shared/email/EmailService.d.ts +0 -64
  94. package/dist/shared/email/EmailService.d.ts.map +0 -1
  95. package/dist/shared/email/EmailService.js +0 -300
  96. package/dist/shared/email/EmailService.js.map +0 -1
  97. package/dist/shared/email/adminRoutes.d.ts +0 -30
  98. package/dist/shared/email/adminRoutes.d.ts.map +0 -1
  99. package/dist/shared/email/adminRoutes.js +0 -227
  100. package/dist/shared/email/adminRoutes.js.map +0 -1
  101. package/dist/shared/email/gmail.d.ts +0 -208
  102. package/dist/shared/email/gmail.d.ts.map +0 -1
  103. package/dist/shared/email/gmail.js +0 -626
  104. package/dist/shared/email/gmail.js.map +0 -1
  105. package/dist/shared/email/index.d.ts +0 -15
  106. package/dist/shared/email/index.d.ts.map +0 -1
  107. package/dist/shared/email/index.js +0 -18
  108. package/dist/shared/email/index.js.map +0 -1
  109. package/dist/shared/email/mailgun.d.ts +0 -18
  110. package/dist/shared/email/mailgun.d.ts.map +0 -1
  111. package/dist/shared/email/mailgun.js +0 -76
  112. package/dist/shared/email/mailgun.js.map +0 -1
  113. package/dist/shared/email/sanitize.d.ts +0 -25
  114. package/dist/shared/email/sanitize.d.ts.map +0 -1
  115. package/dist/shared/email/sanitize.js +0 -39
  116. package/dist/shared/email/sanitize.js.map +0 -1
  117. package/dist/shared/email/smtp.d.ts +0 -20
  118. package/dist/shared/email/smtp.d.ts.map +0 -1
  119. package/dist/shared/email/smtp.js +0 -53
  120. package/dist/shared/email/smtp.js.map +0 -1
  121. package/dist/shared/email/types.d.ts +0 -113
  122. package/dist/shared/email/types.d.ts.map +0 -1
  123. package/dist/shared/email/types.js +0 -7
  124. package/dist/shared/email/types.js.map +0 -1
  125. package/dist/shared/email/webhookRoutes.d.ts +0 -29
  126. package/dist/shared/email/webhookRoutes.d.ts.map +0 -1
  127. package/dist/shared/email/webhookRoutes.js +0 -125
  128. package/dist/shared/email/webhookRoutes.js.map +0 -1
  129. package/dist/shared/mcp/index.d.ts +0 -51
  130. package/dist/shared/mcp/index.d.ts.map +0 -1
  131. package/dist/shared/mcp/index.js +0 -51
  132. package/dist/shared/mcp/index.js.map +0 -1
  133. package/dist/shared/mcp/mcp-auth-routes.d.ts +0 -26
  134. package/dist/shared/mcp/mcp-auth-routes.d.ts.map +0 -1
  135. package/dist/shared/mcp/mcp-auth-routes.js +0 -141
  136. package/dist/shared/mcp/mcp-auth-routes.js.map +0 -1
  137. package/dist/shared/mcp/mcp-db.d.ts +0 -99
  138. package/dist/shared/mcp/mcp-db.d.ts.map +0 -1
  139. package/dist/shared/mcp/mcp-db.js +0 -106
  140. package/dist/shared/mcp/mcp-db.js.map +0 -1
  141. package/dist/shared/mcp/mcp-routes.d.ts +0 -29
  142. package/dist/shared/mcp/mcp-routes.d.ts.map +0 -1
  143. package/dist/shared/mcp/mcp-routes.js +0 -171
  144. package/dist/shared/mcp/mcp-routes.js.map +0 -1
  145. package/dist/shared/mcp/mcp-tokens-routes.d.ts +0 -35
  146. package/dist/shared/mcp/mcp-tokens-routes.d.ts.map +0 -1
  147. package/dist/shared/mcp/mcp-tokens-routes.js +0 -94
  148. package/dist/shared/mcp/mcp-tokens-routes.js.map +0 -1
  149. package/dist/shared/mcp/mcp-usage-routes.d.ts +0 -17
  150. package/dist/shared/mcp/mcp-usage-routes.d.ts.map +0 -1
  151. package/dist/shared/mcp/mcp-usage-routes.js +0 -81
  152. package/dist/shared/mcp/mcp-usage-routes.js.map +0 -1
  153. package/dist/shared/mcp/tenant-context.d.ts +0 -59
  154. package/dist/shared/mcp/tenant-context.d.ts.map +0 -1
  155. package/dist/shared/mcp/tenant-context.js +0 -136
  156. package/dist/shared/mcp/tenant-context.js.map +0 -1
  157. package/dist/shared/mcp/types.d.ts +0 -74
  158. package/dist/shared/mcp/types.d.ts.map +0 -1
  159. package/dist/shared/mcp/types.js +0 -7
  160. package/dist/shared/mcp/types.js.map +0 -1
  161. package/dist/shared/planner/GoogleCalendarService.d.ts +0 -137
  162. package/dist/shared/planner/GoogleCalendarService.d.ts.map +0 -1
  163. package/dist/shared/planner/GoogleCalendarService.js +0 -525
  164. package/dist/shared/planner/GoogleCalendarService.js.map +0 -1
  165. package/dist/shared/planner/PlannerService.d.ts +0 -264
  166. package/dist/shared/planner/PlannerService.d.ts.map +0 -1
  167. package/dist/shared/planner/PlannerService.js +0 -1393
  168. package/dist/shared/planner/PlannerService.js.map +0 -1
  169. package/dist/shared/planner/index.d.ts +0 -37
  170. package/dist/shared/planner/index.d.ts.map +0 -1
  171. package/dist/shared/planner/index.js +0 -35
  172. package/dist/shared/planner/index.js.map +0 -1
  173. package/dist/shared/planner/intervals.d.ts +0 -60
  174. package/dist/shared/planner/intervals.d.ts.map +0 -1
  175. package/dist/shared/planner/intervals.js +0 -141
  176. package/dist/shared/planner/intervals.js.map +0 -1
  177. package/dist/shared/planner/routes.d.ts +0 -69
  178. package/dist/shared/planner/routes.d.ts.map +0 -1
  179. package/dist/shared/planner/routes.js +0 -770
  180. package/dist/shared/planner/routes.js.map +0 -1
  181. package/dist/shared/planner/types.d.ts +0 -328
  182. package/dist/shared/planner/types.d.ts.map +0 -1
  183. package/dist/shared/planner/types.js +0 -9
  184. package/dist/shared/planner/types.js.map +0 -1
  185. package/dist/shared/storage/ImageProcessingService.d.ts +0 -32
  186. package/dist/shared/storage/ImageProcessingService.d.ts.map +0 -1
  187. package/dist/shared/storage/ImageProcessingService.js +0 -127
  188. package/dist/shared/storage/ImageProcessingService.js.map +0 -1
  189. package/dist/shared/storage/StorageProxyService.d.ts +0 -47
  190. package/dist/shared/storage/StorageProxyService.d.ts.map +0 -1
  191. package/dist/shared/storage/StorageProxyService.js +0 -196
  192. package/dist/shared/storage/StorageProxyService.js.map +0 -1
  193. package/dist/shared/storage/StorageUploadService.d.ts +0 -126
  194. package/dist/shared/storage/StorageUploadService.d.ts.map +0 -1
  195. package/dist/shared/storage/StorageUploadService.js +0 -206
  196. package/dist/shared/storage/StorageUploadService.js.map +0 -1
  197. package/dist/shared/storage/creative-urls.d.ts +0 -14
  198. package/dist/shared/storage/creative-urls.d.ts.map +0 -1
  199. package/dist/shared/storage/creative-urls.js +0 -30
  200. package/dist/shared/storage/creative-urls.js.map +0 -1
  201. package/dist/shared/storage/index.d.ts +0 -28
  202. package/dist/shared/storage/index.d.ts.map +0 -1
  203. package/dist/shared/storage/index.js +0 -27
  204. package/dist/shared/storage/index.js.map +0 -1
  205. package/dist/shared/storage/routes.d.ts +0 -42
  206. package/dist/shared/storage/routes.d.ts.map +0 -1
  207. package/dist/shared/storage/routes.js +0 -160
  208. package/dist/shared/storage/routes.js.map +0 -1
  209. package/dist/shared/storage/types.d.ts +0 -53
  210. package/dist/shared/storage/types.d.ts.map +0 -1
  211. package/dist/shared/storage/types.js +0 -2
  212. package/dist/shared/storage/types.js.map +0 -1
  213. package/dist/shared/telegram/index.d.ts +0 -4
  214. package/dist/shared/telegram/index.d.ts.map +0 -1
  215. package/dist/shared/telegram/index.js +0 -3
  216. package/dist/shared/telegram/index.js.map +0 -1
  217. package/dist/shared/telegram/routes.d.ts +0 -48
  218. package/dist/shared/telegram/routes.d.ts.map +0 -1
  219. package/dist/shared/telegram/routes.js +0 -918
  220. package/dist/shared/telegram/routes.js.map +0 -1
  221. package/dist/shared/telegram/types.d.ts +0 -186
  222. package/dist/shared/telegram/types.d.ts.map +0 -1
  223. package/dist/shared/telegram/types.js +0 -7
  224. package/dist/shared/telegram/types.js.map +0 -1
  225. package/dist/shared/telegram/utils.d.ts +0 -44
  226. package/dist/shared/telegram/utils.d.ts.map +0 -1
  227. package/dist/shared/telegram/utils.js +0 -121
  228. package/dist/shared/telegram/utils.js.map +0 -1
  229. package/dist/storage.d.ts +0 -9
  230. package/dist/storage.d.ts.map +0 -1
  231. package/dist/storage.js +0 -8
  232. package/dist/storage.js.map +0 -1
  233. package/dist/telemetry.d.ts +0 -9
  234. package/dist/telemetry.d.ts.map +0 -1
  235. package/dist/telemetry.js +0 -8
  236. package/dist/telemetry.js.map +0 -1
  237. package/scripts/postinstall.js +0 -79
  238. package/src/shared/affiliate/migrations/001_create_affiliates.sql +0 -49
  239. package/src/shared/affiliate/migrations/002_create_affiliate_commissions.sql +0 -31
  240. package/src/shared/affiliate/migrations/003_create_affiliate_clicks.sql +0 -26
  241. package/src/shared/affiliate/migrations/004_create_affiliate_payments.sql +0 -34
  242. package/src/shared/affiliate/migrations/005_create_affiliate_tier_history.sql +0 -19
  243. package/src/shared/affiliate/migrations/006_create_affiliate_rpc_functions.sql +0 -209
  244. package/src/shared/affiliate/migrations/007_create_affiliate_rls_policies.sql +0 -123
  245. package/src/shared/billing/migrations/00000000000001_billing.sql +0 -114
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/shared/telegram/routes.ts"],"names":[],"mappings":"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"}
@@ -1,186 +0,0 @@
1
- /**
2
- * Telegram Integration Types
3
- *
4
- * Used by addTelegramRoutes() factory and consumers.
5
- */
6
- import type { Router } from 'express';
7
- export interface TelegramRoutesConfig {
8
- /** Telegram Bot API token (from @BotFather) */
9
- botToken: string;
10
- /** Bot username without @ (e.g. 'agentrook_bot') */
11
- botUsername: string;
12
- /**
13
- * Called when a free-text message arrives from a connected user.
14
- * Return a string to send back, or null/undefined for no reply.
15
- */
16
- onMessage?: TelegramMessageHandler;
17
- /**
18
- * Called when a callback query (inline keyboard button press) arrives.
19
- * Return a string to edit the original message, or null for no edit.
20
- */
21
- onCallbackQuery?: TelegramCallbackHandler;
22
- /** Project-specific notification rule presets */
23
- presets?: RulePreset[];
24
- /** Custom welcome message for /start (no token). Supports Markdown. */
25
- welcomeMessage?: string;
26
- /** Custom help message for /help. Supports Markdown. */
27
- helpMessage?: string;
28
- /** App name shown in bot messages (e.g. 'Agentrook', 'VinciFox') */
29
- appName?: string;
30
- /** Dashboard URL for /start without token (e.g. 'https://www.agentrook.com/settings/telegram') */
31
- dashboardUrl?: string;
32
- /** Known notification events for validation. If not set, any string is accepted. */
33
- knownEvents?: readonly string[];
34
- /**
35
- * Filter function called before sending any notification.
36
- * Return false to skip the send. Useful for project-specific suppression rules.
37
- */
38
- notificationFilter?: (ctx: TelegramNotificationFilterContext) => boolean;
39
- /**
40
- * Called after a message is successfully sent (fire-and-forget).
41
- * Useful for logging, analytics, or audit trails.
42
- */
43
- onMessageSent?: (ctx: TelegramMessageSentContext) => void;
44
- /**
45
- * Block messages containing detected secrets/credentials.
46
- * Default: true. Set to false to disable (not recommended).
47
- */
48
- blockSecrets?: boolean;
49
- }
50
- export type TelegramMessageHandler = (ctx: TelegramMessageContext) => Promise<string | null | undefined>;
51
- export type TelegramCallbackHandler = (ctx: TelegramCallbackContext) => Promise<string | null | undefined>;
52
- export interface TelegramMessageContext {
53
- chatId: number;
54
- text: string;
55
- firstName: string;
56
- userId: string;
57
- organizationId: string;
58
- /** The user_telegram_settings row */
59
- settings: TelegramUserSettings;
60
- }
61
- export interface TelegramCallbackContext {
62
- chatId: number;
63
- messageId: number;
64
- callbackData: string;
65
- firstName: string;
66
- userId: string;
67
- organizationId: string;
68
- settings: TelegramUserSettings;
69
- }
70
- export interface TelegramUserSettings {
71
- id: string;
72
- user_id: string;
73
- organization_id: string;
74
- telegram_chat_id: string | null;
75
- enabled: boolean;
76
- project_ids: string[] | null;
77
- notification_events: string[] | null;
78
- permissions: string[] | null;
79
- link_token: string | null;
80
- link_token_expires_at: string | null;
81
- connected?: boolean;
82
- created_at: string;
83
- updated_at: string;
84
- }
85
- export interface TelegramRule {
86
- id: string;
87
- organization_id: string;
88
- user_id: string | null;
89
- name: string;
90
- enabled: boolean;
91
- priority: number;
92
- conditions: RuleConditions;
93
- action: RuleAction;
94
- preset_key: string | null;
95
- created_at: string;
96
- updated_at: string;
97
- }
98
- export interface RuleConditions {
99
- event_types?: string[];
100
- project_ids?: string[];
101
- /** Project-specific type filter (e.g. feedback_types, campaign_types) */
102
- custom_types?: string[];
103
- keywords?: string[];
104
- }
105
- export type RuleAction = 'notify' | 'silent';
106
- export interface RulePreset {
107
- key: string;
108
- name_en: string;
109
- name_nl: string;
110
- description_en: string;
111
- description_nl: string;
112
- conditions: RuleConditions;
113
- action: RuleAction;
114
- priority: number;
115
- }
116
- export interface TelegramNotificationFilterContext {
117
- /** Notification priority (project-defined) */
118
- priority?: string;
119
- /** Source system (e.g. 'backend', 'mcp', 'agent') */
120
- source?: string;
121
- /** Notification type (e.g. 'campaign_published', 'error') */
122
- type?: string;
123
- }
124
- export interface TelegramMessageSentContext {
125
- chatId: string | number;
126
- type: 'message' | 'photo' | 'document';
127
- text: string;
128
- messageId?: number;
129
- source?: string;
130
- }
131
- export interface TelegramSendPhotoOptions {
132
- caption?: string;
133
- fileName?: string;
134
- }
135
- export interface TelegramSendDocumentOptions {
136
- caption?: string;
137
- fileName?: string;
138
- }
139
- export interface InlineKeyboard {
140
- inline_keyboard: Array<Array<{
141
- text: string;
142
- callback_data: string;
143
- }>>;
144
- }
145
- export interface NotifyEventOptions {
146
- keyboard?: InlineKeyboard;
147
- requiredPermission?: string;
148
- customType?: string;
149
- }
150
- export interface NotifyRecipient {
151
- user_id: string;
152
- telegram_chat_id: string;
153
- first_name?: string | null;
154
- username?: string | null;
155
- message_id?: number | null;
156
- }
157
- export interface NotifySkipped {
158
- user_id: string;
159
- reason: 'no_chat_id' | 'project_mismatch' | 'event_filtered' | 'permission_missing' | 'rule_silent' | 'send_failed';
160
- }
161
- export interface NotifyEventResult {
162
- sent: number;
163
- recipients: NotifyRecipient[];
164
- skipped: NotifySkipped[];
165
- }
166
- export interface TelegramService {
167
- /** Send notification to all matching users in an org (returns sent count) */
168
- notifyEvent: (organizationId: string, projectId: string | null, eventType: string, message: string, options?: NotifyEventOptions) => Promise<number>;
169
- /** Send notification and return detailed recipient + skip info (for audit/timeline logging) */
170
- notifyEventDetailed: (organizationId: string, projectId: string | null, eventType: string, message: string, options?: NotifyEventOptions) => Promise<NotifyEventResult>;
171
- /** Edit a previously sent message */
172
- editMessage: (chatId: string, messageId: number, newText: string, keyboard?: InlineKeyboard | null) => Promise<boolean>;
173
- /** Send a direct message to a specific chat (with markdown fallback, splitting, idempotency, secret blocking) */
174
- sendMessage: (chatId: string | number, text: string, keyboard?: InlineKeyboard) => Promise<boolean>;
175
- /** Send a photo to a specific chat (URL or Buffer) */
176
- sendPhoto: (chatId: string | number, photo: string | Buffer, options?: TelegramSendPhotoOptions) => Promise<boolean>;
177
- /** Send a document to a specific chat (URL or Buffer) */
178
- sendDocument: (chatId: string | number, document: string | Buffer, options?: TelegramSendDocumentOptions) => Promise<boolean>;
179
- /** The admin router (settings, connect, disconnect, test, rules) */
180
- adminRouter: Router;
181
- /** The public webhook router */
182
- webhookRouter: Router;
183
- /** Register webhook URL with Telegram API (call on server start) */
184
- registerWebhook: (baseUrl: string) => Promise<boolean>;
185
- }
186
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/telegram/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAW,MAAM,SAAS,CAAC;AAI/C,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC;;;OAGG;IACH,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,iDAAiD;IACjD,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kGAAkG;IAClG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,iCAAiC,KAAK,OAAO,CAAC;IACzE;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAC1D;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,sBAAsB,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAEzG,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,uBAAuB,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAE3G,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAID,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,mBAAmB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACrC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,cAAc,CAAC;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7C,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,cAAc,CAAC;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,WAAW,iCAAiC;IAChD,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CACxE;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,aAAa,GAAG,aAAa,CAAC;CACrH;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAID,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,WAAW,EAAE,CACX,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,+FAA+F;IAC/F,mBAAmB,EAAE,CACnB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChC,qCAAqC;IACrC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxH,iHAAiH;IACjH,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpG,sDAAsD;IACtD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrH,yDAAyD;IACzD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,2BAA2B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9H,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACxD"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Telegram Integration Types
3
- *
4
- * Used by addTelegramRoutes() factory and consumers.
5
- */
6
- export {};
7
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/telegram/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,44 +0,0 @@
1
- /**
2
- * Telegram Utilities
3
- *
4
- * Shared utility functions for Telegram integrations:
5
- * - Message splitting (smart breakpoints on newlines/spaces)
6
- * - Secret detection and scrubbing (prevents credential leaks)
7
- * - Idempotency (in-memory dedup within configurable window)
8
- */
9
- /** Regex patterns for detecting common secret/credential formats */
10
- export declare const SECRET_PATTERNS: RegExp[];
11
- /**
12
- * Check if text contains secrets/credentials.
13
- * Returns array of redacted previews (first 8 chars + ***) for each match.
14
- * Empty array = no secrets found.
15
- */
16
- export declare function containsSecrets(text: string): string[];
17
- /**
18
- * Replace all detected secrets in text with redacted versions.
19
- * Each secret is replaced with its first 4 chars + '***[REDACTED]'.
20
- */
21
- export declare function scrubSecrets(text: string): string;
22
- /**
23
- * Split a long message into chunks that fit within Telegram's limits.
24
- * Prefers breaking at newlines, then spaces, then hard-cuts at maxLength.
25
- */
26
- export declare function splitMessage(text: string, maxLength?: number): string[];
27
- /**
28
- * Generate a hash for deduplication based on chatId + text prefix.
29
- * Uses MD5 for speed (not security - just dedup).
30
- */
31
- export declare function generateIdempotencyHash(chatId: string | number, text: string): string;
32
- /**
33
- * Check if a message with this hash was recently sent.
34
- * Returns true if duplicate (should be skipped).
35
- */
36
- export declare function isDuplicate(hash: string, windowMs?: number): boolean;
37
- /**
38
- * Mark a message hash as sent (for future dedup checks).
39
- * Automatically prunes expired entries when map exceeds MAX_ENTRIES.
40
- */
41
- export declare function markSent(hash: string, windowMs?: number): void;
42
- /** Clear all idempotency state (useful for testing) */
43
- export declare function clearIdempotencyCache(): void;
44
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/shared/telegram/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,oEAAoE;AACpE,eAAO,MAAM,eAAe,EAAE,MAAM,EAWnC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAUtD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMjD;AAMD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAqB,GAAG,MAAM,EAAE,CAsBnF;AASD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAErF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAoB,GAAG,OAAO,CAQ/E;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAoB,GAAG,IAAI,CASzE;AAED,uDAAuD;AACvD,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
@@ -1,121 +0,0 @@
1
- /**
2
- * Telegram Utilities
3
- *
4
- * Shared utility functions for Telegram integrations:
5
- * - Message splitting (smart breakpoints on newlines/spaces)
6
- * - Secret detection and scrubbing (prevents credential leaks)
7
- * - Idempotency (in-memory dedup within configurable window)
8
- */
9
- import crypto from 'crypto';
10
- // ── Secret Detection ───────────────────────────────────────────
11
- /** Regex patterns for detecting common secret/credential formats */
12
- export const SECRET_PATTERNS = [
13
- /\b(sk_live_|sk_test_|pk_live_|pk_test_)[A-Za-z0-9]{10,}/g, // Stripe keys
14
- /\b(whsec_)[A-Za-z0-9]{10,}/g, // Stripe webhook secrets
15
- /\b(ghp_|gho_|ghs_|ghr_|github_pat_)[A-Za-z0-9_]{10,}/g, // GitHub tokens
16
- /\bxoxb-[0-9]+-[A-Za-z0-9]+/g, // Slack bot tokens
17
- /\bBearer\s+[A-Za-z0-9\-._~+/]+=*/g, // Bearer tokens
18
- /\b(npm_)[A-Za-z0-9]{10,}/g, // npm tokens
19
- /\b(AKIA|ASIA)[A-Z0-9]{16}/g, // AWS access keys
20
- /\b(eyJ)[A-Za-z0-9\-_]{20,}\.[A-Za-z0-9\-_]{20,}\.[A-Za-z0-9\-_]{20,}/g, // JWTs
21
- /\b[0-9a-f]{64}\b/g, // 256-bit hex keys
22
- /\bAIza[A-Za-z0-9\-_]{35}/g, // Google API keys
23
- ];
24
- /**
25
- * Check if text contains secrets/credentials.
26
- * Returns array of redacted previews (first 8 chars + ***) for each match.
27
- * Empty array = no secrets found.
28
- */
29
- export function containsSecrets(text) {
30
- const found = [];
31
- for (const pattern of SECRET_PATTERNS) {
32
- pattern.lastIndex = 0;
33
- const match = pattern.exec(text);
34
- if (match) {
35
- found.push(match[0].slice(0, 8) + '***');
36
- }
37
- }
38
- return found;
39
- }
40
- /**
41
- * Replace all detected secrets in text with redacted versions.
42
- * Each secret is replaced with its first 4 chars + '***[REDACTED]'.
43
- */
44
- export function scrubSecrets(text) {
45
- let result = text;
46
- for (const pattern of SECRET_PATTERNS) {
47
- result = result.replace(pattern, (match) => match.slice(0, 4) + '***[REDACTED]');
48
- }
49
- return result;
50
- }
51
- // ── Message Splitting ──────────────────────────────────────────
52
- const DEFAULT_MAX_LENGTH = 4000;
53
- /**
54
- * Split a long message into chunks that fit within Telegram's limits.
55
- * Prefers breaking at newlines, then spaces, then hard-cuts at maxLength.
56
- */
57
- export function splitMessage(text, maxLength = DEFAULT_MAX_LENGTH) {
58
- if (text.length <= maxLength)
59
- return [text];
60
- const chunks = [];
61
- let remaining = text;
62
- while (remaining.length > 0) {
63
- if (remaining.length <= maxLength) {
64
- chunks.push(remaining);
65
- break;
66
- }
67
- // Find best breakpoint: prefer newline, then space, then hard cut
68
- let bp = remaining.lastIndexOf('\n', maxLength);
69
- if (bp < maxLength / 2)
70
- bp = remaining.lastIndexOf(' ', maxLength);
71
- if (bp < maxLength / 2)
72
- bp = maxLength;
73
- chunks.push(remaining.slice(0, bp));
74
- remaining = remaining.slice(bp).trim();
75
- }
76
- return chunks;
77
- }
78
- // ── Idempotency ────────────────────────────────────────────────
79
- const DEFAULT_WINDOW_MS = 5 * 60 * 1000; // 5 minutes
80
- const MAX_ENTRIES = 200;
81
- const recentMessages = new Map();
82
- /**
83
- * Generate a hash for deduplication based on chatId + text prefix.
84
- * Uses MD5 for speed (not security - just dedup).
85
- */
86
- export function generateIdempotencyHash(chatId, text) {
87
- return crypto.createHash('md5').update(`${chatId}:${text.slice(0, 100)}`).digest('hex');
88
- }
89
- /**
90
- * Check if a message with this hash was recently sent.
91
- * Returns true if duplicate (should be skipped).
92
- */
93
- export function isDuplicate(hash, windowMs = DEFAULT_WINDOW_MS) {
94
- const lastSent = recentMessages.get(hash);
95
- if (!lastSent)
96
- return false;
97
- if (Date.now() - lastSent > windowMs) {
98
- recentMessages.delete(hash);
99
- return false;
100
- }
101
- return true;
102
- }
103
- /**
104
- * Mark a message hash as sent (for future dedup checks).
105
- * Automatically prunes expired entries when map exceeds MAX_ENTRIES.
106
- */
107
- export function markSent(hash, windowMs = DEFAULT_WINDOW_MS) {
108
- recentMessages.set(hash, Date.now());
109
- if (recentMessages.size > MAX_ENTRIES) {
110
- const cutoff = Date.now() - windowMs;
111
- for (const [key, timestamp] of recentMessages) {
112
- if (timestamp < cutoff)
113
- recentMessages.delete(key);
114
- }
115
- }
116
- }
117
- /** Clear all idempotency state (useful for testing) */
118
- export function clearIdempotencyCache() {
119
- recentMessages.clear();
120
- }
121
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/shared/telegram/utils.ts"],"names":[],"mappings":"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"}
package/dist/storage.d.ts DELETED
@@ -1,9 +0,0 @@
1
- /**
2
- * @soulbatical/tetra-core/storage
3
- *
4
- * Storage module (file uploads, image processing). Requires multer + sharp.
5
- */
6
- export { addStorageProxyRoutes, addStorageUploadRoutes, StorageProxyService, StorageUploadService, ImageProcessingService, STANDARD_IMAGE_SIZES } from './shared/storage/index.js';
7
- export type { StorageConfig, StorageProxyOptions, StorageUploadOptions, UploadResult as StorageUploadResult, ImageSize, ProcessedImageResult, ImageProcessingOptions, FileUploadOptions, MultiSizeUploadOptions, PrivateUploadOptions, PrivateUploadResult, MultiSizeUploadResult } from './shared/storage/index.js';
8
- export { getCreativeUrl, getCreativeStoragePath, getAdLibraryThumbnailUrl, getAdLibraryThumbnailPath } from './shared/storage/index.js';
9
- //# sourceMappingURL=storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACnL,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,YAAY,IAAI,mBAAmB,EAAE,SAAS,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACrT,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/storage.js DELETED
@@ -1,8 +0,0 @@
1
- /**
2
- * @soulbatical/tetra-core/storage
3
- *
4
- * Storage module (file uploads, image processing). Requires multer + sharp.
5
- */
6
- export { addStorageProxyRoutes, addStorageUploadRoutes, StorageProxyService, StorageUploadService, ImageProcessingService, STANDARD_IMAGE_SIZES } from './shared/storage/index.js';
7
- export { getCreativeUrl, getCreativeStoragePath, getAdLibraryThumbnailUrl, getAdLibraryThumbnailPath } from './shared/storage/index.js';
8
- //# sourceMappingURL=storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEnL,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * @soulbatical/tetra-core/telemetry
3
- *
4
- * Non-blocking installation tracking for Tetra.
5
- * Sends heartbeats to ralph-manager. Opt-out via TETRA_TELEMETRY=false.
6
- */
7
- export { isTelemetryEnabled, buildHeartbeatPayload, sendHeartbeat, startHeartbeat, stopHeartbeat, getCurrentInterval, } from './shared/telemetry/index.js';
8
- export type { HeartbeatPayload, TelemetryConfig, UsageData, } from './shared/telemetry/index.js';
9
- //# sourceMappingURL=telemetry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,aAAa,EACb,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,SAAS,GACV,MAAM,6BAA6B,CAAC"}
package/dist/telemetry.js DELETED
@@ -1,8 +0,0 @@
1
- /**
2
- * @soulbatical/tetra-core/telemetry
3
- *
4
- * Non-blocking installation tracking for Tetra.
5
- * Sends heartbeats to ralph-manager. Opt-out via TETRA_TELEMETRY=false.
6
- */
7
- export { isTelemetryEnabled, buildHeartbeatPayload, sendHeartbeat, startHeartbeat, stopHeartbeat, getCurrentInterval, } from './shared/telemetry/index.js';
8
- //# sourceMappingURL=telemetry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,aAAa,EACb,kBAAkB,GACnB,MAAM,6BAA6B,CAAC"}
@@ -1,79 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Tetra Core — Postinstall
5
- *
6
- * Automatically sets up quality infrastructure when tetra-core is installed
7
- * in a consumer project. Runs tetra-setup (hooks, ci, config) so every
8
- * Tetra project gets the full quality gate from day one.
9
- *
10
- * Skips in:
11
- * - CI environments (CI=true, GITHUB_ACTIONS, etc.)
12
- * - Docker builds (/.dockerenv)
13
- * - The tetra monorepo itself
14
- * - npm pack / npm publish
15
- * - Non-interactive environments without a project
16
- */
17
-
18
- import { existsSync } from 'fs'
19
- import { execSync } from 'child_process'
20
- import { join, dirname } from 'path'
21
- import { fileURLToPath } from 'url'
22
-
23
- const __dirname = dirname(fileURLToPath(import.meta.url))
24
-
25
- // ── Skip conditions ──
26
-
27
- // CI environment
28
- if (process.env.CI || process.env.GITHUB_ACTIONS || process.env.GITLAB_CI ||
29
- process.env.JENKINS_HOME || process.env.CODEBUILD_BUILD_ID) {
30
- process.exit(0)
31
- }
32
-
33
- // Docker
34
- if (existsSync('/.dockerenv')) {
35
- process.exit(0)
36
- }
37
-
38
- // npm pack / publish (no project context)
39
- if (process.env.npm_command === 'pack' || process.env.npm_command === 'publish') {
40
- process.exit(0)
41
- }
42
-
43
- // Inside the tetra monorepo itself
44
- const projectRoot = process.env.INIT_CWD || process.cwd()
45
- if (projectRoot.includes('/tetra/packages/') || projectRoot.endsWith('/tetra')) {
46
- process.exit(0)
47
- }
48
-
49
- // No package.json = not a real project
50
- if (!existsSync(join(projectRoot, 'package.json'))) {
51
- process.exit(0)
52
- }
53
-
54
- // ── Run tetra-setup ──
55
-
56
- // Check if tetra-setup is available
57
- try {
58
- const tetraSetupPath = join(projectRoot, 'node_modules', '.bin', 'tetra-setup')
59
- if (!existsSync(tetraSetupPath)) {
60
- // dev-toolkit not installed yet — will run on next install
61
- process.exit(0)
62
- }
63
-
64
- console.log('')
65
- console.log('🔧 Tetra Core — setting up quality infrastructure...')
66
- console.log('')
67
-
68
- // Run tetra-setup (hooks + ci + config), non-interactive
69
- // Don't use --force to preserve existing customizations
70
- execSync(`node "${tetraSetupPath}"`, {
71
- cwd: projectRoot,
72
- stdio: 'inherit',
73
- timeout: 30000,
74
- })
75
- } catch (err) {
76
- // Non-blocking — setup failure shouldn't break npm install
77
- console.log('⚠️ Tetra setup encountered an issue (non-blocking)')
78
- console.log(` Run 'npx tetra-setup' manually to complete setup`)
79
- }
@@ -1,49 +0,0 @@
1
- -- ============================================================================
2
- -- Affiliate Module: affiliates table
3
- -- Template from @soulbatical/tetra-core
4
- -- Multi-tenant: organization_id on every row
5
- -- ============================================================================
6
-
7
- CREATE TABLE IF NOT EXISTS public.affiliates (
8
- id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
9
- organization_id uuid NOT NULL REFERENCES public.organizations(id),
10
- user_id uuid REFERENCES public.users_public(id),
11
- email text NOT NULL,
12
- contact_name text NOT NULL,
13
- company_name text,
14
- phone text,
15
- address text,
16
- postal_code text,
17
- city text,
18
- country text DEFAULT 'NL',
19
- vat_number text,
20
- kvk_number text,
21
- website text,
22
- status text NOT NULL DEFAULT 'pending',
23
- referral_code text NOT NULL,
24
- tier text NOT NULL DEFAULT 'starter',
25
- commission_percentage numeric NOT NULL DEFAULT 30,
26
- cookie_duration_days integer DEFAULT 90,
27
- total_clicks integer DEFAULT 0,
28
- total_sales integer DEFAULT 0,
29
- total_revenue numeric DEFAULT 0,
30
- total_commission_earned numeric DEFAULT 0,
31
- total_commission_paid numeric DEFAULT 0,
32
- active_since timestamptz,
33
- last_sale_at timestamptz,
34
- notes text,
35
- created_at timestamptz DEFAULT now(),
36
- updated_at timestamptz DEFAULT now()
37
- );
38
-
39
- -- Unique constraints
40
- ALTER TABLE public.affiliates ADD CONSTRAINT affiliates_email_org_unique UNIQUE (organization_id, email);
41
- ALTER TABLE public.affiliates ADD CONSTRAINT affiliates_referral_code_unique UNIQUE (referral_code);
42
-
43
- -- Indexes
44
- CREATE INDEX IF NOT EXISTS idx_affiliates_org_id ON public.affiliates(organization_id);
45
- CREATE INDEX IF NOT EXISTS idx_affiliates_referral_code ON public.affiliates(referral_code);
46
- CREATE INDEX IF NOT EXISTS idx_affiliates_status ON public.affiliates(status);
47
- CREATE INDEX IF NOT EXISTS idx_affiliates_tier ON public.affiliates(tier);
48
- CREATE INDEX IF NOT EXISTS idx_affiliates_user_id ON public.affiliates(user_id);
49
- CREATE INDEX IF NOT EXISTS idx_affiliates_email ON public.affiliates(email);