@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.
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,75 @@
1
+ /**
2
+ * Global DNSSEC manager instance
3
+ */
4
+ export declare const dnssecManager: DNSSECManager;
5
+ /**
6
+ * DNSSEC Configuration
7
+ * DNS Security Extensions for Route53
8
+ */
9
+ export declare interface DNSSECConfig {
10
+ id: string
11
+ hostedZoneId: string
12
+ status: 'SIGNING' | 'SIGNED' | 'NOT_SIGNING' | 'DELETING' | 'ACTION_NEEDED'
13
+ signingStatus?: string
14
+ statusMessage?: string
15
+ }
16
+ export declare interface KSK {
17
+ id: string
18
+ name: string
19
+ hostedZoneId: string
20
+ status: 'ACTIVE' | 'INACTIVE' | 'DELETING' | 'ACTION_NEEDED'
21
+ keyManagementServiceArn: string
22
+ dnskeyRecord?: string
23
+ dsRecord?: string
24
+ digestAlgorithm: number
25
+ digestValue?: string
26
+ flag: number
27
+ keyTag?: number
28
+ publicKey?: string
29
+ }
30
+ export declare interface DNSSECValidation {
31
+ id: string
32
+ domain: string
33
+ validationStatus: 'VALID' | 'INVALID' | 'INSECURE' | 'BOGUS'
34
+ dnskeyPresent: boolean
35
+ rrsigPresent: boolean
36
+ validSignature: boolean
37
+ errors: string[]
38
+ }
39
+ /**
40
+ * DNSSEC manager
41
+ */
42
+ export declare class DNSSECManager {
43
+ private configs: Map<string, DNSSECConfig>;
44
+ private ksks: Map<string, KSK>;
45
+ private validations: Map<string, DNSSECValidation>;
46
+ private configCounter: any;
47
+ private kskCounter: any;
48
+ private validationCounter: any;
49
+ enableDNSSEC(options: {
50
+ hostedZoneId: string
51
+ kmsKeyArn?: string
52
+ }): DNSSECConfig;
53
+ disableDNSSEC(configId: string): DNSSECConfig;
54
+ createKSK(options: {
55
+ name: string
56
+ hostedZoneId: string
57
+ kmsKeyArn: string
58
+ }): KSK;
59
+ deactivateKSK(kskId: string): KSK;
60
+ validateDNSSEC(options: {
61
+ domain: string
62
+ checkDNSKEY?: boolean
63
+ checkRRSIG?: boolean
64
+ }): DNSSECValidation;
65
+ getDNSSECConfig(id: string): DNSSECConfig | undefined;
66
+ listDNSSECConfigs(): DNSSECConfig[];
67
+ getKSK(id: string): KSK | undefined;
68
+ listKSKs(hostedZoneId?: string): KSK[];
69
+ getDSRecord(kskId: string): string;
70
+ private generatePublicKey(): string;
71
+ private generateDigest(dnskeyRecord: string): string;
72
+ generateDNSSECCF(config: DNSSECConfig): any;
73
+ generateKSKCF(ksk: KSK): any;
74
+ clear(): void;
75
+ }
@@ -0,0 +1,3 @@
1
+ export * from './routing';
2
+ export * from './dnssec';
3
+ export * from './resolver';
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Global Route53 Resolver manager instance
3
+ */
4
+ export declare const route53ResolverManager: Route53ResolverManager;
5
+ /**
6
+ * Route53 Resolver
7
+ * DNS firewall, resolver rules, and endpoints
8
+ */
9
+ export declare interface ResolverEndpoint {
10
+ id: string
11
+ name: string
12
+ direction: 'INBOUND' | 'OUTBOUND'
13
+ ipAddresses: ResolverIP[]
14
+ securityGroupIds: string[]
15
+ status: 'CREATING' | 'OPERATIONAL' | 'UPDATING' | 'DELETING' | 'ACTION_NEEDED'
16
+ }
17
+ export declare interface ResolverIP {
18
+ subnetId: string
19
+ ip?: string
20
+ ipv6?: string
21
+ }
22
+ export declare interface ResolverRule {
23
+ id: string
24
+ name: string
25
+ ruleType: 'FORWARD' | 'SYSTEM' | 'RECURSIVE'
26
+ domainName: string
27
+ targetIps?: TargetIP[]
28
+ resolverEndpointId?: string
29
+ status: 'COMPLETE' | 'CREATING' | 'UPDATING' | 'DELETING' | 'FAILED'
30
+ }
31
+ export declare interface TargetIP {
32
+ ip: string
33
+ port?: number
34
+ }
35
+ export declare interface DNSFirewall {
36
+ id: string
37
+ name: string
38
+ firewallRuleGroupAssociations: FirewallRuleGroupAssociation[]
39
+ }
40
+ export declare interface FirewallRuleGroupAssociation {
41
+ id: string
42
+ vpcId: string
43
+ firewallRuleGroupId: string
44
+ priority: number
45
+ mutationProtection: 'ENABLED' | 'DISABLED'
46
+ status: 'COMPLETE' | 'CREATING' | 'UPDATING' | 'DELETING'
47
+ }
48
+ export declare interface FirewallRuleGroup {
49
+ id: string
50
+ name: string
51
+ rules: FirewallRule[]
52
+ shareStatus: 'NOT_SHARED' | 'SHARED_WITH_ME' | 'SHARED_BY_ME'
53
+ }
54
+ export declare interface FirewallRule {
55
+ id: string
56
+ name: string
57
+ priority: number
58
+ action: 'ALLOW' | 'BLOCK' | 'ALERT'
59
+ blockResponse?: 'NODATA' | 'NXDOMAIN' | 'OVERRIDE'
60
+ blockOverrideDomain?: string
61
+ blockOverrideTTL?: number
62
+ firewallDomainListId: string
63
+ }
64
+ export declare interface FirewallDomainList {
65
+ id: string
66
+ name: string
67
+ domains: string[]
68
+ status: 'COMPLETE' | 'CREATING' | 'UPDATING' | 'DELETING'
69
+ }
70
+ /**
71
+ * Route53 Resolver manager
72
+ */
73
+ export declare class Route53ResolverManager {
74
+ private endpoints: Map<string, ResolverEndpoint>;
75
+ private rules: Map<string, ResolverRule>;
76
+ private firewalls: Map<string, DNSFirewall>;
77
+ private ruleGroups: Map<string, FirewallRuleGroup>;
78
+ private domainLists: Map<string, FirewallDomainList>;
79
+ private endpointCounter: any;
80
+ private ruleCounter: any;
81
+ private firewallCounter: any;
82
+ private ruleGroupCounter: any;
83
+ private domainListCounter: any;
84
+ createResolverEndpoint(endpoint: Omit<ResolverEndpoint, 'id' | 'status'>): ResolverEndpoint;
85
+ createInboundEndpoint(options: {
86
+ name: string
87
+ subnetIds: string[]
88
+ securityGroupIds: string[]
89
+ }): ResolverEndpoint;
90
+ createOutboundEndpoint(options: {
91
+ name: string
92
+ subnetIds: string[]
93
+ securityGroupIds: string[]
94
+ }): ResolverEndpoint;
95
+ createResolverRule(rule: Omit<ResolverRule, 'id' | 'status'>): ResolverRule;
96
+ createForwardRule(options: {
97
+ name: string
98
+ domainName: string
99
+ targetIps: TargetIP[]
100
+ resolverEndpointId: string
101
+ }): ResolverRule;
102
+ createSystemRule(options: {
103
+ name: string
104
+ domainName: string
105
+ }): ResolverRule;
106
+ createFirewallDomainList(options: {
107
+ name: string
108
+ domains: string[]
109
+ }): FirewallDomainList;
110
+ createFirewallRuleGroup(options: {
111
+ name: string
112
+ rules: Omit<FirewallRule, 'id'>[]
113
+ }): FirewallRuleGroup;
114
+ createBlockRule(options: {
115
+ name: string
116
+ priority: number
117
+ domainListId: string
118
+ blockResponse?: 'NODATA' | 'NXDOMAIN' | 'OVERRIDE'
119
+ blockOverrideDomain?: string
120
+ }): FirewallRuleGroup;
121
+ createAllowRule(options: {
122
+ name: string
123
+ priority: number
124
+ domainListId: string
125
+ }): FirewallRuleGroup;
126
+ createDNSFirewall(options: {
127
+ name: string
128
+ vpcId: string
129
+ ruleGroupAssociations: Array<{
130
+ firewallRuleGroupId: string
131
+ priority: number
132
+ mutationProtection?: 'ENABLED' | 'DISABLED'
133
+ }>
134
+ }): DNSFirewall;
135
+ createMalwareProtectionFirewall(options: {
136
+ name: string
137
+ vpcId: string
138
+ maliciousDomains: string[]
139
+ }): DNSFirewall;
140
+ getEndpoint(id: string): ResolverEndpoint | undefined;
141
+ listEndpoints(direction?: 'INBOUND' | 'OUTBOUND'): ResolverEndpoint[];
142
+ getRule(id: string): ResolverRule | undefined;
143
+ listRules(): ResolverRule[];
144
+ getFirewall(id: string): DNSFirewall | undefined;
145
+ listFirewalls(): DNSFirewall[];
146
+ generateResolverEndpointCF(endpoint: ResolverEndpoint): any;
147
+ generateResolverRuleCF(rule: ResolverRule): any;
148
+ generateFirewallRuleGroupCF(ruleGroup: FirewallRuleGroup): any;
149
+ clear(): void;
150
+ }
@@ -0,0 +1,217 @@
1
+ /**
2
+ * Global Route53 routing manager instance
3
+ */
4
+ export declare const route53RoutingManager: Route53RoutingManager;
5
+ /**
6
+ * Route53 Advanced Routing
7
+ * Health-based, geolocation, weighted, failover, and latency-based routing
8
+ */
9
+ export declare interface RoutingPolicy {
10
+ id: string
11
+ name: string
12
+ type: 'simple' | 'weighted' | 'latency' | 'failover' | 'geolocation' | 'geoproximity' | 'multivalue'
13
+ recordSetId?: string
14
+ }
15
+ export declare interface WeightedRoutingPolicy extends RoutingPolicy {
16
+ type: 'weighted'
17
+ weight: number
18
+ setIdentifier: string
19
+ healthCheckId?: string
20
+ }
21
+ export declare interface LatencyRoutingPolicy extends RoutingPolicy {
22
+ type: 'latency'
23
+ region: string
24
+ setIdentifier: string
25
+ healthCheckId?: string
26
+ }
27
+ export declare interface FailoverRoutingPolicy extends RoutingPolicy {
28
+ type: 'failover'
29
+ failoverType: 'PRIMARY' | 'SECONDARY'
30
+ setIdentifier: string
31
+ healthCheckId: string
32
+ }
33
+ export declare interface GeolocationRoutingPolicy extends RoutingPolicy {
34
+ type: 'geolocation'
35
+ continent?: string
36
+ country?: string
37
+ subdivision?: string
38
+ setIdentifier: string
39
+ healthCheckId?: string
40
+ }
41
+ export declare interface GeoproximityRoutingPolicy extends RoutingPolicy {
42
+ type: 'geoproximity'
43
+ coordinates?: {
44
+ latitude: number
45
+ longitude: number
46
+ }
47
+ awsRegion?: string
48
+ bias?: number
49
+ setIdentifier: string
50
+ healthCheckId?: string
51
+ }
52
+ export declare interface HealthCheck {
53
+ id: string
54
+ name: string
55
+ type: 'http' | 'https' | 'tcp' | 'calculated' | 'cloudwatch_metric'
56
+ resourcePath?: string
57
+ fullyQualifiedDomainName?: string
58
+ ipAddress?: string
59
+ port?: number
60
+ requestInterval: number
61
+ failureThreshold: number
62
+ healthCheckStatus: 'Healthy' | 'Unhealthy' | 'Unknown'
63
+ measureLatency?: boolean
64
+ enableSNI?: boolean
65
+ }
66
+ export declare interface CalculatedHealthCheck extends HealthCheck {
67
+ type: 'calculated'
68
+ childHealthChecks: string[]
69
+ healthThreshold: number
70
+ }
71
+ export declare interface TrafficPolicy {
72
+ id: string
73
+ name: string
74
+ version: number
75
+ document: TrafficPolicyDocument
76
+ }
77
+ export declare interface TrafficPolicyDocument {
78
+ recordType: 'A' | 'AAAA' | 'CNAME'
79
+ startRule: string
80
+ endpoints: Record<string, TrafficPolicyEndpoint>
81
+ rules: Record<string, TrafficPolicyRule>
82
+ }
83
+ export declare interface TrafficPolicyEndpoint {
84
+ type: 'value' | 'cloudfront' | 'elastic_load_balancer' | 's3_website'
85
+ value?: string
86
+ region?: string
87
+ }
88
+ export declare interface TrafficPolicyRule {
89
+ ruleType: 'failover' | 'geoproximity' | 'latency' | 'weighted' | 'multivalue'
90
+ primary?: string
91
+ secondary?: string
92
+ locations?: Array<{
93
+ endpointReference: string
94
+ region?: string
95
+ latitude?: number
96
+ longitude?: number
97
+ bias?: number
98
+ }>
99
+ items?: Array<{
100
+ endpointReference: string
101
+ weight?: number
102
+ }>
103
+ }
104
+ /**
105
+ * Route53 routing policy manager
106
+ */
107
+ export declare class Route53RoutingManager {
108
+ private policies: Map<string, RoutingPolicy>;
109
+ private healthChecks: Map<string, HealthCheck>;
110
+ private trafficPolicies: Map<string, TrafficPolicy>;
111
+ private policyCounter: any;
112
+ private healthCheckCounter: any;
113
+ private trafficPolicyCounter: any;
114
+ createWeightedPolicy(options: {
115
+ name: string
116
+ weight: number
117
+ setIdentifier: string
118
+ healthCheckId?: string
119
+ }): WeightedRoutingPolicy;
120
+ createLatencyPolicy(options: {
121
+ name: string
122
+ region: string
123
+ setIdentifier: string
124
+ healthCheckId?: string
125
+ }): LatencyRoutingPolicy;
126
+ createFailoverPolicy(options: {
127
+ name: string
128
+ failoverType: 'PRIMARY' | 'SECONDARY'
129
+ setIdentifier: string
130
+ healthCheckId: string
131
+ }): FailoverRoutingPolicy;
132
+ createGeolocationPolicy(options: {
133
+ name: string
134
+ continent?: string
135
+ country?: string
136
+ subdivision?: string
137
+ setIdentifier: string
138
+ healthCheckId?: string
139
+ }): GeolocationRoutingPolicy;
140
+ createGeoproximityPolicy(options: {
141
+ name: string
142
+ coordinates?: {
143
+ latitude: number
144
+ longitude: number
145
+ }
146
+ awsRegion?: string
147
+ bias?: number
148
+ setIdentifier: string
149
+ healthCheckId?: string
150
+ }): GeoproximityRoutingPolicy;
151
+ createHTTPHealthCheck(options: {
152
+ name: string
153
+ resourcePath: string
154
+ fullyQualifiedDomainName?: string
155
+ ipAddress?: string
156
+ port?: number
157
+ requestInterval?: number
158
+ failureThreshold?: number
159
+ enableSNI?: boolean
160
+ }): HealthCheck;
161
+ createTCPHealthCheck(options: {
162
+ name: string
163
+ ipAddress: string
164
+ port: number
165
+ requestInterval?: number
166
+ failureThreshold?: number
167
+ }): HealthCheck;
168
+ createCalculatedHealthCheck(options: {
169
+ name: string
170
+ childHealthChecks: string[]
171
+ healthThreshold: number
172
+ }): CalculatedHealthCheck;
173
+ createTrafficPolicy(policy: Omit<TrafficPolicy, 'id' | 'version'>): TrafficPolicy;
174
+ createFailoverTrafficPolicy(options: {
175
+ name: string
176
+ primaryEndpoint: string
177
+ secondaryEndpoint: string
178
+ recordType?: 'A' | 'AAAA' | 'CNAME'
179
+ }): TrafficPolicy;
180
+ createGeoproximityTrafficPolicy(options: {
181
+ name: string
182
+ locations: Array<{
183
+ endpoint: string
184
+ region?: string
185
+ latitude?: number
186
+ longitude?: number
187
+ bias?: number
188
+ }>
189
+ }): TrafficPolicy;
190
+ getPolicy(id: string): RoutingPolicy | undefined;
191
+ listPolicies(): RoutingPolicy[];
192
+ getHealthCheck(id: string): HealthCheck | undefined;
193
+ listHealthChecks(): HealthCheck[];
194
+ getHealthCheckStatus(id: string): 'Healthy' | 'Unhealthy' | 'Unknown';
195
+ generateHealthCheckCF(healthCheck: HealthCheck): any;
196
+ generateWeightedRecordSetCF(options: {
197
+ hostedZoneId: string
198
+ name: string
199
+ type: 'A' | 'AAAA' | 'CNAME'
200
+ ttl: number
201
+ resourceRecords: string[]
202
+ weight: number
203
+ setIdentifier: string
204
+ healthCheckId?: string
205
+ }): any;
206
+ generateFailoverRecordSetCF(options: {
207
+ hostedZoneId: string
208
+ name: string
209
+ type: 'A' | 'AAAA' | 'CNAME'
210
+ ttl: number
211
+ resourceRecords: string[]
212
+ failover: 'PRIMARY' | 'SECONDARY'
213
+ setIdentifier: string
214
+ healthCheckId?: string
215
+ }): any;
216
+ clear(): void;
217
+ }
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Email Analytics
3
+ *
4
+ * Provides open tracking, click tracking, and email metrics
5
+ */
6
+ export declare 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 declare interface ClickEvent {
28
+ url: string
29
+ clickedAt: string
30
+ userAgent?: string
31
+ ipAddress?: string
32
+ }
33
+ export declare 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
+ static TrackingPixelLambdaCode: any;
53
+ static ClickTrackingLambdaCode: any;
54
+ static SesEventProcessorCode: any;
55
+ static createAnalyticsTable(config: { slug: string }): Record<string, any>;
56
+ static createTrackingPixelLambda(config: {
57
+ slug: string
58
+ roleArn: string
59
+ analyticsTable: string
60
+ }): Record<string, any>;
61
+ static createClickTrackingLambda(config: {
62
+ slug: string
63
+ roleArn: string
64
+ analyticsTable: string
65
+ }): Record<string, any>;
66
+ static createSesEventProcessorLambda(config: {
67
+ slug: string
68
+ roleArn: string
69
+ analyticsTable: string
70
+ }): Record<string, any>;
71
+ static injectTracking(params: {
72
+ html: string
73
+ messageId: string
74
+ trackingDomain: string
75
+ }): string;
76
+ static calculateMetrics(analytics: EmailAnalytics[]): EmailMetrics;
77
+ }
78
+ export default EmailAnalyticsModule;
@@ -0,0 +1,7 @@
1
+ export * from './search';
2
+ export * from './threading';
3
+ export * from './scheduling';
4
+ export * from './analytics';
5
+ export * from './templates';
6
+ export * from './shared-mailboxes';
7
+ export * from './rules';
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Email Rules and Automation
3
+ *
4
+ * Provides email filtering, routing, and automation
5
+ */
6
+ export declare 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 declare 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 declare interface RuleAction {
24
+ type: 'move' | 'copy' | 'delete' | 'label' | 'forward' | 'reply' | 'mark-read' | 'mark-starred' | 'webhook' | 'lambda'
25
+ params: Record<string, any>
26
+ }
27
+ export declare interface AutomationWorkflow {
28
+ id: string
29
+ name: string
30
+ trigger: WorkflowTrigger
31
+ steps: WorkflowStep[]
32
+ enabled: boolean
33
+ }
34
+ export declare interface WorkflowTrigger {
35
+ type: 'email-received' | 'email-sent' | 'schedule' | 'webhook'
36
+ conditions?: RuleCondition[]
37
+ }
38
+ export declare 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
+ static RuleProcessorCode: any;
51
+ static createRulesTable(config: { slug: string }): Record<string, any>;
52
+ static createRuleProcessorLambda(config: {
53
+ slug: string
54
+ roleArn: string
55
+ emailBucket: string
56
+ rulesTable: string
57
+ }): Record<string, any>;
58
+ static readonly RuleTemplates: any;
59
+ }
60
+ export default EmailRules;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Email Scheduling (Send Later)
3
+ *
4
+ * Provides scheduled email sending functionality
5
+ */
6
+ export declare 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
+ static SchedulerLambdaCode: any;
35
+ static createSchedulerLambda(config: {
36
+ slug: string
37
+ roleArn: string
38
+ emailBucket: string
39
+ }): Record<string, any>;
40
+ static createSchedulerRule(config: {
41
+ slug: string
42
+ lambdaArn: string
43
+ scheduleExpression?: string
44
+ }): Record<string, any>;
45
+ static scheduleEmail(params: {
46
+ s3Client: any
47
+ bucket: string
48
+ email: ScheduledEmail['email']
49
+ scheduledFor: Date | string
50
+ timezone?: string
51
+ }): Promise<ScheduledEmail>;
52
+ static cancelScheduledEmail(params: {
53
+ s3Client: any
54
+ bucket: string
55
+ id: string
56
+ }): Promise<boolean>;
57
+ static listScheduledEmails(params: {
58
+ s3Client: any
59
+ bucket: string
60
+ status?: ScheduledEmail['status']
61
+ }): Promise<ScheduledEmail[]>;
62
+ }
63
+ export default EmailScheduling;