@ts-cloud/core 0.2.3 → 0.2.5

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,165 @@
1
+ /**
2
+ * Database User Management
3
+ * User creation, permissions, and access control
4
+ */
5
+ export interface DatabaseUser {
6
+ id: string;
7
+ username: string;
8
+ database: string;
9
+ privileges: DatabasePrivilege[];
10
+ passwordSecretArn?: string;
11
+ createdAt: Date;
12
+ lastRotated?: Date;
13
+ rotationEnabled?: boolean;
14
+ rotationDays?: number;
15
+ }
16
+ export interface DatabasePrivilege {
17
+ database?: string;
18
+ table?: string;
19
+ privileges: PrivilegeType[];
20
+ }
21
+ export type PrivilegeType = 'SELECT' | 'INSERT' | 'UPDATE' | 'DELETE' | 'CREATE' | 'DROP' | 'ALTER' | 'INDEX' | 'EXECUTE' | 'ALL';
22
+ export interface UserRole {
23
+ id: string;
24
+ name: string;
25
+ description?: string;
26
+ privileges: DatabasePrivilege[];
27
+ users: string[];
28
+ }
29
+ export interface AccessAudit {
30
+ id: string;
31
+ username: string;
32
+ action: 'LOGIN' | 'QUERY' | 'MODIFY' | 'GRANT' | 'REVOKE';
33
+ database?: string;
34
+ table?: string;
35
+ query?: string;
36
+ timestamp: Date;
37
+ success: boolean;
38
+ ipAddress?: string;
39
+ }
40
+ /**
41
+ * Database user manager
42
+ */
43
+ export declare class DatabaseUserManager {
44
+ private users;
45
+ private roles;
46
+ private audits;
47
+ private userCounter;
48
+ private roleCounter;
49
+ private auditCounter;
50
+ /**
51
+ * Create database user
52
+ */
53
+ createUser(user: Omit<DatabaseUser, 'id' | 'createdAt'>): DatabaseUser;
54
+ /**
55
+ * Create read-only user
56
+ */
57
+ createReadOnlyUser(options: {
58
+ username: string;
59
+ database: string;
60
+ passwordSecretArn?: string;
61
+ tables?: string[];
62
+ }): DatabaseUser;
63
+ /**
64
+ * Create read-write user
65
+ */
66
+ createReadWriteUser(options: {
67
+ username: string;
68
+ database: string;
69
+ passwordSecretArn?: string;
70
+ tables?: string[];
71
+ }): DatabaseUser;
72
+ /**
73
+ * Create admin user
74
+ */
75
+ createAdminUser(options: {
76
+ username: string;
77
+ database: string;
78
+ passwordSecretArn?: string;
79
+ }): DatabaseUser;
80
+ /**
81
+ * Create application user with specific table access
82
+ */
83
+ createApplicationUser(options: {
84
+ username: string;
85
+ database: string;
86
+ tables: {
87
+ name: string;
88
+ privileges: PrivilegeType[];
89
+ }[];
90
+ passwordSecretArn?: string;
91
+ }): DatabaseUser;
92
+ /**
93
+ * Create user role
94
+ */
95
+ createRole(role: Omit<UserRole, 'id' | 'users'>): UserRole;
96
+ /**
97
+ * Assign user to role
98
+ */
99
+ assignUserToRole(userId: string, roleId: string): void;
100
+ /**
101
+ * Grant privileges to user
102
+ */
103
+ grantPrivileges(userId: string, privileges: DatabasePrivilege[]): {
104
+ success: boolean;
105
+ message: string;
106
+ };
107
+ /**
108
+ * Revoke privileges from user
109
+ */
110
+ revokePrivileges(userId: string, privileges: DatabasePrivilege[]): {
111
+ success: boolean;
112
+ message: string;
113
+ };
114
+ /**
115
+ * Rotate user password
116
+ */
117
+ rotatePassword(userId: string): {
118
+ success: boolean;
119
+ newSecretArn?: string;
120
+ };
121
+ /**
122
+ * Check if password rotation needed
123
+ */
124
+ needsPasswordRotation(userId: string): boolean;
125
+ /**
126
+ * Audit access
127
+ */
128
+ auditAccess(audit: Omit<AccessAudit, 'id' | 'timestamp'>): AccessAudit;
129
+ /**
130
+ * Get user access history
131
+ */
132
+ getUserAccessHistory(username: string, limit?: number): AccessAudit[];
133
+ /**
134
+ * Get failed login attempts
135
+ */
136
+ getFailedLoginAttempts(username: string, hours?: number): AccessAudit[];
137
+ /**
138
+ * Generate SQL for user creation
139
+ */
140
+ generateCreateUserSQL(user: DatabaseUser, engine?: 'postgres' | 'mysql'): string;
141
+ /**
142
+ * Get user
143
+ */
144
+ getUser(id: string): DatabaseUser | undefined;
145
+ /**
146
+ * List users
147
+ */
148
+ listUsers(): DatabaseUser[];
149
+ /**
150
+ * Get role
151
+ */
152
+ getRole(id: string): UserRole | undefined;
153
+ /**
154
+ * List roles
155
+ */
156
+ listRoles(): UserRole[];
157
+ /**
158
+ * Clear all data
159
+ */
160
+ clear(): void;
161
+ }
162
+ /**
163
+ * Global database user manager instance
164
+ */
165
+ export declare const databaseUserManager: DatabaseUserManager;
@@ -0,0 +1,37 @@
1
+ import type { CloudFormationResource } from '@ts-cloud/aws-types';
2
+ export interface ResourceNode {
3
+ logicalId: string;
4
+ resource: CloudFormationResource;
5
+ dependencies: Set<string>;
6
+ }
7
+ /**
8
+ * Dependency Graph for CloudFormation resources
9
+ * Ensures resources are created in the correct order
10
+ */
11
+ export declare class DependencyGraph {
12
+ private nodes;
13
+ /**
14
+ * Add a resource to the dependency graph
15
+ */
16
+ addResource(logicalId: string, resource: CloudFormationResource): void;
17
+ /**
18
+ * Extract dependencies from a resource
19
+ */
20
+ private extractDependencies;
21
+ /**
22
+ * Find all Ref references in an object
23
+ */
24
+ private findReferences;
25
+ /**
26
+ * Perform topological sort to determine resource creation order
27
+ */
28
+ topologicalSort(): string[];
29
+ /**
30
+ * Validate that all dependencies exist
31
+ */
32
+ validate(): void;
33
+ /**
34
+ * Get resources that depend on a given resource
35
+ */
36
+ getDependents(logicalId: string): string[];
37
+ }
@@ -0,0 +1,165 @@
1
+ /**
2
+ * A/B Testing Infrastructure
3
+ * Traffic splitting based on user attributes, headers, or cookies
4
+ */
5
+ export interface ABTest {
6
+ id: string;
7
+ name: string;
8
+ description?: string;
9
+ variants: ABVariant[];
10
+ routingStrategy: RoutingStrategy;
11
+ startTime: Date;
12
+ endTime?: Date;
13
+ status: 'draft' | 'active' | 'paused' | 'completed';
14
+ metrics?: ABMetrics;
15
+ winner?: string;
16
+ }
17
+ export interface ABVariant {
18
+ id: string;
19
+ name: string;
20
+ description?: string;
21
+ trafficPercentage: number;
22
+ targetGroupArn?: string;
23
+ functionVersionArn?: string;
24
+ originId?: string;
25
+ weight: number;
26
+ }
27
+ export interface RoutingStrategy {
28
+ type: 'random' | 'cookie' | 'header' | 'geo' | 'device' | 'user-attribute';
29
+ cookieName?: string;
30
+ headerName?: string;
31
+ attributeName?: string;
32
+ stickySession?: boolean;
33
+ sessionDuration?: number;
34
+ }
35
+ export interface ABMetrics {
36
+ variants: Record<string, VariantMetrics>;
37
+ totalRequests: number;
38
+ startTime: Date;
39
+ lastUpdated: Date;
40
+ }
41
+ export interface VariantMetrics {
42
+ requests: number;
43
+ conversions: number;
44
+ conversionRate: number;
45
+ averageLatency: number;
46
+ errorRate: number;
47
+ revenue?: number;
48
+ customMetrics?: Record<string, number>;
49
+ }
50
+ export interface ABTestResult {
51
+ testId: string;
52
+ winningVariant: string;
53
+ confidence: number;
54
+ improvement: number;
55
+ statisticalSignificance: boolean;
56
+ metrics: ABMetrics;
57
+ recommendation: string;
58
+ }
59
+ /**
60
+ * A/B testing manager
61
+ */
62
+ export declare class ABTestManager {
63
+ private tests;
64
+ private testCounter;
65
+ /**
66
+ * Create A/B test
67
+ */
68
+ createTest(test: Omit<ABTest, 'id'>): ABTest;
69
+ /**
70
+ * Create simple A/B test (control vs variant)
71
+ */
72
+ createSimpleABTest(options: {
73
+ name: string;
74
+ description?: string;
75
+ controlTargetGroupArn: string;
76
+ variantTargetGroupArn: string;
77
+ variantTrafficPercentage?: number;
78
+ stickySession?: boolean;
79
+ }): ABTest;
80
+ /**
81
+ * Create multivariate test
82
+ */
83
+ createMultivariateTest(options: {
84
+ name: string;
85
+ description?: string;
86
+ variants: Array<{
87
+ name: string;
88
+ description?: string;
89
+ targetGroupArn: string;
90
+ trafficPercentage: number;
91
+ }>;
92
+ routingStrategy?: RoutingStrategy;
93
+ }): ABTest;
94
+ /**
95
+ * Create header-based A/B test
96
+ */
97
+ createHeaderBasedTest(options: {
98
+ name: string;
99
+ controlTargetGroupArn: string;
100
+ variantTargetGroupArn: string;
101
+ headerName: string;
102
+ headerValue: string;
103
+ }): ABTest;
104
+ /**
105
+ * Create geo-based A/B test
106
+ */
107
+ createGeoBasedTest(options: {
108
+ name: string;
109
+ controlTargetGroupArn: string;
110
+ variantTargetGroupArn: string;
111
+ regions: string[];
112
+ }): ABTest;
113
+ /**
114
+ * Start A/B test
115
+ */
116
+ startTest(testId: string): void;
117
+ /**
118
+ * Pause A/B test
119
+ */
120
+ pauseTest(testId: string): void;
121
+ /**
122
+ * Update traffic split
123
+ */
124
+ updateTrafficSplit(testId: string, variantId: string, newPercentage: number): void;
125
+ /**
126
+ * Analyze test results
127
+ */
128
+ analyzeResults(testId: string): ABTestResult;
129
+ /**
130
+ * Declare winner and route all traffic
131
+ */
132
+ declareWinner(testId: string, variantId: string): void;
133
+ /**
134
+ * Collect metrics for test
135
+ */
136
+ private collectMetrics;
137
+ /**
138
+ * Generate recommendation
139
+ */
140
+ private generateRecommendation;
141
+ /**
142
+ * Get test
143
+ */
144
+ getTest(id: string): ABTest | undefined;
145
+ /**
146
+ * List tests
147
+ */
148
+ listTests(): ABTest[];
149
+ /**
150
+ * Generate CloudFormation for ALB weighted routing
151
+ */
152
+ generateALBListenerRuleCF(test: ABTest): any;
153
+ /**
154
+ * Generate Lambda@Edge function for A/B testing
155
+ */
156
+ generateLambdaEdgeFunction(test: ABTest): string;
157
+ /**
158
+ * Clear all data
159
+ */
160
+ clear(): void;
161
+ }
162
+ /**
163
+ * Global A/B testing manager instance
164
+ */
165
+ export declare const abTestManager: ABTestManager;
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Blue/Green Deployment Strategy
3
+ * Zero-downtime deployments with instant rollback capability
4
+ */
5
+ export interface BlueGreenDeployment {
6
+ id: string;
7
+ name: string;
8
+ blueEnvironment: Environment;
9
+ greenEnvironment: Environment;
10
+ activeEnvironment: 'blue' | 'green';
11
+ routingConfig: RoutingConfig;
12
+ autoPromote?: boolean;
13
+ autoRollback?: boolean;
14
+ healthCheckConfig?: HealthCheckConfig;
15
+ }
16
+ export interface Environment {
17
+ name: string;
18
+ targetGroupArn: string;
19
+ autoScalingGroupName?: string;
20
+ taskDefinitionArn?: string;
21
+ functionVersionArn?: string;
22
+ instanceIds?: string[];
23
+ weight?: number;
24
+ }
25
+ export interface RoutingConfig {
26
+ type: 'alb' | 'route53' | 'cloudfront' | 'api-gateway';
27
+ listenerArn?: string;
28
+ hostedZoneId?: string;
29
+ distributionId?: string;
30
+ apiId?: string;
31
+ switchoverTimeSeconds?: number;
32
+ }
33
+ export interface HealthCheckConfig {
34
+ healthyThreshold: number;
35
+ unhealthyThreshold: number;
36
+ interval: number;
37
+ timeout: number;
38
+ path?: string;
39
+ port?: number;
40
+ }
41
+ export interface DeploymentResult {
42
+ success: boolean;
43
+ deploymentId: string;
44
+ startTime: Date;
45
+ endTime?: Date;
46
+ switchedAt?: Date;
47
+ rolledBackAt?: Date;
48
+ healthChecksPassed: boolean;
49
+ errors?: string[];
50
+ }
51
+ /**
52
+ * Blue/Green deployment manager
53
+ */
54
+ export declare class BlueGreenManager {
55
+ private deployments;
56
+ private deploymentHistory;
57
+ private deploymentCounter;
58
+ private resultCounter;
59
+ /**
60
+ * Create blue/green deployment configuration
61
+ */
62
+ createDeployment(deployment: Omit<BlueGreenDeployment, 'id'>): BlueGreenDeployment;
63
+ /**
64
+ * Create ALB-based blue/green deployment
65
+ */
66
+ createALBDeployment(options: {
67
+ name: string;
68
+ listenerArn: string;
69
+ blueTargetGroupArn: string;
70
+ greenTargetGroupArn: string;
71
+ autoPromote?: boolean;
72
+ healthCheckConfig?: HealthCheckConfig;
73
+ }): BlueGreenDeployment;
74
+ /**
75
+ * Create Route53-based blue/green deployment
76
+ */
77
+ createRoute53Deployment(options: {
78
+ name: string;
79
+ hostedZoneId: string;
80
+ blueTargetGroupArn: string;
81
+ greenTargetGroupArn: string;
82
+ switchoverTimeSeconds?: number;
83
+ }): BlueGreenDeployment;
84
+ /**
85
+ * Create ECS blue/green deployment
86
+ */
87
+ createECSDeployment(options: {
88
+ name: string;
89
+ listenerArn: string;
90
+ blueTargetGroupArn: string;
91
+ greenTargetGroupArn: string;
92
+ blueTaskDefinitionArn: string;
93
+ greenTaskDefinitionArn: string;
94
+ autoRollback?: boolean;
95
+ }): BlueGreenDeployment;
96
+ /**
97
+ * Execute blue/green deployment
98
+ */
99
+ executeDeployment(deploymentId: string, dryRun?: boolean): Promise<DeploymentResult>;
100
+ /**
101
+ * Rollback deployment
102
+ */
103
+ rollback(deploymentId: string): Promise<DeploymentResult>;
104
+ /**
105
+ * Run health checks
106
+ */
107
+ private runHealthChecks;
108
+ /**
109
+ * Record deployment result
110
+ */
111
+ private recordDeployment;
112
+ /**
113
+ * Get deployment
114
+ */
115
+ getDeployment(id: string): BlueGreenDeployment | undefined;
116
+ /**
117
+ * List deployments
118
+ */
119
+ listDeployments(): BlueGreenDeployment[];
120
+ /**
121
+ * Get deployment history
122
+ */
123
+ getDeploymentHistory(deploymentId: string): DeploymentResult[];
124
+ /**
125
+ * Generate CloudFormation for ALB target group switching
126
+ */
127
+ generateALBListenerCF(deployment: BlueGreenDeployment): any;
128
+ /**
129
+ * Generate CloudFormation for Route53 weighted routing
130
+ */
131
+ generateRoute53RecordSetCF(deployment: BlueGreenDeployment, recordName: string): any[];
132
+ /**
133
+ * Clear all data
134
+ */
135
+ clear(): void;
136
+ }
137
+ /**
138
+ * Global blue/green manager instance
139
+ */
140
+ export declare const blueGreenManager: BlueGreenManager;
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Canary Deployment Strategy
3
+ * Gradual rollout with automatic rollback based on metrics
4
+ */
5
+ export interface CanaryDeployment {
6
+ id: string;
7
+ name: string;
8
+ baselineVersion: DeploymentVersion;
9
+ canaryVersion: DeploymentVersion;
10
+ stages: CanaryStage[];
11
+ currentStage: number;
12
+ status: 'pending' | 'in_progress' | 'completed' | 'rolled_back' | 'failed';
13
+ metrics?: CanaryMetrics;
14
+ autoPromote?: boolean;
15
+ autoRollback?: boolean;
16
+ }
17
+ export interface DeploymentVersion {
18
+ version: string;
19
+ targetGroupArn?: string;
20
+ taskDefinitionArn?: string;
21
+ functionVersionArn?: string;
22
+ weight: number;
23
+ }
24
+ export interface CanaryStage {
25
+ name: string;
26
+ trafficPercentage: number;
27
+ durationMinutes: number;
28
+ alarmThresholds?: AlarmThresholds;
29
+ }
30
+ export interface AlarmThresholds {
31
+ errorRate?: number;
32
+ latencyP99?: number;
33
+ latencyP95?: number;
34
+ httpErrorRate?: number;
35
+ customMetrics?: CustomMetric[];
36
+ }
37
+ export interface CustomMetric {
38
+ name: string;
39
+ namespace: string;
40
+ threshold: number;
41
+ comparisonOperator: 'GreaterThanThreshold' | 'LessThanThreshold' | 'GreaterThanOrEqualToThreshold' | 'LessThanOrEqualToThreshold';
42
+ }
43
+ export interface CanaryMetrics {
44
+ baselineErrorRate: number;
45
+ canaryErrorRate: number;
46
+ baselineLatencyP99: number;
47
+ canaryLatencyP99: number;
48
+ baselineRequestCount: number;
49
+ canaryRequestCount: number;
50
+ }
51
+ export interface CanaryResult {
52
+ success: boolean;
53
+ deploymentId: string;
54
+ startTime: Date;
55
+ endTime?: Date;
56
+ completedStages: number;
57
+ rolledBack: boolean;
58
+ reason?: string;
59
+ metricsAtCompletion?: CanaryMetrics;
60
+ }
61
+ /**
62
+ * Canary deployment manager
63
+ */
64
+ export declare class CanaryManager {
65
+ private deployments;
66
+ private deploymentHistory;
67
+ private deploymentCounter;
68
+ private resultCounter;
69
+ /**
70
+ * Predefined canary strategies
71
+ */
72
+ static readonly Strategies: {
73
+ /**
74
+ * Conservative: 10% -> 25% -> 50% -> 100%
75
+ */
76
+ CONSERVATIVE: CanaryStage[];
77
+ /**
78
+ * Balanced: 20% -> 50% -> 100%
79
+ */
80
+ BALANCED: CanaryStage[];
81
+ /**
82
+ * Aggressive: 50% -> 100%
83
+ */
84
+ AGGRESSIVE: CanaryStage[];
85
+ /**
86
+ * Linear 10%: Incremental 10% steps
87
+ */
88
+ LINEAR_10: CanaryStage[];
89
+ };
90
+ /**
91
+ * Create canary deployment
92
+ */
93
+ createDeployment(deployment: Omit<CanaryDeployment, 'id'>): CanaryDeployment;
94
+ /**
95
+ * Create Lambda canary deployment
96
+ */
97
+ createLambdaCanaryDeployment(options: {
98
+ name: string;
99
+ baselineVersionArn: string;
100
+ canaryVersionArn: string;
101
+ strategy?: keyof typeof CanaryManager.Strategies;
102
+ autoPromote?: boolean;
103
+ errorRateThreshold?: number;
104
+ latencyThreshold?: number;
105
+ }): CanaryDeployment;
106
+ /**
107
+ * Create ECS canary deployment
108
+ */
109
+ createECSCanaryDeployment(options: {
110
+ name: string;
111
+ baselineTaskDefinitionArn: string;
112
+ canaryTaskDefinitionArn: string;
113
+ baselineTargetGroupArn: string;
114
+ canaryTargetGroupArn: string;
115
+ strategy?: keyof typeof CanaryManager.Strategies;
116
+ }): CanaryDeployment;
117
+ /**
118
+ * Execute canary deployment
119
+ */
120
+ executeDeployment(deploymentId: string, dryRun?: boolean): Promise<CanaryResult>;
121
+ /**
122
+ * Monitor canary stage
123
+ */
124
+ private monitorStage;
125
+ /**
126
+ * Rollback canary deployment
127
+ */
128
+ rollback(deploymentId: string, dryRun?: boolean): Promise<void>;
129
+ /**
130
+ * Promote canary to baseline
131
+ */
132
+ promoteCanary(deploymentId: string): void;
133
+ /**
134
+ * Record deployment result
135
+ */
136
+ private recordDeployment;
137
+ /**
138
+ * Get deployment
139
+ */
140
+ getDeployment(id: string): CanaryDeployment | undefined;
141
+ /**
142
+ * List deployments
143
+ */
144
+ listDeployments(): CanaryDeployment[];
145
+ /**
146
+ * Get deployment history
147
+ */
148
+ getDeploymentHistory(deploymentId: string): CanaryResult[];
149
+ /**
150
+ * Generate CloudFormation for Lambda canary
151
+ */
152
+ generateLambdaAliasCF(deployment: CanaryDeployment, aliasName: string): any;
153
+ /**
154
+ * Generate CloudFormation for ALB weighted target groups
155
+ */
156
+ generateALBListenerRuleCF(deployment: CanaryDeployment): any;
157
+ /**
158
+ * Clear all data
159
+ */
160
+ clear(): void;
161
+ }
162
+ /**
163
+ * Global canary manager instance
164
+ */
165
+ export declare const canaryManager: CanaryManager;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Advanced Deployment Strategies
3
+ * Blue/green, canary, and A/B testing implementations
4
+ */
5
+ export { BlueGreenManager, blueGreenManager, } from './blue-green';
6
+ export type { BlueGreenDeployment, Environment, RoutingConfig, HealthCheckConfig, DeploymentResult, } from './blue-green';
7
+ export { CanaryManager, canaryManager, } from './canary';
8
+ export type { CanaryDeployment, DeploymentVersion, CanaryStage, AlarmThresholds, CustomMetric, CanaryMetrics, CanaryResult, } from './canary';
9
+ export { ABTestManager, abTestManager, } from './ab-testing';
10
+ export type { ABTest, ABVariant, RoutingStrategy, ABMetrics, VariantMetrics, ABTestResult, } from './ab-testing';
11
+ export { ProgressiveDeploymentManager, progressiveDeploymentManager, } from './progressive';
12
+ export type { ProgressiveRollout, FeatureFlag, DeploymentGate, } from './progressive';