@ts-cloud/core 0.2.3 → 0.2.4

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 (226) hide show
  1. package/dist/advanced-features.test.d.ts +1 -0
  2. package/dist/aws/cloudformation.d.ts +136 -0
  3. package/dist/aws/cloudfront.d.ts +45 -0
  4. package/dist/aws/credentials.d.ts +77 -0
  5. package/dist/aws/credentials.test.d.ts +4 -0
  6. package/dist/aws/index.d.ts +10 -0
  7. package/dist/aws/s3.d.ts +256 -0
  8. package/dist/aws/s3.test.d.ts +4 -0
  9. package/dist/aws/signature.d.ts +142 -0
  10. package/dist/aws/signature.test.d.ts +4 -0
  11. package/dist/backup/disaster-recovery.d.ts +140 -0
  12. package/dist/backup/disaster-recovery.test.d.ts +1 -0
  13. package/dist/backup/index.d.ts +8 -0
  14. package/dist/backup/manager.d.ts +172 -0
  15. package/dist/backup/manager.test.d.ts +1 -0
  16. package/dist/cicd/circleci.d.ts +50 -0
  17. package/dist/cicd/github-actions.d.ts +62 -0
  18. package/dist/cicd/gitlab-ci.d.ts +50 -0
  19. package/dist/cicd/index.d.ts +7 -0
  20. package/dist/cli/history.d.ts +137 -0
  21. package/dist/cli/index.d.ts +9 -0
  22. package/dist/cli/progress.d.ts +193 -0
  23. package/dist/cli/repl.d.ts +148 -0
  24. package/dist/cli/suggestions.d.ts +74 -0
  25. package/dist/cli/table.d.ts +73 -0
  26. package/dist/cli/table.test.d.ts +1 -0
  27. package/dist/cloudformation/builder.d.ts +93 -0
  28. package/dist/cloudformation/builder.test.d.ts +4 -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 +68 -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 +39 -0
  37. package/dist/cloudformation/builders/network.d.ts +14 -0
  38. package/dist/cloudformation/builders/queue.d.ts +16 -0
  39. package/dist/cloudformation/builders/security.d.ts +31 -0
  40. package/dist/cloudformation/builders/storage.d.ts +36 -0
  41. package/dist/cloudformation/index.d.ts +10 -0
  42. package/dist/cloudformation/types.d.ts +200 -0
  43. package/dist/compliance/aws-config.d.ts +175 -0
  44. package/dist/compliance/cloudtrail.d.ts +132 -0
  45. package/dist/compliance/compliance.test.d.ts +1 -0
  46. package/dist/compliance/guardduty.d.ts +176 -0
  47. package/dist/compliance/index.d.ts +12 -0
  48. package/dist/compliance/security-hub.d.ts +178 -0
  49. package/dist/containers/build-optimization.d.ts +155 -0
  50. package/dist/containers/containers.test.d.ts +1 -0
  51. package/dist/containers/image-scanning.d.ts +144 -0
  52. package/dist/containers/index.d.ts +8 -0
  53. package/dist/containers/registry.d.ts +129 -0
  54. package/dist/containers/service-mesh.d.ts +254 -0
  55. package/dist/database/database.test.d.ts +1 -0
  56. package/dist/database/index.d.ts +8 -0
  57. package/dist/database/migrations.d.ts +153 -0
  58. package/dist/database/performance.d.ts +219 -0
  59. package/dist/database/replicas.d.ts +218 -0
  60. package/dist/database/users.d.ts +165 -0
  61. package/dist/dependency-graph.d.ts +37 -0
  62. package/dist/deployment/ab-testing.d.ts +165 -0
  63. package/dist/deployment/blue-green.d.ts +140 -0
  64. package/dist/deployment/canary.d.ts +165 -0
  65. package/dist/deployment/deployment.test.d.ts +1 -0
  66. package/dist/deployment/index.d.ts +12 -0
  67. package/dist/deployment/progressive.d.ts +50 -0
  68. package/dist/dns/dns.test.d.ts +1 -0
  69. package/dist/dns/dnssec.d.ts +120 -0
  70. package/dist/dns/index.d.ts +7 -0
  71. package/dist/dns/resolver.d.ts +216 -0
  72. package/dist/dns/routing.d.ts +277 -0
  73. package/dist/email/advanced/analytics.d.ts +107 -0
  74. package/dist/email/advanced/index.d.ts +10 -0
  75. package/dist/email/advanced/rules.d.ts +131 -0
  76. package/dist/email/advanced/scheduling.d.ts +81 -0
  77. package/dist/email/advanced/search.d.ts +91 -0
  78. package/dist/email/advanced/shared-mailboxes.d.ts +109 -0
  79. package/dist/email/advanced/templates.d.ts +95 -0
  80. package/dist/email/advanced/threading.d.ts +65 -0
  81. package/dist/email/analytics.d.ts +189 -0
  82. package/dist/email/bounce-handling.d.ts +171 -0
  83. package/dist/email/email.test.d.ts +1 -0
  84. package/dist/email/handlers/__tests__/inbound.test.d.ts +1 -0
  85. package/dist/email/handlers/__tests__/outbound.test.d.ts +1 -0
  86. package/dist/email/handlers/converter.d.ts +11 -0
  87. package/dist/email/handlers/feedback.d.ts +11 -0
  88. package/dist/email/handlers/inbound.d.ts +13 -0
  89. package/dist/email/handlers/outbound.d.ts +13 -0
  90. package/dist/email/index.d.ts +10 -0
  91. package/dist/email/reputation.d.ts +133 -0
  92. package/dist/email/templates.d.ts +124 -0
  93. package/dist/errors/index.d.ts +177 -0
  94. package/dist/errors/index.test.d.ts +4 -0
  95. package/dist/health-checks/index.d.ts +35 -0
  96. package/dist/index.d.ts +15 -256
  97. package/dist/index.js +228 -80
  98. package/dist/intrinsic-functions.d.ts +77 -0
  99. package/dist/lambda/concurrency.d.ts +146 -0
  100. package/dist/lambda/destinations.d.ts +141 -0
  101. package/dist/lambda/dlq.d.ts +160 -0
  102. package/dist/lambda/index.d.ts +10 -0
  103. package/dist/lambda/lambda.test.d.ts +1 -0
  104. package/dist/lambda/layers.d.ts +117 -0
  105. package/dist/lambda/versions.d.ts +145 -0
  106. package/dist/lambda/vpc.d.ts +164 -0
  107. package/dist/local/config.d.ts +44 -0
  108. package/dist/local/index.d.ts +5 -0
  109. package/dist/local/mock-aws.d.ts +69 -0
  110. package/dist/modules/ai.d.ts +108 -0
  111. package/dist/modules/api.d.ts +157 -0
  112. package/dist/modules/auth.d.ts +262 -0
  113. package/dist/modules/cache.d.ts +108 -0
  114. package/dist/modules/cdn.d.ts +305 -0
  115. package/dist/modules/communication.d.ts +117 -0
  116. package/dist/modules/compute.d.ts +1376 -0
  117. package/dist/modules/database.d.ts +144 -0
  118. package/dist/modules/deployment.d.ts +372 -0
  119. package/dist/modules/dns.d.ts +143 -0
  120. package/dist/modules/email.d.ts +314 -0
  121. package/dist/modules/filesystem.d.ts +132 -0
  122. package/dist/modules/index.d.ts +31 -0
  123. package/dist/modules/messaging.d.ts +210 -0
  124. package/dist/modules/monitoring.d.ts +574 -0
  125. package/dist/modules/network.d.ts +148 -0
  126. package/dist/modules/parameter-store.d.ts +143 -0
  127. package/dist/modules/permissions.d.ts +245 -0
  128. package/dist/modules/phone.d.ts +125 -0
  129. package/dist/modules/queue.d.ts +411 -0
  130. package/dist/modules/redirects.d.ts +140 -0
  131. package/dist/modules/registry.d.ts +189 -0
  132. package/dist/modules/search.d.ts +135 -0
  133. package/dist/modules/secrets.d.ts +149 -0
  134. package/dist/modules/security.d.ts +219 -0
  135. package/dist/modules/sms.d.ts +130 -0
  136. package/dist/modules/storage.d.ts +344 -0
  137. package/dist/modules/workflow.d.ts +288 -0
  138. package/dist/multi-account/config.d.ts +166 -0
  139. package/dist/multi-account/index.d.ts +6 -0
  140. package/dist/multi-account/manager.d.ts +181 -0
  141. package/dist/multi-region/cross-region.d.ts +204 -0
  142. package/dist/multi-region/index.d.ts +7 -0
  143. package/dist/multi-region/manager.d.ts +136 -0
  144. package/dist/multi-region/regions.d.ts +98 -0
  145. package/dist/network-security/index.d.ts +55 -0
  146. package/dist/observability/index.d.ts +8 -0
  147. package/dist/observability/logs.d.ts +213 -0
  148. package/dist/observability/metrics.d.ts +187 -0
  149. package/dist/observability/observability.test.d.ts +1 -0
  150. package/dist/observability/synthetics.d.ts +189 -0
  151. package/dist/observability/xray.d.ts +193 -0
  152. package/dist/phone/advanced/analytics.d.ts +83 -0
  153. package/dist/phone/advanced/callbacks.d.ts +67 -0
  154. package/dist/phone/advanced/index.d.ts +7 -0
  155. package/dist/phone/advanced/ivr-builder.d.ts +130 -0
  156. package/dist/phone/advanced/recording.d.ts +62 -0
  157. package/dist/phone/handlers/__tests__/incoming-call.test.d.ts +1 -0
  158. package/dist/phone/handlers/incoming-call.d.ts +10 -0
  159. package/dist/phone/handlers/missed-call.d.ts +9 -0
  160. package/dist/phone/handlers/voicemail.d.ts +10 -0
  161. package/dist/phone/index.d.ts +5 -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 +4 -0
  166. package/dist/presets/fullstack-app.d.ts +12 -0
  167. package/dist/presets/index.d.ts +13 -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 +1 -0
  179. package/dist/preview/index.d.ts +10 -0
  180. package/dist/preview/manager.d.ts +101 -0
  181. package/dist/preview/manager.test.d.ts +1 -0
  182. package/dist/preview/notifications.d.ts +89 -0
  183. package/dist/preview/notifications.test.d.ts +1 -0
  184. package/dist/queue/batch-processing.d.ts +138 -0
  185. package/dist/queue/dlq-monitoring.d.ts +143 -0
  186. package/dist/queue/fifo.d.ts +131 -0
  187. package/dist/queue/index.d.ts +8 -0
  188. package/dist/queue/management.d.ts +162 -0
  189. package/dist/queue/queue.test.d.ts +1 -0
  190. package/dist/resource-mgmt/index.d.ts +44 -0
  191. package/dist/resource-naming.d.ts +26 -0
  192. package/dist/s3/index.d.ts +227 -0
  193. package/dist/schema/index.d.ts +12 -0
  194. package/dist/security/certificate-manager.d.ts +184 -0
  195. package/dist/security/index.d.ts +8 -0
  196. package/dist/security/scanning.d.ts +196 -0
  197. package/dist/security/secrets-manager.d.ts +204 -0
  198. package/dist/security/secrets-rotation.d.ts +167 -0
  199. package/dist/security/security.test.d.ts +1 -0
  200. package/dist/sms/advanced/ab-testing.d.ts +74 -0
  201. package/dist/sms/advanced/analytics.d.ts +75 -0
  202. package/dist/sms/advanced/campaigns.d.ts +96 -0
  203. package/dist/sms/advanced/chatbot.d.ts +67 -0
  204. package/dist/sms/advanced/index.d.ts +9 -0
  205. package/dist/sms/advanced/link-tracking.d.ts +60 -0
  206. package/dist/sms/advanced/mms.d.ts +60 -0
  207. package/dist/sms/handlers/__tests__/send.test.d.ts +1 -0
  208. package/dist/sms/handlers/delivery-status.d.ts +10 -0
  209. package/dist/sms/handlers/receive.d.ts +10 -0
  210. package/dist/sms/handlers/send.d.ts +10 -0
  211. package/dist/sms/index.d.ts +5 -0
  212. package/dist/stack-diff.d.ts +38 -0
  213. package/dist/static-site/index.d.ts +49 -0
  214. package/dist/template-builder.d.ts +42 -0
  215. package/dist/template-validator.d.ts +28 -0
  216. package/dist/types.d.ts +2514 -0
  217. package/dist/utils/cache.d.ts +117 -0
  218. package/dist/utils/diff.d.ts +52 -0
  219. package/dist/utils/hash.d.ts +73 -0
  220. package/dist/utils/index.d.ts +7 -0
  221. package/dist/utils/parallel.d.ts +78 -0
  222. package/dist/validators/credentials.d.ts +30 -0
  223. package/dist/validators/credentials.test.d.ts +4 -0
  224. package/dist/validators/quotas.d.ts +64 -0
  225. package/dist/validators/quotas.test.d.ts +4 -0
  226. package/package.json +2 -2
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Email Analytics
3
+ *
4
+ * Provides open tracking, click tracking, and email metrics
5
+ */
6
+ export interface EmailAnalytics {
7
+ messageId: string;
8
+ sent: boolean;
9
+ sentAt?: string;
10
+ delivered: boolean;
11
+ deliveredAt?: string;
12
+ opened: boolean;
13
+ openedAt?: string;
14
+ openCount: number;
15
+ clicked: boolean;
16
+ clickedAt?: string;
17
+ clickCount: number;
18
+ clicks: ClickEvent[];
19
+ bounced: boolean;
20
+ bouncedAt?: string;
21
+ bounceType?: string;
22
+ complained: boolean;
23
+ complainedAt?: string;
24
+ unsubscribed: boolean;
25
+ unsubscribedAt?: string;
26
+ }
27
+ export interface ClickEvent {
28
+ url: string;
29
+ clickedAt: string;
30
+ userAgent?: string;
31
+ ipAddress?: string;
32
+ }
33
+ export interface EmailMetrics {
34
+ period: string;
35
+ sent: number;
36
+ delivered: number;
37
+ opened: number;
38
+ clicked: number;
39
+ bounced: number;
40
+ complained: number;
41
+ unsubscribed: number;
42
+ deliveryRate: number;
43
+ openRate: number;
44
+ clickRate: number;
45
+ bounceRate: number;
46
+ complaintRate: number;
47
+ }
48
+ /**
49
+ * Email Analytics Module
50
+ */
51
+ export declare class EmailAnalyticsModule {
52
+ /**
53
+ * Lambda code for tracking pixel (open tracking)
54
+ */
55
+ static TrackingPixelLambdaCode: string;
56
+ /**
57
+ * Lambda code for click tracking
58
+ */
59
+ static ClickTrackingLambdaCode: string;
60
+ /**
61
+ * Lambda code for processing SES events
62
+ */
63
+ static SesEventProcessorCode: string;
64
+ /**
65
+ * Create analytics DynamoDB table
66
+ */
67
+ static createAnalyticsTable(config: {
68
+ slug: string;
69
+ }): Record<string, any>;
70
+ /**
71
+ * Create tracking pixel Lambda
72
+ */
73
+ static createTrackingPixelLambda(config: {
74
+ slug: string;
75
+ roleArn: string;
76
+ analyticsTable: string;
77
+ }): Record<string, any>;
78
+ /**
79
+ * Create click tracking Lambda
80
+ */
81
+ static createClickTrackingLambda(config: {
82
+ slug: string;
83
+ roleArn: string;
84
+ analyticsTable: string;
85
+ }): Record<string, any>;
86
+ /**
87
+ * Create SES event processor Lambda
88
+ */
89
+ static createSesEventProcessorLambda(config: {
90
+ slug: string;
91
+ roleArn: string;
92
+ analyticsTable: string;
93
+ }): Record<string, any>;
94
+ /**
95
+ * Inject tracking into email HTML
96
+ */
97
+ static injectTracking(params: {
98
+ html: string;
99
+ messageId: string;
100
+ trackingDomain: string;
101
+ }): string;
102
+ /**
103
+ * Calculate email metrics for a period
104
+ */
105
+ static calculateMetrics(analytics: EmailAnalytics[]): EmailMetrics;
106
+ }
107
+ export default EmailAnalyticsModule;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Email Advanced Features
3
+ */
4
+ export * from './search';
5
+ export * from './threading';
6
+ export * from './scheduling';
7
+ export * from './analytics';
8
+ export * from './templates';
9
+ export * from './shared-mailboxes';
10
+ export * from './rules';
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Email Rules and Automation
3
+ *
4
+ * Provides email filtering, routing, and automation
5
+ */
6
+ export interface EmailRule {
7
+ id: string;
8
+ name: string;
9
+ enabled: boolean;
10
+ priority: number;
11
+ conditions: RuleCondition[];
12
+ conditionOperator: 'and' | 'or';
13
+ actions: RuleAction[];
14
+ createdAt: string;
15
+ updatedAt: string;
16
+ }
17
+ export interface RuleCondition {
18
+ field: 'from' | 'to' | 'subject' | 'body' | 'headers' | 'attachments' | 'size';
19
+ operator: 'contains' | 'not-contains' | 'equals' | 'not-equals' | 'starts-with' | 'ends-with' | 'regex' | 'greater-than' | 'less-than';
20
+ value: string;
21
+ caseSensitive?: boolean;
22
+ }
23
+ export interface RuleAction {
24
+ type: 'move' | 'copy' | 'delete' | 'label' | 'forward' | 'reply' | 'mark-read' | 'mark-starred' | 'webhook' | 'lambda';
25
+ params: Record<string, any>;
26
+ }
27
+ export interface AutomationWorkflow {
28
+ id: string;
29
+ name: string;
30
+ trigger: WorkflowTrigger;
31
+ steps: WorkflowStep[];
32
+ enabled: boolean;
33
+ }
34
+ export interface WorkflowTrigger {
35
+ type: 'email-received' | 'email-sent' | 'schedule' | 'webhook';
36
+ conditions?: RuleCondition[];
37
+ }
38
+ export interface WorkflowStep {
39
+ id: string;
40
+ type: 'delay' | 'condition' | 'action' | 'loop';
41
+ config: Record<string, any>;
42
+ next?: string;
43
+ onTrue?: string;
44
+ onFalse?: string;
45
+ }
46
+ /**
47
+ * Email Rules Module
48
+ */
49
+ export declare class EmailRules {
50
+ /**
51
+ * Lambda code for rule processing
52
+ */
53
+ static RuleProcessorCode: string;
54
+ /**
55
+ * Create rules DynamoDB table
56
+ */
57
+ static createRulesTable(config: {
58
+ slug: string;
59
+ }): Record<string, any>;
60
+ /**
61
+ * Create rule processor Lambda
62
+ */
63
+ static createRuleProcessorLambda(config: {
64
+ slug: string;
65
+ roleArn: string;
66
+ emailBucket: string;
67
+ rulesTable: string;
68
+ }): Record<string, any>;
69
+ /**
70
+ * Built-in rule templates
71
+ */
72
+ static readonly RuleTemplates: {
73
+ readonly spamFilter: {
74
+ readonly name: "Spam Filter";
75
+ readonly conditions: readonly [{
76
+ readonly field: "subject";
77
+ readonly operator: "regex";
78
+ readonly value: "(viagra|lottery|winner|prince|inheritance)";
79
+ readonly caseSensitive: false;
80
+ }];
81
+ readonly conditionOperator: "or";
82
+ readonly actions: readonly [{
83
+ readonly type: "move";
84
+ readonly params: {
85
+ readonly folder: "spam";
86
+ };
87
+ }, {
88
+ readonly type: "mark-read";
89
+ readonly params: {};
90
+ }];
91
+ };
92
+ readonly autoLabel: {
93
+ readonly name: "Auto Label Invoices";
94
+ readonly conditions: readonly [{
95
+ readonly field: "subject";
96
+ readonly operator: "contains";
97
+ readonly value: "invoice";
98
+ readonly caseSensitive: false;
99
+ }];
100
+ readonly conditionOperator: "and";
101
+ readonly actions: readonly [{
102
+ readonly type: "label";
103
+ readonly params: {
104
+ readonly label: "invoices";
105
+ };
106
+ }];
107
+ };
108
+ readonly forwardUrgent: {
109
+ readonly name: "Forward Urgent";
110
+ readonly conditions: readonly [{
111
+ readonly field: "subject";
112
+ readonly operator: "contains";
113
+ readonly value: "urgent";
114
+ readonly caseSensitive: false;
115
+ }];
116
+ readonly conditionOperator: "and";
117
+ readonly actions: readonly [{
118
+ readonly type: "forward";
119
+ readonly params: {
120
+ readonly to: "admin@example.com";
121
+ };
122
+ }, {
123
+ readonly type: "label";
124
+ readonly params: {
125
+ readonly label: "urgent";
126
+ };
127
+ }];
128
+ };
129
+ };
130
+ }
131
+ export default EmailRules;
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Email Scheduling (Send Later)
3
+ *
4
+ * Provides scheduled email sending functionality
5
+ */
6
+ export interface ScheduledEmail {
7
+ id: string;
8
+ email: {
9
+ from: string;
10
+ to: string | string[];
11
+ cc?: string[];
12
+ bcc?: string[];
13
+ subject: string;
14
+ html?: string;
15
+ text?: string;
16
+ attachments?: Array<{
17
+ filename: string;
18
+ content: string;
19
+ contentType?: string;
20
+ }>;
21
+ };
22
+ scheduledFor: string;
23
+ timezone?: string;
24
+ status: 'pending' | 'sent' | 'failed' | 'cancelled';
25
+ createdAt: string;
26
+ sentAt?: string;
27
+ error?: string;
28
+ retryCount?: number;
29
+ }
30
+ /**
31
+ * Email Scheduling Module
32
+ */
33
+ export declare class EmailScheduling {
34
+ /**
35
+ * Lambda code for processing scheduled emails
36
+ */
37
+ static SchedulerLambdaCode: string;
38
+ /**
39
+ * Create scheduler Lambda function
40
+ */
41
+ static createSchedulerLambda(config: {
42
+ slug: string;
43
+ roleArn: string;
44
+ emailBucket: string;
45
+ }): Record<string, any>;
46
+ /**
47
+ * Create EventBridge rule to trigger scheduler
48
+ */
49
+ static createSchedulerRule(config: {
50
+ slug: string;
51
+ lambdaArn: string;
52
+ scheduleExpression?: string;
53
+ }): Record<string, any>;
54
+ /**
55
+ * Schedule an email (SDK helper)
56
+ */
57
+ static scheduleEmail(params: {
58
+ s3Client: any;
59
+ bucket: string;
60
+ email: ScheduledEmail['email'];
61
+ scheduledFor: Date | string;
62
+ timezone?: string;
63
+ }): Promise<ScheduledEmail>;
64
+ /**
65
+ * Cancel a scheduled email
66
+ */
67
+ static cancelScheduledEmail(params: {
68
+ s3Client: any;
69
+ bucket: string;
70
+ id: string;
71
+ }): Promise<boolean>;
72
+ /**
73
+ * List scheduled emails
74
+ */
75
+ static listScheduledEmails(params: {
76
+ s3Client: any;
77
+ bucket: string;
78
+ status?: ScheduledEmail['status'];
79
+ }): Promise<ScheduledEmail[]>;
80
+ }
81
+ export default EmailScheduling;
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Email Search and Indexing
3
+ *
4
+ * Provides OpenSearch integration for email search functionality
5
+ */
6
+ export 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 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 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 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
+ /**
66
+ * Create OpenSearch domain for email indexing
67
+ */
68
+ static createSearchDomain(config: EmailSearchConfig): Record<string, any>;
69
+ /**
70
+ * Create Lambda for indexing emails
71
+ */
72
+ static createIndexerLambda(config: {
73
+ slug: string;
74
+ roleArn: string;
75
+ searchDomainEndpoint: string;
76
+ emailBucket: string;
77
+ }): Record<string, any>;
78
+ /**
79
+ * Lambda code for email indexing
80
+ */
81
+ static IndexerLambdaCode: string;
82
+ /**
83
+ * Create email index mapping
84
+ */
85
+ static getIndexMapping(): Record<string, any>;
86
+ /**
87
+ * Build OpenSearch query from search parameters
88
+ */
89
+ static buildSearchQuery(params: SearchQuery): Record<string, any>;
90
+ }
91
+ export default EmailSearch;
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Shared Mailboxes for Teams
3
+ *
4
+ * Provides shared mailbox functionality with team access
5
+ */
6
+ export 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 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 interface MailboxPermissions {
26
+ read: boolean;
27
+ send: boolean;
28
+ delete: boolean;
29
+ manage: boolean;
30
+ assignTo: boolean;
31
+ }
32
+ export 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 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
+ /**
57
+ * Lambda code for shared mailbox management
58
+ */
59
+ static SharedMailboxLambdaCode: string;
60
+ /**
61
+ * Create shared mailbox DynamoDB table
62
+ */
63
+ static createMailboxTable(config: {
64
+ slug: string;
65
+ }): Record<string, any>;
66
+ /**
67
+ * Create shared mailbox Lambda
68
+ */
69
+ static createSharedMailboxLambda(config: {
70
+ slug: string;
71
+ roleArn: string;
72
+ emailBucket: string;
73
+ mailboxTable: string;
74
+ }): Record<string, any>;
75
+ /**
76
+ * Default permission sets
77
+ */
78
+ static readonly PermissionSets: {
79
+ readonly owner: {
80
+ readonly read: true;
81
+ readonly send: true;
82
+ readonly delete: true;
83
+ readonly manage: true;
84
+ readonly assignTo: true;
85
+ };
86
+ readonly admin: {
87
+ readonly read: true;
88
+ readonly send: true;
89
+ readonly delete: true;
90
+ readonly manage: true;
91
+ readonly assignTo: true;
92
+ };
93
+ readonly member: {
94
+ readonly read: true;
95
+ readonly send: true;
96
+ readonly delete: false;
97
+ readonly manage: false;
98
+ readonly assignTo: true;
99
+ };
100
+ readonly viewer: {
101
+ readonly read: true;
102
+ readonly send: false;
103
+ readonly delete: false;
104
+ readonly manage: false;
105
+ readonly assignTo: false;
106
+ };
107
+ };
108
+ }
109
+ export default SharedMailboxes;
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Email Templates with Stacks Views
3
+ *
4
+ * Provides template management and rendering
5
+ */
6
+ export 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 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
+ /**
28
+ * Lambda code for template rendering
29
+ */
30
+ static TemplateRendererCode: string;
31
+ /**
32
+ * Built-in email templates
33
+ */
34
+ static BuiltInTemplates: {
35
+ welcome: {
36
+ id: string;
37
+ name: string;
38
+ subject: string;
39
+ html: string;
40
+ text: string;
41
+ variables: readonly ["appName", "userName", "verificationUrl"];
42
+ category: string;
43
+ };
44
+ passwordReset: {
45
+ id: string;
46
+ name: string;
47
+ subject: string;
48
+ html: string;
49
+ text: string;
50
+ variables: readonly ["appName", "userName", "resetUrl", "expiresIn"];
51
+ category: string;
52
+ };
53
+ notification: {
54
+ id: string;
55
+ name: string;
56
+ subject: string;
57
+ html: string;
58
+ text: string;
59
+ variables: readonly ["subject", "title", "message", "actionUrl", "actionText", "appName"];
60
+ category: string;
61
+ };
62
+ invoice: {
63
+ id: string;
64
+ name: string;
65
+ subject: string;
66
+ html: string;
67
+ variables: readonly ["invoiceNumber", "customerName", "period", "items", "total", "paymentUrl", "appName"];
68
+ category: string;
69
+ };
70
+ };
71
+ /**
72
+ * Create template storage bucket
73
+ */
74
+ static createTemplateBucket(config: {
75
+ slug: string;
76
+ }): Record<string, any>;
77
+ /**
78
+ * Create template renderer Lambda
79
+ */
80
+ static createTemplateRendererLambda(config: {
81
+ slug: string;
82
+ roleArn: string;
83
+ templateBucket: string;
84
+ }): Record<string, any>;
85
+ /**
86
+ * Render a template with data (SDK helper)
87
+ */
88
+ static render(template: string, data: Record<string, any>): string;
89
+ private static getNestedValue;
90
+ /**
91
+ * Extract variables from template
92
+ */
93
+ static extractVariables(template: string): string[];
94
+ }
95
+ export default EmailTemplates;
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Email Threading and Conversation View
3
+ *
4
+ * Groups emails into conversations based on subject and references
5
+ */
6
+ export 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 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
+ /**
34
+ * Lambda code for threading emails
35
+ */
36
+ static ThreadingLambdaCode: string;
37
+ /**
38
+ * Create threading Lambda function
39
+ */
40
+ static createThreadingLambda(config: {
41
+ slug: string;
42
+ roleArn: string;
43
+ emailBucket: string;
44
+ }): Record<string, any>;
45
+ /**
46
+ * Get threads for a mailbox (SDK helper)
47
+ */
48
+ static getThreads(params: {
49
+ s3Client: any;
50
+ bucket: string;
51
+ mailbox: string;
52
+ limit?: number;
53
+ offset?: number;
54
+ }): Promise<EmailThread[]>;
55
+ /**
56
+ * Get a specific thread
57
+ */
58
+ static getThread(params: {
59
+ s3Client: any;
60
+ bucket: string;
61
+ mailbox: string;
62
+ threadId: string;
63
+ }): Promise<EmailThread | null>;
64
+ }
65
+ export default EmailThreading;