@stacksjs/ts-cloud-core 0.1.6 → 0.1.8
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.
- package/dist/advanced-features.test.d.ts +0 -0
- package/dist/aws/cloudformation.d.ts +69 -0
- package/dist/aws/cloudfront.d.ts +21 -0
- package/dist/aws/credentials.d.ts +66 -0
- package/dist/aws/credentials.test.d.ts +0 -0
- package/dist/aws/index.d.ts +73 -0
- package/dist/aws/s3.d.ts +130 -0
- package/dist/aws/s3.test.d.ts +0 -0
- package/dist/aws/signature.d.ts +101 -0
- package/dist/aws/signature.test.d.ts +0 -0
- package/dist/backup/disaster-recovery.d.ts +98 -0
- package/dist/backup/disaster-recovery.test.d.ts +0 -0
- package/dist/backup/index.d.ts +24 -0
- package/dist/backup/manager.d.ts +112 -0
- package/dist/backup/manager.test.d.ts +0 -0
- package/dist/cicd/circleci.d.ts +47 -0
- package/dist/cicd/github-actions.d.ts +55 -0
- package/dist/cicd/gitlab-ci.d.ts +46 -0
- package/dist/cicd/index.d.ts +3 -0
- package/dist/cli/history.d.ts +66 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/progress.d.ts +97 -0
- package/dist/cli/repl.d.ts +76 -0
- package/dist/cli/suggestions.d.ts +67 -0
- package/dist/cli/table.d.ts +70 -0
- package/dist/cli/table.test.d.ts +0 -0
- package/dist/cloudformation/builder.d.ts +59 -0
- package/dist/cloudformation/builder.test.d.ts +0 -0
- package/dist/cloudformation/builders/api-gateway.d.ts +30 -0
- package/dist/cloudformation/builders/cache.d.ts +35 -0
- package/dist/cloudformation/builders/cdn.d.ts +34 -0
- package/dist/cloudformation/builders/compute.d.ts +66 -0
- package/dist/cloudformation/builders/database.d.ts +61 -0
- package/dist/cloudformation/builders/functions.d.ts +32 -0
- package/dist/cloudformation/builders/messaging.d.ts +17 -0
- package/dist/cloudformation/builders/monitoring.d.ts +36 -0
- package/dist/cloudformation/builders/network.d.ts +14 -0
- package/dist/cloudformation/builders/queue.d.ts +8 -0
- package/dist/cloudformation/builders/security.d.ts +31 -0
- package/dist/cloudformation/builders/storage.d.ts +8 -0
- package/dist/cloudformation/index.d.ts +24 -0
- package/dist/cloudformation/types.d.ts +132 -0
- package/dist/compliance/aws-config.d.ts +88 -0
- package/dist/compliance/cloudtrail.d.ts +96 -0
- package/dist/compliance/compliance.test.d.ts +0 -0
- package/dist/compliance/guardduty.d.ts +110 -0
- package/dist/compliance/index.d.ts +50 -0
- package/dist/compliance/security-hub.d.ts +110 -0
- package/dist/containers/build-optimization.d.ts +110 -0
- package/dist/containers/containers.test.d.ts +0 -0
- package/dist/containers/image-scanning.d.ts +96 -0
- package/dist/containers/index.d.ts +4 -0
- package/dist/containers/registry.d.ts +99 -0
- package/dist/containers/service-mesh.d.ts +206 -0
- package/dist/database/database.test.d.ts +0 -0
- package/dist/database/index.d.ts +4 -0
- package/dist/database/migrations.d.ts +102 -0
- package/dist/database/performance.d.ts +168 -0
- package/dist/database/replicas.d.ts +146 -0
- package/dist/database/users.d.ts +102 -0
- package/dist/dependency-graph.d.ts +19 -0
- package/dist/deployment/ab-testing.d.ts +114 -0
- package/dist/deployment/blue-green.d.ts +98 -0
- package/dist/deployment/canary.d.ts +103 -0
- package/dist/deployment/deployment.test.d.ts +0 -0
- package/dist/deployment/index.d.ts +45 -0
- package/dist/deployment/progressive.d.ts +34 -0
- package/dist/dns/dns.test.d.ts +0 -0
- package/dist/dns/dnssec.d.ts +75 -0
- package/dist/dns/index.d.ts +3 -0
- package/dist/dns/resolver.d.ts +150 -0
- package/dist/dns/routing.d.ts +217 -0
- package/dist/email/advanced/analytics.d.ts +78 -0
- package/dist/email/advanced/index.d.ts +7 -0
- package/dist/email/advanced/rules.d.ts +60 -0
- package/dist/email/advanced/scheduling.d.ts +63 -0
- package/dist/email/advanced/search.d.ts +76 -0
- package/dist/email/advanced/shared-mailboxes.d.ts +66 -0
- package/dist/email/advanced/templates.d.ts +39 -0
- package/dist/email/advanced/threading.d.ts +53 -0
- package/dist/email/analytics.d.ts +144 -0
- package/dist/email/bounce-handling.d.ts +120 -0
- package/dist/email/email.test.d.ts +0 -0
- package/dist/email/handlers/__tests__/inbound.test.d.ts +0 -0
- package/dist/email/handlers/__tests__/outbound.test.d.ts +0 -0
- package/dist/email/handlers/converter.d.ts +225 -0
- package/dist/email/handlers/feedback.d.ts +226 -0
- package/dist/email/handlers/inbound.d.ts +167 -0
- package/dist/email/handlers/outbound.d.ts +176 -0
- package/dist/email/index.d.ts +6 -0
- package/dist/email/reputation.d.ts +97 -0
- package/dist/email/templates.d.ts +82 -0
- package/dist/errors/index.d.ts +186 -0
- package/dist/errors/index.test.d.ts +0 -0
- package/dist/health-checks/index.d.ts +35 -0
- package/dist/index.d.ts +256 -0
- package/dist/index.js +63499 -0
- package/dist/intrinsic-functions.d.ts +37 -0
- package/dist/lambda/concurrency.d.ts +98 -0
- package/dist/lambda/destinations.d.ts +99 -0
- package/dist/lambda/dlq.d.ts +109 -0
- package/dist/lambda/index.d.ts +6 -0
- package/dist/lambda/lambda.test.d.ts +0 -0
- package/dist/lambda/layers.d.ts +81 -0
- package/dist/lambda/versions.d.ts +91 -0
- package/dist/lambda/vpc.d.ts +116 -0
- package/dist/local/config.d.ts +44 -0
- package/dist/local/index.d.ts +2 -0
- package/dist/local/mock-aws.d.ts +60 -0
- package/dist/modules/ai.d.ts +47 -0
- package/dist/modules/api.d.ts +98 -0
- package/dist/modules/auth.d.ts +165 -0
- package/dist/modules/cache.d.ts +73 -0
- package/dist/modules/cdn.d.ts +125 -0
- package/dist/modules/communication.d.ts +98 -0
- package/dist/modules/compute.d.ts +309 -0
- package/dist/modules/database.d.ts +105 -0
- package/dist/modules/deployment.d.ts +181 -0
- package/dist/modules/dns.d.ts +45 -0
- package/dist/modules/email.d.ts +217 -0
- package/dist/modules/filesystem.d.ts +94 -0
- package/dist/modules/index.d.ts +27 -0
- package/dist/modules/messaging.d.ts +108 -0
- package/dist/modules/monitoring.d.ts +127 -0
- package/dist/modules/network.d.ts +102 -0
- package/dist/modules/parameter-store.d.ts +33 -0
- package/dist/modules/permissions.d.ts +132 -0
- package/dist/modules/phone.d.ts +80 -0
- package/dist/modules/queue.d.ts +210 -0
- package/dist/modules/redirects.d.ts +59 -0
- package/dist/modules/registry.d.ts +73 -0
- package/dist/modules/search.d.ts +56 -0
- package/dist/modules/secrets.d.ts +80 -0
- package/dist/modules/security.d.ts +100 -0
- package/dist/modules/sms.d.ts +52 -0
- package/dist/modules/storage.d.ts +160 -0
- package/dist/modules/workflow.d.ts +205 -0
- package/dist/multi-account/config.d.ts +315 -0
- package/dist/multi-account/index.d.ts +2 -0
- package/dist/multi-account/manager.d.ts +100 -0
- package/dist/multi-region/cross-region.d.ts +114 -0
- package/dist/multi-region/index.d.ts +3 -0
- package/dist/multi-region/manager.d.ts +72 -0
- package/dist/multi-region/regions.d.ts +98 -0
- package/dist/network-security/index.d.ts +39 -0
- package/dist/observability/index.d.ts +4 -0
- package/dist/observability/logs.d.ts +129 -0
- package/dist/observability/metrics.d.ts +153 -0
- package/dist/observability/observability.test.d.ts +0 -0
- package/dist/observability/synthetics.d.ts +146 -0
- package/dist/observability/xray.d.ts +129 -0
- package/dist/phone/advanced/analytics.d.ts +66 -0
- package/dist/phone/advanced/callbacks.d.ts +50 -0
- package/dist/phone/advanced/index.d.ts +4 -0
- package/dist/phone/advanced/ivr-builder.d.ts +83 -0
- package/dist/phone/advanced/recording.d.ts +48 -0
- package/dist/phone/handlers/__tests__/incoming-call.test.d.ts +0 -0
- package/dist/phone/handlers/incoming-call.d.ts +115 -0
- package/dist/phone/handlers/missed-call.d.ts +114 -0
- package/dist/phone/handlers/voicemail.d.ts +177 -0
- package/dist/phone/index.d.ts +2 -0
- package/dist/presets/api-backend.d.ts +11 -0
- package/dist/presets/data-pipeline.d.ts +11 -0
- package/dist/presets/extend.d.ts +194 -0
- package/dist/presets/extend.test.d.ts +0 -0
- package/dist/presets/fullstack-app.d.ts +12 -0
- package/dist/presets/index.d.ts +24 -0
- package/dist/presets/jamstack.d.ts +12 -0
- package/dist/presets/microservices.d.ts +18 -0
- package/dist/presets/ml-api.d.ts +13 -0
- package/dist/presets/nodejs-server.d.ts +14 -0
- package/dist/presets/nodejs-serverless.d.ts +14 -0
- package/dist/presets/realtime-app.d.ts +11 -0
- package/dist/presets/static-site.d.ts +12 -0
- package/dist/presets/traditional-web-app.d.ts +16 -0
- package/dist/presets/wordpress.d.ts +12 -0
- package/dist/preview/github.d.ts +32 -0
- package/dist/preview/github.test.d.ts +0 -0
- package/dist/preview/index.d.ts +27 -0
- package/dist/preview/manager.d.ts +58 -0
- package/dist/preview/manager.test.d.ts +0 -0
- package/dist/preview/notifications.d.ts +55 -0
- package/dist/preview/notifications.test.d.ts +0 -0
- package/dist/queue/batch-processing.d.ts +87 -0
- package/dist/queue/dlq-monitoring.d.ts +95 -0
- package/dist/queue/fifo.d.ts +90 -0
- package/dist/queue/index.d.ts +4 -0
- package/dist/queue/management.d.ts +105 -0
- package/dist/queue/queue.test.d.ts +0 -0
- package/dist/resource-mgmt/index.d.ts +29 -0
- package/dist/resource-naming.d.ts +26 -0
- package/dist/s3/index.d.ts +173 -0
- package/dist/schema/index.d.ts +9 -0
- package/dist/security/certificate-manager.d.ts +121 -0
- package/dist/security/index.d.ts +4 -0
- package/dist/security/scanning.d.ts +147 -0
- package/dist/security/secrets-manager.d.ts +144 -0
- package/dist/security/secrets-rotation.d.ts +115 -0
- package/dist/security/security.test.d.ts +0 -0
- package/dist/sms/advanced/ab-testing.d.ts +54 -0
- package/dist/sms/advanced/analytics.d.ts +56 -0
- package/dist/sms/advanced/campaigns.d.ts +82 -0
- package/dist/sms/advanced/chatbot.d.ts +48 -0
- package/dist/sms/advanced/index.d.ts +6 -0
- package/dist/sms/advanced/link-tracking.d.ts +42 -0
- package/dist/sms/advanced/mms.d.ts +35 -0
- package/dist/sms/handlers/__tests__/send.test.d.ts +0 -0
- package/dist/sms/handlers/delivery-status.d.ts +131 -0
- package/dist/sms/handlers/receive.d.ts +160 -0
- package/dist/sms/handlers/send.d.ts +172 -0
- package/dist/sms/index.d.ts +2 -0
- package/dist/stack-diff.d.ts +34 -0
- package/dist/static-site/index.d.ts +49 -0
- package/dist/template-builder.d.ts +14 -0
- package/dist/template-validator.d.ts +24 -0
- package/dist/utils/cache.d.ts +55 -0
- package/dist/utils/diff.d.ts +48 -0
- package/dist/utils/hash.d.ts +58 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/parallel.d.ts +60 -0
- package/dist/validators/credentials.d.ts +23 -0
- package/dist/validators/credentials.test.d.ts +0 -0
- package/dist/validators/quotas.d.ts +60 -0
- package/dist/validators/quotas.test.d.ts +0 -0
- 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
|
|
File without changes
|
|
File without changes
|