@stacksjs/ts-cloud-core 0.1.6 → 0.1.7

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 (225) hide show
  1. package/dist/advanced-features.test.d.ts +0 -0
  2. package/dist/aws/cloudformation.d.ts +69 -0
  3. package/dist/aws/cloudfront.d.ts +21 -0
  4. package/dist/aws/credentials.d.ts +66 -0
  5. package/dist/aws/credentials.test.d.ts +0 -0
  6. package/dist/aws/index.d.ts +73 -0
  7. package/dist/aws/s3.d.ts +130 -0
  8. package/dist/aws/s3.test.d.ts +0 -0
  9. package/dist/aws/signature.d.ts +101 -0
  10. package/dist/aws/signature.test.d.ts +0 -0
  11. package/dist/backup/disaster-recovery.d.ts +98 -0
  12. package/dist/backup/disaster-recovery.test.d.ts +0 -0
  13. package/dist/backup/index.d.ts +24 -0
  14. package/dist/backup/manager.d.ts +112 -0
  15. package/dist/backup/manager.test.d.ts +0 -0
  16. package/dist/cicd/circleci.d.ts +47 -0
  17. package/dist/cicd/github-actions.d.ts +55 -0
  18. package/dist/cicd/gitlab-ci.d.ts +46 -0
  19. package/dist/cicd/index.d.ts +3 -0
  20. package/dist/cli/history.d.ts +66 -0
  21. package/dist/cli/index.d.ts +5 -0
  22. package/dist/cli/progress.d.ts +97 -0
  23. package/dist/cli/repl.d.ts +76 -0
  24. package/dist/cli/suggestions.d.ts +67 -0
  25. package/dist/cli/table.d.ts +70 -0
  26. package/dist/cli/table.test.d.ts +0 -0
  27. package/dist/cloudformation/builder.d.ts +59 -0
  28. package/dist/cloudformation/builder.test.d.ts +0 -0
  29. package/dist/cloudformation/builders/api-gateway.d.ts +30 -0
  30. package/dist/cloudformation/builders/cache.d.ts +35 -0
  31. package/dist/cloudformation/builders/cdn.d.ts +34 -0
  32. package/dist/cloudformation/builders/compute.d.ts +66 -0
  33. package/dist/cloudformation/builders/database.d.ts +61 -0
  34. package/dist/cloudformation/builders/functions.d.ts +32 -0
  35. package/dist/cloudformation/builders/messaging.d.ts +17 -0
  36. package/dist/cloudformation/builders/monitoring.d.ts +36 -0
  37. package/dist/cloudformation/builders/network.d.ts +14 -0
  38. package/dist/cloudformation/builders/queue.d.ts +8 -0
  39. package/dist/cloudformation/builders/security.d.ts +31 -0
  40. package/dist/cloudformation/builders/storage.d.ts +8 -0
  41. package/dist/cloudformation/index.d.ts +24 -0
  42. package/dist/cloudformation/types.d.ts +132 -0
  43. package/dist/compliance/aws-config.d.ts +88 -0
  44. package/dist/compliance/cloudtrail.d.ts +96 -0
  45. package/dist/compliance/compliance.test.d.ts +0 -0
  46. package/dist/compliance/guardduty.d.ts +110 -0
  47. package/dist/compliance/index.d.ts +50 -0
  48. package/dist/compliance/security-hub.d.ts +110 -0
  49. package/dist/containers/build-optimization.d.ts +110 -0
  50. package/dist/containers/containers.test.d.ts +0 -0
  51. package/dist/containers/image-scanning.d.ts +96 -0
  52. package/dist/containers/index.d.ts +4 -0
  53. package/dist/containers/registry.d.ts +99 -0
  54. package/dist/containers/service-mesh.d.ts +206 -0
  55. package/dist/database/database.test.d.ts +0 -0
  56. package/dist/database/index.d.ts +4 -0
  57. package/dist/database/migrations.d.ts +102 -0
  58. package/dist/database/performance.d.ts +168 -0
  59. package/dist/database/replicas.d.ts +146 -0
  60. package/dist/database/users.d.ts +102 -0
  61. package/dist/dependency-graph.d.ts +19 -0
  62. package/dist/deployment/ab-testing.d.ts +114 -0
  63. package/dist/deployment/blue-green.d.ts +98 -0
  64. package/dist/deployment/canary.d.ts +103 -0
  65. package/dist/deployment/deployment.test.d.ts +0 -0
  66. package/dist/deployment/index.d.ts +45 -0
  67. package/dist/deployment/progressive.d.ts +34 -0
  68. package/dist/dns/dns.test.d.ts +0 -0
  69. package/dist/dns/dnssec.d.ts +75 -0
  70. package/dist/dns/index.d.ts +3 -0
  71. package/dist/dns/resolver.d.ts +150 -0
  72. package/dist/dns/routing.d.ts +217 -0
  73. package/dist/email/advanced/analytics.d.ts +78 -0
  74. package/dist/email/advanced/index.d.ts +7 -0
  75. package/dist/email/advanced/rules.d.ts +60 -0
  76. package/dist/email/advanced/scheduling.d.ts +63 -0
  77. package/dist/email/advanced/search.d.ts +76 -0
  78. package/dist/email/advanced/shared-mailboxes.d.ts +66 -0
  79. package/dist/email/advanced/templates.d.ts +39 -0
  80. package/dist/email/advanced/threading.d.ts +53 -0
  81. package/dist/email/analytics.d.ts +144 -0
  82. package/dist/email/bounce-handling.d.ts +120 -0
  83. package/dist/email/email.test.d.ts +0 -0
  84. package/dist/email/handlers/__tests__/inbound.test.d.ts +0 -0
  85. package/dist/email/handlers/__tests__/outbound.test.d.ts +0 -0
  86. package/dist/email/handlers/converter.d.ts +225 -0
  87. package/dist/email/handlers/feedback.d.ts +226 -0
  88. package/dist/email/handlers/inbound.d.ts +167 -0
  89. package/dist/email/handlers/outbound.d.ts +176 -0
  90. package/dist/email/index.d.ts +6 -0
  91. package/dist/email/reputation.d.ts +97 -0
  92. package/dist/email/templates.d.ts +82 -0
  93. package/dist/errors/index.d.ts +186 -0
  94. package/dist/errors/index.test.d.ts +0 -0
  95. package/dist/health-checks/index.d.ts +35 -0
  96. package/dist/index.d.ts +256 -0
  97. package/dist/index.js +63499 -0
  98. package/dist/intrinsic-functions.d.ts +37 -0
  99. package/dist/lambda/concurrency.d.ts +98 -0
  100. package/dist/lambda/destinations.d.ts +99 -0
  101. package/dist/lambda/dlq.d.ts +109 -0
  102. package/dist/lambda/index.d.ts +6 -0
  103. package/dist/lambda/lambda.test.d.ts +0 -0
  104. package/dist/lambda/layers.d.ts +81 -0
  105. package/dist/lambda/versions.d.ts +91 -0
  106. package/dist/lambda/vpc.d.ts +116 -0
  107. package/dist/local/config.d.ts +44 -0
  108. package/dist/local/index.d.ts +2 -0
  109. package/dist/local/mock-aws.d.ts +60 -0
  110. package/dist/modules/ai.d.ts +47 -0
  111. package/dist/modules/api.d.ts +98 -0
  112. package/dist/modules/auth.d.ts +165 -0
  113. package/dist/modules/cache.d.ts +73 -0
  114. package/dist/modules/cdn.d.ts +125 -0
  115. package/dist/modules/communication.d.ts +98 -0
  116. package/dist/modules/compute.d.ts +309 -0
  117. package/dist/modules/database.d.ts +105 -0
  118. package/dist/modules/deployment.d.ts +181 -0
  119. package/dist/modules/dns.d.ts +45 -0
  120. package/dist/modules/email.d.ts +217 -0
  121. package/dist/modules/filesystem.d.ts +94 -0
  122. package/dist/modules/index.d.ts +27 -0
  123. package/dist/modules/messaging.d.ts +108 -0
  124. package/dist/modules/monitoring.d.ts +127 -0
  125. package/dist/modules/network.d.ts +102 -0
  126. package/dist/modules/parameter-store.d.ts +33 -0
  127. package/dist/modules/permissions.d.ts +132 -0
  128. package/dist/modules/phone.d.ts +80 -0
  129. package/dist/modules/queue.d.ts +210 -0
  130. package/dist/modules/redirects.d.ts +59 -0
  131. package/dist/modules/registry.d.ts +73 -0
  132. package/dist/modules/search.d.ts +56 -0
  133. package/dist/modules/secrets.d.ts +80 -0
  134. package/dist/modules/security.d.ts +100 -0
  135. package/dist/modules/sms.d.ts +52 -0
  136. package/dist/modules/storage.d.ts +160 -0
  137. package/dist/modules/workflow.d.ts +205 -0
  138. package/dist/multi-account/config.d.ts +315 -0
  139. package/dist/multi-account/index.d.ts +2 -0
  140. package/dist/multi-account/manager.d.ts +100 -0
  141. package/dist/multi-region/cross-region.d.ts +114 -0
  142. package/dist/multi-region/index.d.ts +3 -0
  143. package/dist/multi-region/manager.d.ts +72 -0
  144. package/dist/multi-region/regions.d.ts +98 -0
  145. package/dist/network-security/index.d.ts +39 -0
  146. package/dist/observability/index.d.ts +4 -0
  147. package/dist/observability/logs.d.ts +129 -0
  148. package/dist/observability/metrics.d.ts +153 -0
  149. package/dist/observability/observability.test.d.ts +0 -0
  150. package/dist/observability/synthetics.d.ts +146 -0
  151. package/dist/observability/xray.d.ts +129 -0
  152. package/dist/phone/advanced/analytics.d.ts +66 -0
  153. package/dist/phone/advanced/callbacks.d.ts +50 -0
  154. package/dist/phone/advanced/index.d.ts +4 -0
  155. package/dist/phone/advanced/ivr-builder.d.ts +83 -0
  156. package/dist/phone/advanced/recording.d.ts +48 -0
  157. package/dist/phone/handlers/__tests__/incoming-call.test.d.ts +0 -0
  158. package/dist/phone/handlers/incoming-call.d.ts +115 -0
  159. package/dist/phone/handlers/missed-call.d.ts +114 -0
  160. package/dist/phone/handlers/voicemail.d.ts +177 -0
  161. package/dist/phone/index.d.ts +2 -0
  162. package/dist/presets/api-backend.d.ts +11 -0
  163. package/dist/presets/data-pipeline.d.ts +11 -0
  164. package/dist/presets/extend.d.ts +194 -0
  165. package/dist/presets/extend.test.d.ts +0 -0
  166. package/dist/presets/fullstack-app.d.ts +12 -0
  167. package/dist/presets/index.d.ts +24 -0
  168. package/dist/presets/jamstack.d.ts +12 -0
  169. package/dist/presets/microservices.d.ts +18 -0
  170. package/dist/presets/ml-api.d.ts +13 -0
  171. package/dist/presets/nodejs-server.d.ts +14 -0
  172. package/dist/presets/nodejs-serverless.d.ts +14 -0
  173. package/dist/presets/realtime-app.d.ts +11 -0
  174. package/dist/presets/static-site.d.ts +12 -0
  175. package/dist/presets/traditional-web-app.d.ts +16 -0
  176. package/dist/presets/wordpress.d.ts +12 -0
  177. package/dist/preview/github.d.ts +32 -0
  178. package/dist/preview/github.test.d.ts +0 -0
  179. package/dist/preview/index.d.ts +27 -0
  180. package/dist/preview/manager.d.ts +58 -0
  181. package/dist/preview/manager.test.d.ts +0 -0
  182. package/dist/preview/notifications.d.ts +55 -0
  183. package/dist/preview/notifications.test.d.ts +0 -0
  184. package/dist/queue/batch-processing.d.ts +87 -0
  185. package/dist/queue/dlq-monitoring.d.ts +95 -0
  186. package/dist/queue/fifo.d.ts +90 -0
  187. package/dist/queue/index.d.ts +4 -0
  188. package/dist/queue/management.d.ts +105 -0
  189. package/dist/queue/queue.test.d.ts +0 -0
  190. package/dist/resource-mgmt/index.d.ts +29 -0
  191. package/dist/resource-naming.d.ts +26 -0
  192. package/dist/s3/index.d.ts +173 -0
  193. package/dist/schema/index.d.ts +9 -0
  194. package/dist/security/certificate-manager.d.ts +121 -0
  195. package/dist/security/index.d.ts +4 -0
  196. package/dist/security/scanning.d.ts +147 -0
  197. package/dist/security/secrets-manager.d.ts +144 -0
  198. package/dist/security/secrets-rotation.d.ts +115 -0
  199. package/dist/security/security.test.d.ts +0 -0
  200. package/dist/sms/advanced/ab-testing.d.ts +54 -0
  201. package/dist/sms/advanced/analytics.d.ts +56 -0
  202. package/dist/sms/advanced/campaigns.d.ts +82 -0
  203. package/dist/sms/advanced/chatbot.d.ts +48 -0
  204. package/dist/sms/advanced/index.d.ts +6 -0
  205. package/dist/sms/advanced/link-tracking.d.ts +42 -0
  206. package/dist/sms/advanced/mms.d.ts +35 -0
  207. package/dist/sms/handlers/__tests__/send.test.d.ts +0 -0
  208. package/dist/sms/handlers/delivery-status.d.ts +131 -0
  209. package/dist/sms/handlers/receive.d.ts +160 -0
  210. package/dist/sms/handlers/send.d.ts +172 -0
  211. package/dist/sms/index.d.ts +2 -0
  212. package/dist/stack-diff.d.ts +34 -0
  213. package/dist/static-site/index.d.ts +49 -0
  214. package/dist/template-builder.d.ts +14 -0
  215. package/dist/template-validator.d.ts +24 -0
  216. package/dist/utils/cache.d.ts +55 -0
  217. package/dist/utils/diff.d.ts +48 -0
  218. package/dist/utils/hash.d.ts +58 -0
  219. package/dist/utils/index.d.ts +4 -0
  220. package/dist/utils/parallel.d.ts +60 -0
  221. package/dist/validators/credentials.d.ts +23 -0
  222. package/dist/validators/credentials.test.d.ts +0 -0
  223. package/dist/validators/quotas.d.ts +60 -0
  224. package/dist/validators/quotas.test.d.ts +0 -0
  225. package/package.json +4 -4
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Email Search and Indexing
3
+ *
4
+ * Provides OpenSearch integration for email search functionality
5
+ */
6
+ export declare interface EmailSearchConfig {
7
+ slug: string
8
+ environment: string
9
+ domainName?: string
10
+ instanceType?: string
11
+ instanceCount?: number
12
+ ebsVolumeSize?: number
13
+ masterUserName?: string
14
+ masterUserPassword?: string
15
+ }
16
+ export declare interface EmailSearchDocument {
17
+ messageId: string
18
+ from: string
19
+ fromName?: string
20
+ to: string
21
+ toName?: string
22
+ cc?: string[]
23
+ subject: string
24
+ body: string
25
+ bodyPreview: string
26
+ date: string
27
+ receivedAt: string
28
+ hasAttachments: boolean
29
+ attachmentNames?: string[]
30
+ labels?: string[]
31
+ folder: string
32
+ threadId?: string
33
+ isRead: boolean
34
+ isStarred?: boolean
35
+ mailbox: string
36
+ }
37
+ export declare interface SearchQuery {
38
+ query: string
39
+ from?: string
40
+ to?: string
41
+ subject?: string
42
+ hasAttachments?: boolean
43
+ dateFrom?: string
44
+ dateTo?: string
45
+ folder?: string
46
+ labels?: string[]
47
+ isRead?: boolean
48
+ limit?: number
49
+ offset?: number
50
+ sort?: 'date' | 'relevance'
51
+ sortOrder?: 'asc' | 'desc'
52
+ }
53
+ export declare interface SearchResult {
54
+ total: number
55
+ hits: Array<{
56
+ score: number
57
+ document: EmailSearchDocument
58
+ highlights?: Record<string, string[]>
59
+ }>
60
+ }
61
+ /**
62
+ * Email Search Module
63
+ */
64
+ export declare class EmailSearch {
65
+ static createSearchDomain(config: EmailSearchConfig): Record<string, any>;
66
+ static createIndexerLambda(config: {
67
+ slug: string
68
+ roleArn: string
69
+ searchDomainEndpoint: string
70
+ emailBucket: string
71
+ }): Record<string, any>;
72
+ static IndexerLambdaCode: any;
73
+ static getIndexMapping(): Record<string, any>;
74
+ static buildSearchQuery(params: SearchQuery): Record<string, any>;
75
+ }
76
+ export default EmailSearch;
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Shared Mailboxes for Teams
3
+ *
4
+ * Provides shared mailbox functionality with team access
5
+ */
6
+ export declare interface SharedMailbox {
7
+ id: string
8
+ address: string
9
+ displayName: string
10
+ description?: string
11
+ members: MailboxMember[]
12
+ settings: MailboxSettings
13
+ createdAt: string
14
+ updatedAt: string
15
+ }
16
+ export declare interface MailboxMember {
17
+ userId: string
18
+ email: string
19
+ name?: string
20
+ role: 'owner' | 'admin' | 'member' | 'viewer'
21
+ permissions: MailboxPermissions
22
+ addedAt: string
23
+ addedBy: string
24
+ }
25
+ export declare interface MailboxPermissions {
26
+ read: boolean
27
+ send: boolean
28
+ delete: boolean
29
+ manage: boolean
30
+ assignTo: boolean
31
+ }
32
+ export declare interface MailboxSettings {
33
+ autoAssign: boolean
34
+ assignmentStrategy: 'round-robin' | 'least-busy' | 'manual'
35
+ notifyOnNew: boolean
36
+ notifyMembers: string[]
37
+ signature?: string
38
+ autoResponder?: {
39
+ enabled: boolean
40
+ subject: string
41
+ body: string
42
+ }
43
+ }
44
+ export declare interface MailboxAssignment {
45
+ messageId: string
46
+ assignedTo: string
47
+ assignedBy: string
48
+ assignedAt: string
49
+ status: 'open' | 'in-progress' | 'resolved' | 'closed'
50
+ notes?: string
51
+ }
52
+ /**
53
+ * Shared Mailboxes Module
54
+ */
55
+ export declare class SharedMailboxes {
56
+ static SharedMailboxLambdaCode: any;
57
+ static createMailboxTable(config: { slug: string }): Record<string, any>;
58
+ static createSharedMailboxLambda(config: {
59
+ slug: string
60
+ roleArn: string
61
+ emailBucket: string
62
+ mailboxTable: string
63
+ }): Record<string, any>;
64
+ static readonly PermissionSets: any;
65
+ }
66
+ export default SharedMailboxes;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Email Templates with Stacks Views
3
+ *
4
+ * Provides template management and rendering
5
+ */
6
+ export declare interface EmailTemplate {
7
+ id: string
8
+ name: string
9
+ subject: string
10
+ html: string
11
+ text?: string
12
+ variables: string[]
13
+ category?: string
14
+ createdAt: string
15
+ updatedAt: string
16
+ version: number
17
+ }
18
+ export declare interface TemplateRenderOptions {
19
+ data: Record<string, any>
20
+ locale?: string
21
+ timezone?: string
22
+ }
23
+ /**
24
+ * Email Templates Module
25
+ */
26
+ export declare class EmailTemplates {
27
+ static TemplateRendererCode: any;
28
+ static BuiltInTemplates: any;
29
+ static createTemplateBucket(config: { slug: string }): Record<string, any>;
30
+ static createTemplateRendererLambda(config: {
31
+ slug: string
32
+ roleArn: string
33
+ templateBucket: string
34
+ }): Record<string, any>;
35
+ static render(template: string, data: Record<string, any>): string;
36
+ static private getNestedValue(obj: Record<string, any>, path: string): any;
37
+ static extractVariables(template: string): string[];
38
+ }
39
+ export default EmailTemplates;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Email Threading and Conversation View
3
+ *
4
+ * Groups emails into conversations based on subject and references
5
+ */
6
+ export declare interface EmailThread {
7
+ threadId: string
8
+ subject: string
9
+ participants: string[]
10
+ messageCount: number
11
+ unreadCount: number
12
+ lastMessageDate: string
13
+ firstMessageDate: string
14
+ messages: ThreadMessage[]
15
+ labels?: string[]
16
+ isStarred?: boolean
17
+ }
18
+ export declare interface ThreadMessage {
19
+ messageId: string
20
+ from: string
21
+ fromName?: string
22
+ to: string[]
23
+ cc?: string[]
24
+ date: string
25
+ bodyPreview: string
26
+ isRead: boolean
27
+ hasAttachments: boolean
28
+ }
29
+ /**
30
+ * Email Threading Module
31
+ */
32
+ export declare class EmailThreading {
33
+ static ThreadingLambdaCode: any;
34
+ static createThreadingLambda(config: {
35
+ slug: string
36
+ roleArn: string
37
+ emailBucket: string
38
+ }): Record<string, any>;
39
+ static getThreads(params: {
40
+ s3Client: any
41
+ bucket: string
42
+ mailbox: string
43
+ limit?: number
44
+ offset?: number
45
+ }): Promise<EmailThread[]>;
46
+ static getThread(params: {
47
+ s3Client: any
48
+ bucket: string
49
+ mailbox: string
50
+ threadId: string
51
+ }): Promise<EmailThread | null>;
52
+ }
53
+ export default EmailThreading;
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Global email analytics manager instance
3
+ */
4
+ export declare const emailAnalyticsManager: EmailAnalyticsManager;
5
+ /**
6
+ * SES Email Analytics
7
+ * Email tracking, analytics, and reporting
8
+ */
9
+ export declare interface EmailEvent {
10
+ id: string
11
+ messageId: string
12
+ eventType: 'send' | 'delivery' | 'open' | 'click' | 'bounce' | 'complaint' | 'reject' | 'renderingFailure'
13
+ timestamp: Date
14
+ recipient: string
15
+ subject?: string
16
+ tags?: Record<string, string>
17
+ }
18
+ export declare interface OpenEvent extends EmailEvent {
19
+ eventType: 'open'
20
+ ipAddress: string
21
+ userAgent: string
22
+ }
23
+ export declare interface ClickEvent extends EmailEvent {
24
+ eventType: 'click'
25
+ link: string
26
+ ipAddress: string
27
+ userAgent: string
28
+ }
29
+ export declare interface EmailCampaign {
30
+ id: string
31
+ name: string
32
+ subject: string
33
+ fromEmail: string
34
+ tags: Record<string, string>
35
+ sentCount: number
36
+ deliveredCount: number
37
+ openCount: number
38
+ clickCount: number
39
+ bounceCount: number
40
+ complaintCount: number
41
+ createdAt: Date
42
+ }
43
+ export declare interface AnalyticsReport {
44
+ id: string
45
+ campaignId?: string
46
+ startDate: Date
47
+ endDate: Date
48
+ totalSent: number
49
+ totalDelivered: number
50
+ totalOpened: number
51
+ totalClicked: number
52
+ totalBounced: number
53
+ totalComplaints: number
54
+ deliveryRate: number
55
+ openRate: number
56
+ clickRate: number
57
+ clickToOpenRate: number
58
+ bounceRate: number
59
+ complaintRate: number
60
+ topLinks: Array<{ link: string; clicks: number }>
61
+ deviceBreakdown: Record<string, number>
62
+ locationBreakdown: Record<string, number>
63
+ }
64
+ export declare interface ABTest {
65
+ id: string
66
+ name: string
67
+ variants: ABTestVariant[]
68
+ status: 'draft' | 'running' | 'completed'
69
+ startedAt?: Date
70
+ completedAt?: Date
71
+ winner?: string
72
+ }
73
+ export declare interface ABTestVariant {
74
+ id: string
75
+ name: string
76
+ subject: string
77
+ content: string
78
+ weight: number
79
+ sentCount: number
80
+ openCount: number
81
+ clickCount: number
82
+ conversionCount: number
83
+ }
84
+ /**
85
+ * Email analytics manager
86
+ */
87
+ export declare class EmailAnalyticsManager {
88
+ private events: Map<string, EmailEvent>;
89
+ private campaigns: Map<string, EmailCampaign>;
90
+ private reports: Map<string, AnalyticsReport>;
91
+ private abTests: Map<string, ABTest>;
92
+ private eventCounter: any;
93
+ private campaignCounter: any;
94
+ private reportCounter: any;
95
+ private abTestCounter: any;
96
+ trackEvent(event: Omit<EmailEvent, 'id'>): EmailEvent;
97
+ trackOpen(options: {
98
+ messageId: string
99
+ recipient: string
100
+ ipAddress: string
101
+ userAgent: string
102
+ tags?: Record<string, string>
103
+ }): OpenEvent;
104
+ trackClick(options: {
105
+ messageId: string
106
+ recipient: string
107
+ link: string
108
+ ipAddress: string
109
+ userAgent: string
110
+ tags?: Record<string, string>
111
+ }): ClickEvent;
112
+ createCampaign(campaign: Omit<EmailCampaign, 'id' | 'sentCount' | 'deliveredCount' | 'openCount' | 'clickCount' | 'bounceCount' | 'complaintCount' | 'createdAt'>): EmailCampaign;
113
+ private updateCampaignStats(campaignId: string, eventType: string): void;
114
+ generateReport(options: {
115
+ campaignId?: string
116
+ startDate: Date
117
+ endDate: Date
118
+ }): AnalyticsReport;
119
+ createABTest(options: {
120
+ name: string
121
+ variants: Array<{
122
+ name: string
123
+ subject: string
124
+ content: string
125
+ weight: number
126
+ }>
127
+ }): ABTest;
128
+ startABTest(abTestId: string): ABTest;
129
+ completeABTest(abTestId: string): ABTest;
130
+ getCampaign(id: string): EmailCampaign | undefined;
131
+ listCampaigns(): EmailCampaign[];
132
+ getEvents(options?: {
133
+ messageId?: string
134
+ eventType?: string
135
+ startDate?: Date
136
+ endDate?: Date
137
+ }): EmailEvent[];
138
+ generateTrackingConfigurationCF(options: {
139
+ configurationSetName: string
140
+ openTracking?: boolean
141
+ clickTracking?: boolean
142
+ }): any;
143
+ clear(): void;
144
+ }
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Global bounce and complaint handler instance
3
+ */
4
+ export declare const bounceComplaintHandler: BounceComplaintHandler;
5
+ /**
6
+ * SES Bounce and Complaint Handling
7
+ * Automated bounce processing and reputation management
8
+ */
9
+ export declare interface BounceEvent {
10
+ id: string
11
+ timestamp: Date
12
+ messageId: string
13
+ recipient: string
14
+ bounceType: 'Permanent' | 'Transient' | 'Undetermined'
15
+ bounceSubType: string
16
+ diagnosticCode?: string
17
+ feedbackId: string
18
+ }
19
+ export declare interface ComplaintEvent {
20
+ id: string
21
+ timestamp: Date
22
+ messageId: string
23
+ recipients: string[]
24
+ complaintFeedbackType?: string
25
+ userAgent?: string
26
+ feedbackId: string
27
+ arrivalDate?: Date
28
+ }
29
+ export declare interface BounceHandler {
30
+ id: string
31
+ name: string
32
+ bounceThreshold: number
33
+ complaintThreshold: number
34
+ suppressionDuration: number
35
+ autoSuppress: boolean
36
+ notificationTopicArn?: string
37
+ }
38
+ export declare interface SuppressionListEntry {
39
+ id: string
40
+ emailAddress: string
41
+ reason: 'BOUNCE' | 'COMPLAINT'
42
+ suppressedAt: Date
43
+ expiresAt?: Date
44
+ bounceCount?: number
45
+ complaintCount?: number
46
+ }
47
+ export declare interface ReputationMetrics {
48
+ id: string
49
+ timestamp: Date
50
+ bounceRate: number
51
+ complaintRate: number
52
+ sendingQuota: number
53
+ maxSendRate: number
54
+ sentLast24Hours: number
55
+ reputationStatus: 'Good' | 'Warning' | 'Probation' | 'Shutdown'
56
+ }
57
+ /**
58
+ * Bounce and complaint handler
59
+ */
60
+ export declare class BounceComplaintHandler {
61
+ private bounces: Map<string, BounceEvent>;
62
+ private complaints: Map<string, ComplaintEvent>;
63
+ private handlers: Map<string, BounceHandler>;
64
+ private suppressionList: Map<string, SuppressionListEntry>;
65
+ private metrics: Map<string, ReputationMetrics>;
66
+ private bounceCounter: any;
67
+ private complaintCounter: any;
68
+ private handlerCounter: any;
69
+ private suppressionCounter: any;
70
+ private metricsCounter: any;
71
+ recordBounce(bounce: Omit<BounceEvent, 'id'>): BounceEvent;
72
+ recordComplaint(complaint: Omit<ComplaintEvent, 'id'>): ComplaintEvent;
73
+ createBounceHandler(handler: Omit<BounceHandler, 'id'>): BounceHandler;
74
+ createAutomaticBounceHandler(options: {
75
+ name: string
76
+ notificationTopicArn: string
77
+ }): BounceHandler;
78
+ addToSuppressionList(entry: {
79
+ emailAddress: string
80
+ reason: 'BOUNCE' | 'COMPLAINT'
81
+ expirationDays?: number
82
+ }): SuppressionListEntry;
83
+ removeFromSuppressionList(emailAddress: string): boolean;
84
+ isSuppressed(emailAddress: string): boolean;
85
+ getBounceStatistics(startDate: Date, endDate: Date): {
86
+ totalBounces: number
87
+ permanentBounces: number
88
+ transientBounces: number
89
+ bounceRate: number
90
+ topRecipients: Array<{ email: string; count: number }>
91
+ };
92
+ getComplaintStatistics(startDate: Date, endDate: Date): {
93
+ totalComplaints: number
94
+ uniqueComplainters: number
95
+ complaintRate: number
96
+ };
97
+ calculateReputationMetrics(): ReputationMetrics;
98
+ getBounces(messageId?: string): BounceEvent[];
99
+ getComplaints(messageId?: string): ComplaintEvent[];
100
+ listSuppressionList(reason?: 'BOUNCE' | 'COMPLAINT'): SuppressionListEntry[];
101
+ generateSNSSubscriptionCF(options: {
102
+ topicArn: string
103
+ endpoint: string
104
+ protocol: 'email' | 'email-json' | 'http' | 'https' | 'sqs' | 'lambda'
105
+ }): any;
106
+ generateEventDestinationCF(options: {
107
+ configurationSetName: string
108
+ eventDestinationName: string
109
+ eventTypes: Array<'send' | 'reject' | 'bounce' | 'complaint' | 'delivery' | 'open' | 'click' | 'renderingFailure'>
110
+ snsTopicArn?: string
111
+ cloudWatchDestination?: {
112
+ dimensionConfigurations: Array<{
113
+ dimensionName: string
114
+ dimensionValueSource: 'messageTag' | 'emailHeader' | 'linkTag'
115
+ defaultDimensionValue: string
116
+ }>
117
+ }
118
+ }): any;
119
+ clear(): void;
120
+ }
File without changes