@stacksjs/ts-cloud-core 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/dist/advanced-features.test.d.ts +0 -0
  2. package/dist/aws/cloudformation.d.ts +69 -0
  3. package/dist/aws/cloudfront.d.ts +21 -0
  4. package/dist/aws/credentials.d.ts +66 -0
  5. package/dist/aws/credentials.test.d.ts +0 -0
  6. package/dist/aws/index.d.ts +73 -0
  7. package/dist/aws/s3.d.ts +130 -0
  8. package/dist/aws/s3.test.d.ts +0 -0
  9. package/dist/aws/signature.d.ts +101 -0
  10. package/dist/aws/signature.test.d.ts +0 -0
  11. package/dist/backup/disaster-recovery.d.ts +98 -0
  12. package/dist/backup/disaster-recovery.test.d.ts +0 -0
  13. package/dist/backup/index.d.ts +24 -0
  14. package/dist/backup/manager.d.ts +112 -0
  15. package/dist/backup/manager.test.d.ts +0 -0
  16. package/dist/cicd/circleci.d.ts +47 -0
  17. package/dist/cicd/github-actions.d.ts +55 -0
  18. package/dist/cicd/gitlab-ci.d.ts +46 -0
  19. package/dist/cicd/index.d.ts +3 -0
  20. package/dist/cli/history.d.ts +66 -0
  21. package/dist/cli/index.d.ts +5 -0
  22. package/dist/cli/progress.d.ts +97 -0
  23. package/dist/cli/repl.d.ts +76 -0
  24. package/dist/cli/suggestions.d.ts +67 -0
  25. package/dist/cli/table.d.ts +70 -0
  26. package/dist/cli/table.test.d.ts +0 -0
  27. package/dist/cloudformation/builder.d.ts +59 -0
  28. package/dist/cloudformation/builder.test.d.ts +0 -0
  29. package/dist/cloudformation/builders/api-gateway.d.ts +30 -0
  30. package/dist/cloudformation/builders/cache.d.ts +35 -0
  31. package/dist/cloudformation/builders/cdn.d.ts +34 -0
  32. package/dist/cloudformation/builders/compute.d.ts +66 -0
  33. package/dist/cloudformation/builders/database.d.ts +61 -0
  34. package/dist/cloudformation/builders/functions.d.ts +32 -0
  35. package/dist/cloudformation/builders/messaging.d.ts +17 -0
  36. package/dist/cloudformation/builders/monitoring.d.ts +36 -0
  37. package/dist/cloudformation/builders/network.d.ts +14 -0
  38. package/dist/cloudformation/builders/queue.d.ts +8 -0
  39. package/dist/cloudformation/builders/security.d.ts +31 -0
  40. package/dist/cloudformation/builders/storage.d.ts +8 -0
  41. package/dist/cloudformation/index.d.ts +24 -0
  42. package/dist/cloudformation/types.d.ts +132 -0
  43. package/dist/compliance/aws-config.d.ts +88 -0
  44. package/dist/compliance/cloudtrail.d.ts +96 -0
  45. package/dist/compliance/compliance.test.d.ts +0 -0
  46. package/dist/compliance/guardduty.d.ts +110 -0
  47. package/dist/compliance/index.d.ts +50 -0
  48. package/dist/compliance/security-hub.d.ts +110 -0
  49. package/dist/containers/build-optimization.d.ts +110 -0
  50. package/dist/containers/containers.test.d.ts +0 -0
  51. package/dist/containers/image-scanning.d.ts +96 -0
  52. package/dist/containers/index.d.ts +4 -0
  53. package/dist/containers/registry.d.ts +99 -0
  54. package/dist/containers/service-mesh.d.ts +206 -0
  55. package/dist/database/database.test.d.ts +0 -0
  56. package/dist/database/index.d.ts +4 -0
  57. package/dist/database/migrations.d.ts +102 -0
  58. package/dist/database/performance.d.ts +168 -0
  59. package/dist/database/replicas.d.ts +146 -0
  60. package/dist/database/users.d.ts +102 -0
  61. package/dist/dependency-graph.d.ts +19 -0
  62. package/dist/deployment/ab-testing.d.ts +114 -0
  63. package/dist/deployment/blue-green.d.ts +98 -0
  64. package/dist/deployment/canary.d.ts +103 -0
  65. package/dist/deployment/deployment.test.d.ts +0 -0
  66. package/dist/deployment/index.d.ts +45 -0
  67. package/dist/deployment/progressive.d.ts +34 -0
  68. package/dist/dns/dns.test.d.ts +0 -0
  69. package/dist/dns/dnssec.d.ts +75 -0
  70. package/dist/dns/index.d.ts +3 -0
  71. package/dist/dns/resolver.d.ts +150 -0
  72. package/dist/dns/routing.d.ts +217 -0
  73. package/dist/email/advanced/analytics.d.ts +78 -0
  74. package/dist/email/advanced/index.d.ts +7 -0
  75. package/dist/email/advanced/rules.d.ts +60 -0
  76. package/dist/email/advanced/scheduling.d.ts +63 -0
  77. package/dist/email/advanced/search.d.ts +76 -0
  78. package/dist/email/advanced/shared-mailboxes.d.ts +66 -0
  79. package/dist/email/advanced/templates.d.ts +39 -0
  80. package/dist/email/advanced/threading.d.ts +53 -0
  81. package/dist/email/analytics.d.ts +144 -0
  82. package/dist/email/bounce-handling.d.ts +120 -0
  83. package/dist/email/email.test.d.ts +0 -0
  84. package/dist/email/handlers/__tests__/inbound.test.d.ts +0 -0
  85. package/dist/email/handlers/__tests__/outbound.test.d.ts +0 -0
  86. package/dist/email/handlers/converter.d.ts +225 -0
  87. package/dist/email/handlers/feedback.d.ts +226 -0
  88. package/dist/email/handlers/inbound.d.ts +167 -0
  89. package/dist/email/handlers/outbound.d.ts +176 -0
  90. package/dist/email/index.d.ts +6 -0
  91. package/dist/email/reputation.d.ts +97 -0
  92. package/dist/email/templates.d.ts +82 -0
  93. package/dist/errors/index.d.ts +186 -0
  94. package/dist/errors/index.test.d.ts +0 -0
  95. package/dist/health-checks/index.d.ts +35 -0
  96. package/dist/index.d.ts +256 -0
  97. package/dist/index.js +63499 -0
  98. package/dist/intrinsic-functions.d.ts +37 -0
  99. package/dist/lambda/concurrency.d.ts +98 -0
  100. package/dist/lambda/destinations.d.ts +99 -0
  101. package/dist/lambda/dlq.d.ts +109 -0
  102. package/dist/lambda/index.d.ts +6 -0
  103. package/dist/lambda/lambda.test.d.ts +0 -0
  104. package/dist/lambda/layers.d.ts +81 -0
  105. package/dist/lambda/versions.d.ts +91 -0
  106. package/dist/lambda/vpc.d.ts +116 -0
  107. package/dist/local/config.d.ts +44 -0
  108. package/dist/local/index.d.ts +2 -0
  109. package/dist/local/mock-aws.d.ts +60 -0
  110. package/dist/modules/ai.d.ts +47 -0
  111. package/dist/modules/api.d.ts +98 -0
  112. package/dist/modules/auth.d.ts +165 -0
  113. package/dist/modules/cache.d.ts +73 -0
  114. package/dist/modules/cdn.d.ts +125 -0
  115. package/dist/modules/communication.d.ts +98 -0
  116. package/dist/modules/compute.d.ts +309 -0
  117. package/dist/modules/database.d.ts +105 -0
  118. package/dist/modules/deployment.d.ts +181 -0
  119. package/dist/modules/dns.d.ts +45 -0
  120. package/dist/modules/email.d.ts +217 -0
  121. package/dist/modules/filesystem.d.ts +94 -0
  122. package/dist/modules/index.d.ts +27 -0
  123. package/dist/modules/messaging.d.ts +108 -0
  124. package/dist/modules/monitoring.d.ts +127 -0
  125. package/dist/modules/network.d.ts +102 -0
  126. package/dist/modules/parameter-store.d.ts +33 -0
  127. package/dist/modules/permissions.d.ts +132 -0
  128. package/dist/modules/phone.d.ts +80 -0
  129. package/dist/modules/queue.d.ts +210 -0
  130. package/dist/modules/redirects.d.ts +59 -0
  131. package/dist/modules/registry.d.ts +73 -0
  132. package/dist/modules/search.d.ts +56 -0
  133. package/dist/modules/secrets.d.ts +80 -0
  134. package/dist/modules/security.d.ts +100 -0
  135. package/dist/modules/sms.d.ts +52 -0
  136. package/dist/modules/storage.d.ts +160 -0
  137. package/dist/modules/workflow.d.ts +205 -0
  138. package/dist/multi-account/config.d.ts +315 -0
  139. package/dist/multi-account/index.d.ts +2 -0
  140. package/dist/multi-account/manager.d.ts +100 -0
  141. package/dist/multi-region/cross-region.d.ts +114 -0
  142. package/dist/multi-region/index.d.ts +3 -0
  143. package/dist/multi-region/manager.d.ts +72 -0
  144. package/dist/multi-region/regions.d.ts +98 -0
  145. package/dist/network-security/index.d.ts +39 -0
  146. package/dist/observability/index.d.ts +4 -0
  147. package/dist/observability/logs.d.ts +129 -0
  148. package/dist/observability/metrics.d.ts +153 -0
  149. package/dist/observability/observability.test.d.ts +0 -0
  150. package/dist/observability/synthetics.d.ts +146 -0
  151. package/dist/observability/xray.d.ts +129 -0
  152. package/dist/phone/advanced/analytics.d.ts +66 -0
  153. package/dist/phone/advanced/callbacks.d.ts +50 -0
  154. package/dist/phone/advanced/index.d.ts +4 -0
  155. package/dist/phone/advanced/ivr-builder.d.ts +83 -0
  156. package/dist/phone/advanced/recording.d.ts +48 -0
  157. package/dist/phone/handlers/__tests__/incoming-call.test.d.ts +0 -0
  158. package/dist/phone/handlers/incoming-call.d.ts +115 -0
  159. package/dist/phone/handlers/missed-call.d.ts +114 -0
  160. package/dist/phone/handlers/voicemail.d.ts +177 -0
  161. package/dist/phone/index.d.ts +2 -0
  162. package/dist/presets/api-backend.d.ts +11 -0
  163. package/dist/presets/data-pipeline.d.ts +11 -0
  164. package/dist/presets/extend.d.ts +194 -0
  165. package/dist/presets/extend.test.d.ts +0 -0
  166. package/dist/presets/fullstack-app.d.ts +12 -0
  167. package/dist/presets/index.d.ts +24 -0
  168. package/dist/presets/jamstack.d.ts +12 -0
  169. package/dist/presets/microservices.d.ts +18 -0
  170. package/dist/presets/ml-api.d.ts +13 -0
  171. package/dist/presets/nodejs-server.d.ts +14 -0
  172. package/dist/presets/nodejs-serverless.d.ts +14 -0
  173. package/dist/presets/realtime-app.d.ts +11 -0
  174. package/dist/presets/static-site.d.ts +12 -0
  175. package/dist/presets/traditional-web-app.d.ts +16 -0
  176. package/dist/presets/wordpress.d.ts +12 -0
  177. package/dist/preview/github.d.ts +32 -0
  178. package/dist/preview/github.test.d.ts +0 -0
  179. package/dist/preview/index.d.ts +27 -0
  180. package/dist/preview/manager.d.ts +58 -0
  181. package/dist/preview/manager.test.d.ts +0 -0
  182. package/dist/preview/notifications.d.ts +55 -0
  183. package/dist/preview/notifications.test.d.ts +0 -0
  184. package/dist/queue/batch-processing.d.ts +87 -0
  185. package/dist/queue/dlq-monitoring.d.ts +95 -0
  186. package/dist/queue/fifo.d.ts +90 -0
  187. package/dist/queue/index.d.ts +4 -0
  188. package/dist/queue/management.d.ts +105 -0
  189. package/dist/queue/queue.test.d.ts +0 -0
  190. package/dist/resource-mgmt/index.d.ts +29 -0
  191. package/dist/resource-naming.d.ts +26 -0
  192. package/dist/s3/index.d.ts +173 -0
  193. package/dist/schema/index.d.ts +9 -0
  194. package/dist/security/certificate-manager.d.ts +121 -0
  195. package/dist/security/index.d.ts +4 -0
  196. package/dist/security/scanning.d.ts +147 -0
  197. package/dist/security/secrets-manager.d.ts +144 -0
  198. package/dist/security/secrets-rotation.d.ts +115 -0
  199. package/dist/security/security.test.d.ts +0 -0
  200. package/dist/sms/advanced/ab-testing.d.ts +54 -0
  201. package/dist/sms/advanced/analytics.d.ts +56 -0
  202. package/dist/sms/advanced/campaigns.d.ts +82 -0
  203. package/dist/sms/advanced/chatbot.d.ts +48 -0
  204. package/dist/sms/advanced/index.d.ts +6 -0
  205. package/dist/sms/advanced/link-tracking.d.ts +42 -0
  206. package/dist/sms/advanced/mms.d.ts +35 -0
  207. package/dist/sms/handlers/__tests__/send.test.d.ts +0 -0
  208. package/dist/sms/handlers/delivery-status.d.ts +131 -0
  209. package/dist/sms/handlers/receive.d.ts +160 -0
  210. package/dist/sms/handlers/send.d.ts +172 -0
  211. package/dist/sms/index.d.ts +2 -0
  212. package/dist/stack-diff.d.ts +34 -0
  213. package/dist/static-site/index.d.ts +49 -0
  214. package/dist/template-builder.d.ts +14 -0
  215. package/dist/template-validator.d.ts +24 -0
  216. package/dist/utils/cache.d.ts +55 -0
  217. package/dist/utils/diff.d.ts +48 -0
  218. package/dist/utils/hash.d.ts +58 -0
  219. package/dist/utils/index.d.ts +4 -0
  220. package/dist/utils/parallel.d.ts +60 -0
  221. package/dist/validators/credentials.d.ts +23 -0
  222. package/dist/validators/credentials.test.d.ts +0 -0
  223. package/dist/validators/quotas.d.ts +60 -0
  224. package/dist/validators/quotas.test.d.ts +0 -0
  225. package/package.json +4 -4
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Global replica manager instance
3
+ */
4
+ export declare const replicaManager: ReplicaManager;
5
+ /**
6
+ * Database Replicas & Connection Pooling
7
+ * Read replica management and RDS Proxy for connection pooling
8
+ */
9
+ export declare interface ReadReplica {
10
+ id: string
11
+ name: string
12
+ sourceDatabase: string
13
+ region: string
14
+ instanceClass: string
15
+ multiAZ?: boolean
16
+ autoMinorVersionUpgrade?: boolean
17
+ backupRetentionPeriod?: number
18
+ preferredBackupWindow?: string
19
+ preferredMaintenanceWindow?: string
20
+ replicationLag?: number
21
+ status?: 'creating' | 'available' | 'failing-over' | 'failed'
22
+ }
23
+ export declare interface ReplicationGroup {
24
+ id: string
25
+ name: string
26
+ primaryDatabase: string
27
+ replicas: ReadReplica[]
28
+ loadBalancing?: LoadBalancingStrategy
29
+ failoverEnabled?: boolean
30
+ autoScaling?: AutoScalingConfig
31
+ }
32
+ export declare interface LoadBalancingStrategy {
33
+ type: 'round-robin' | 'least-connections' | 'weighted' | 'latency-based'
34
+ weights?: Record<string, number>
35
+ }
36
+ export declare interface AutoScalingConfig {
37
+ enabled: boolean
38
+ minReplicas: number
39
+ maxReplicas: number
40
+ targetCPU?: number
41
+ targetConnections?: number
42
+ scaleUpCooldown?: number
43
+ scaleDownCooldown?: number
44
+ }
45
+ export declare interface RDSProxy {
46
+ id: string
47
+ name: string
48
+ engineFamily: 'MYSQL' | 'POSTGRESQL' | 'SQLSERVER'
49
+ targetDatabase: string
50
+ maxConnectionsPercent?: number
51
+ maxIdleConnectionsPercent?: number
52
+ connectionBorrowTimeout?: number
53
+ sessionPinningFilters?: SessionPinningFilter[]
54
+ requireTLS?: boolean
55
+ idleClientTimeout?: number
56
+ vpcSubnetIds: string[]
57
+ securityGroupIds: string[]
58
+ secretArn?: string
59
+ }
60
+ export declare interface ProxyTarget {
61
+ id: string
62
+ proxyId: string
63
+ targetArn: string
64
+ targetType: 'RDS_INSTANCE' | 'RDS_CLUSTER' | 'TRACKED_CLUSTER'
65
+ isWritable: boolean
66
+ weight?: number
67
+ }
68
+ export declare interface ConnectionPoolConfig {
69
+ minPoolSize: number
70
+ maxPoolSize: number
71
+ connectionTimeout: number
72
+ idleTimeout: number
73
+ maxLifetime?: number
74
+ statementTimeout?: number
75
+ }
76
+ export type SessionPinningFilter = | 'EXCLUDE_VARIABLE_SETS'
77
+ /**
78
+ * Replica manager
79
+ */
80
+ export declare class ReplicaManager {
81
+ private replicas: Map<string, ReadReplica>;
82
+ private replicationGroups: Map<string, ReplicationGroup>;
83
+ private proxies: Map<string, RDSProxy>;
84
+ private proxyTargets: Map<string, ProxyTarget>;
85
+ private replicaCounter: any;
86
+ private groupCounter: any;
87
+ private proxyCounter: any;
88
+ private targetCounter: any;
89
+ createReplica(replica: Omit<ReadReplica, 'id'>): ReadReplica;
90
+ createRDSReplica(options: {
91
+ sourceDatabase: string
92
+ name: string
93
+ region?: string
94
+ instanceClass?: string
95
+ multiAZ?: boolean
96
+ }): ReadReplica;
97
+ createCrossRegionReplica(options: {
98
+ sourceDatabase: string
99
+ name: string
100
+ targetRegion: string
101
+ instanceClass?: string
102
+ encrypted?: boolean
103
+ }): ReadReplica;
104
+ createReplicationGroup(group: Omit<ReplicationGroup, 'id'>): ReplicationGroup;
105
+ createAutoScalingReplicationGroup(options: {
106
+ name: string
107
+ primaryDatabase: string
108
+ minReplicas: number
109
+ maxReplicas: number
110
+ targetCPU?: number
111
+ loadBalancing?: LoadBalancingStrategy
112
+ }): ReplicationGroup;
113
+ addReplicaToGroup(groupId: string, replica: ReadReplica): void;
114
+ createProxy(proxy: Omit<RDSProxy, 'id'>): RDSProxy;
115
+ createConnectionPoolProxy(options: {
116
+ name: string
117
+ engineFamily: 'MYSQL' | 'POSTGRESQL' | 'SQLSERVER'
118
+ targetDatabase: string
119
+ vpcSubnetIds: string[]
120
+ securityGroupIds: string[]
121
+ secretArn: string
122
+ maxConnections?: number
123
+ }): RDSProxy;
124
+ createServerlessProxy(options: {
125
+ name: string
126
+ engineFamily: 'MYSQL' | 'POSTGRESQL' | 'SQLSERVER'
127
+ targetDatabase: string
128
+ vpcSubnetIds: string[]
129
+ securityGroupIds: string[]
130
+ secretArn: string
131
+ }): RDSProxy;
132
+ addProxyTarget(target: Omit<ProxyTarget, 'id'>): ProxyTarget;
133
+ promoteReplica(replicaId: string): { success: boolean; message: string };
134
+ getReplicationLag(replicaId: string): number;
135
+ getReplica(id: string): ReadReplica | undefined;
136
+ listReplicas(): ReadReplica[];
137
+ getReplicationGroup(id: string): ReplicationGroup | undefined;
138
+ listReplicationGroups(): ReplicationGroup[];
139
+ getProxy(id: string): RDSProxy | undefined;
140
+ listProxies(): RDSProxy[];
141
+ generateReplicaCF(replica: ReadReplica): any;
142
+ generateProxyCF(proxy: RDSProxy): any;
143
+ generateProxyTargetCF(target: ProxyTarget, proxy: RDSProxy): any;
144
+ generateProxyRoleCF(): any;
145
+ clear(): void;
146
+ }
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Global database user manager instance
3
+ */
4
+ export declare const databaseUserManager: DatabaseUserManager;
5
+ /**
6
+ * Database User Management
7
+ * User creation, permissions, and access control
8
+ */
9
+ export declare interface DatabaseUser {
10
+ id: string
11
+ username: string
12
+ database: string
13
+ privileges: DatabasePrivilege[]
14
+ passwordSecretArn?: string
15
+ createdAt: Date
16
+ lastRotated?: Date
17
+ rotationEnabled?: boolean
18
+ rotationDays?: number
19
+ }
20
+ export declare interface DatabasePrivilege {
21
+ database?: string
22
+ table?: string
23
+ privileges: PrivilegeType[]
24
+ }
25
+ export declare interface UserRole {
26
+ id: string
27
+ name: string
28
+ description?: string
29
+ privileges: DatabasePrivilege[]
30
+ users: string[]
31
+ }
32
+ export declare interface AccessAudit {
33
+ id: string
34
+ username: string
35
+ action: 'LOGIN' | 'QUERY' | 'MODIFY' | 'GRANT' | 'REVOKE'
36
+ database?: string
37
+ table?: string
38
+ query?: string
39
+ timestamp: Date
40
+ success: boolean
41
+ ipAddress?: string
42
+ }
43
+ export type PrivilegeType = | 'SELECT'
44
+ | 'INSERT'
45
+ | 'UPDATE'
46
+ | 'DELETE'
47
+ | 'CREATE'
48
+ | 'DROP'
49
+ | 'ALTER'
50
+ | 'INDEX'
51
+ | 'EXECUTE'
52
+ | 'ALL'
53
+ /**
54
+ * Database user manager
55
+ */
56
+ export declare class DatabaseUserManager {
57
+ private users: Map<string, DatabaseUser>;
58
+ private roles: Map<string, UserRole>;
59
+ private audits: Map<string, AccessAudit>;
60
+ private userCounter: any;
61
+ private roleCounter: any;
62
+ private auditCounter: any;
63
+ createUser(user: Omit<DatabaseUser, 'id' | 'createdAt'>): DatabaseUser;
64
+ createReadOnlyUser(options: {
65
+ username: string
66
+ database: string
67
+ passwordSecretArn?: string
68
+ tables?: string[]
69
+ }): DatabaseUser;
70
+ createReadWriteUser(options: {
71
+ username: string
72
+ database: string
73
+ passwordSecretArn?: string
74
+ tables?: string[]
75
+ }): DatabaseUser;
76
+ createAdminUser(options: {
77
+ username: string
78
+ database: string
79
+ passwordSecretArn?: string
80
+ }): DatabaseUser;
81
+ createApplicationUser(options: {
82
+ username: string
83
+ database: string
84
+ tables: { name: string; privileges: PrivilegeType[] }[]
85
+ passwordSecretArn?: string
86
+ }): DatabaseUser;
87
+ createRole(role: Omit<UserRole, 'id' | 'users'>): UserRole;
88
+ assignUserToRole(userId: string, roleId: string): void;
89
+ grantPrivileges(userId: string, privileges: DatabasePrivilege[]): { success: boolean; message: string };
90
+ revokePrivileges(userId: string, privileges: DatabasePrivilege[]): { success: boolean; message: string };
91
+ rotatePassword(userId: string): { success: boolean; newSecretArn?: string };
92
+ needsPasswordRotation(userId: string): boolean;
93
+ auditAccess(audit: Omit<AccessAudit, 'id' | 'timestamp'>): AccessAudit;
94
+ getUserAccessHistory(username: string, limit?: number): AccessAudit[];
95
+ getFailedLoginAttempts(username: string, hours?: number): AccessAudit[];
96
+ generateCreateUserSQL(user: DatabaseUser, engine?: 'postgres' | 'mysql'): string;
97
+ getUser(id: string): DatabaseUser | undefined;
98
+ listUsers(): DatabaseUser[];
99
+ getRole(id: string): UserRole | undefined;
100
+ listRoles(): UserRole[];
101
+ clear(): void;
102
+ }
@@ -0,0 +1,19 @@
1
+ import type { CloudFormationResource } from '@stacksjs/ts-cloud-aws-types';
2
+ export declare 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: Map<string, ResourceNode>;
13
+ addResource(logicalId: string, resource: CloudFormationResource): void;
14
+ private extractDependencies(resource: CloudFormationResource): Set<string>;
15
+ private findReferences(obj: any, dependencies: Set<string>): void;
16
+ topologicalSort(): string[];
17
+ validate(): void;
18
+ getDependents(logicalId: string): string[];
19
+ }
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Global A/B testing manager instance
3
+ */
4
+ export declare const abTestManager: ABTestManager;
5
+ /**
6
+ * A/B Testing Infrastructure
7
+ * Traffic splitting based on user attributes, headers, or cookies
8
+ */
9
+ export declare interface ABTest {
10
+ id: string
11
+ name: string
12
+ description?: string
13
+ variants: ABVariant[]
14
+ routingStrategy: RoutingStrategy
15
+ startTime: Date
16
+ endTime?: Date
17
+ status: 'draft' | 'active' | 'paused' | 'completed'
18
+ metrics?: ABMetrics
19
+ winner?: string
20
+ }
21
+ export declare interface ABVariant {
22
+ id: string
23
+ name: string
24
+ description?: string
25
+ trafficPercentage: number
26
+ targetGroupArn?: string
27
+ functionVersionArn?: string
28
+ originId?: string
29
+ weight: number
30
+ }
31
+ export declare interface RoutingStrategy {
32
+ type: 'random' | 'cookie' | 'header' | 'geo' | 'device' | 'user-attribute'
33
+ cookieName?: string
34
+ headerName?: string
35
+ attributeName?: string
36
+ stickySession?: boolean
37
+ sessionDuration?: number
38
+ }
39
+ export declare interface ABMetrics {
40
+ variants: Record<string, VariantMetrics>
41
+ totalRequests: number
42
+ startTime: Date
43
+ lastUpdated: Date
44
+ }
45
+ export declare interface VariantMetrics {
46
+ requests: number
47
+ conversions: number
48
+ conversionRate: number
49
+ averageLatency: number
50
+ errorRate: number
51
+ revenue?: number
52
+ customMetrics?: Record<string, number>
53
+ }
54
+ export declare interface ABTestResult {
55
+ testId: string
56
+ winningVariant: string
57
+ confidence: number
58
+ improvement: number
59
+ statisticalSignificance: boolean
60
+ metrics: ABMetrics
61
+ recommendation: string
62
+ }
63
+ /**
64
+ * A/B testing manager
65
+ */
66
+ export declare class ABTestManager {
67
+ private tests: Map<string, ABTest>;
68
+ private testCounter: any;
69
+ createTest(test: Omit<ABTest, 'id'>): ABTest;
70
+ createSimpleABTest(options: {
71
+ name: string
72
+ description?: string
73
+ controlTargetGroupArn: string
74
+ variantTargetGroupArn: string
75
+ variantTrafficPercentage?: number
76
+ stickySession?: boolean
77
+ }): ABTest;
78
+ createMultivariateTest(options: {
79
+ name: string
80
+ description?: string
81
+ variants: Array<{
82
+ name: string
83
+ description?: string
84
+ targetGroupArn: string
85
+ trafficPercentage: number
86
+ }>
87
+ routingStrategy?: RoutingStrategy
88
+ }): ABTest;
89
+ createHeaderBasedTest(options: {
90
+ name: string
91
+ controlTargetGroupArn: string
92
+ variantTargetGroupArn: string
93
+ headerName: string
94
+ headerValue: string
95
+ }): ABTest;
96
+ createGeoBasedTest(options: {
97
+ name: string
98
+ controlTargetGroupArn: string
99
+ variantTargetGroupArn: string
100
+ regions: string[] // For variant (e.g., ['US', 'CA'])
101
+ }): ABTest;
102
+ startTest(testId: string): void;
103
+ pauseTest(testId: string): void;
104
+ updateTrafficSplit(testId: string, variantId: string, newPercentage: number): void;
105
+ analyzeResults(testId: string): ABTestResult;
106
+ declareWinner(testId: string, variantId: string): void;
107
+ private collectMetrics(test: ABTest): ABMetrics;
108
+ private generateRecommendation(improvement: number, significant: boolean, winnerName: string): string;
109
+ getTest(id: string): ABTest | undefined;
110
+ listTests(): ABTest[];
111
+ generateALBListenerRuleCF(test: ABTest): any;
112
+ generateLambdaEdgeFunction(test: ABTest): string;
113
+ clear(): void;
114
+ }
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Global blue/green manager instance
3
+ */
4
+ export declare const blueGreenManager: BlueGreenManager;
5
+ /**
6
+ * Blue/Green Deployment Strategy
7
+ * Zero-downtime deployments with instant rollback capability
8
+ */
9
+ export declare interface BlueGreenDeployment {
10
+ id: string
11
+ name: string
12
+ blueEnvironment: Environment
13
+ greenEnvironment: Environment
14
+ activeEnvironment: 'blue' | 'green'
15
+ routingConfig: RoutingConfig
16
+ autoPromote?: boolean
17
+ autoRollback?: boolean
18
+ healthCheckConfig?: HealthCheckConfig
19
+ }
20
+ export declare interface Environment {
21
+ name: string
22
+ targetGroupArn: string
23
+ autoScalingGroupName?: string
24
+ taskDefinitionArn?: string
25
+ functionVersionArn?: string
26
+ instanceIds?: string[]
27
+ weight?: number
28
+ }
29
+ export declare interface RoutingConfig {
30
+ type: 'alb' | 'route53' | 'cloudfront' | 'api-gateway'
31
+ listenerArn?: string
32
+ hostedZoneId?: string
33
+ distributionId?: string
34
+ apiId?: string
35
+ switchoverTimeSeconds?: number
36
+ }
37
+ export declare interface HealthCheckConfig {
38
+ healthyThreshold: number
39
+ unhealthyThreshold: number
40
+ interval: number
41
+ timeout: number
42
+ path?: string
43
+ port?: number
44
+ }
45
+ export declare interface DeploymentResult {
46
+ success: boolean
47
+ deploymentId: string
48
+ startTime: Date
49
+ endTime?: Date
50
+ switchedAt?: Date
51
+ rolledBackAt?: Date
52
+ healthChecksPassed: boolean
53
+ errors?: string[]
54
+ }
55
+ /**
56
+ * Blue/Green deployment manager
57
+ */
58
+ export declare class BlueGreenManager {
59
+ private deployments: Map<string, BlueGreenDeployment>;
60
+ private deploymentHistory: Map<string, DeploymentResult[]>;
61
+ private deploymentCounter: any;
62
+ private resultCounter: any;
63
+ createDeployment(deployment: Omit<BlueGreenDeployment, 'id'>): BlueGreenDeployment;
64
+ createALBDeployment(options: {
65
+ name: string
66
+ listenerArn: string
67
+ blueTargetGroupArn: string
68
+ greenTargetGroupArn: string
69
+ autoPromote?: boolean
70
+ healthCheckConfig?: HealthCheckConfig
71
+ }): BlueGreenDeployment;
72
+ createRoute53Deployment(options: {
73
+ name: string
74
+ hostedZoneId: string
75
+ blueTargetGroupArn: string
76
+ greenTargetGroupArn: string
77
+ switchoverTimeSeconds?: number
78
+ }): BlueGreenDeployment;
79
+ createECSDeployment(options: {
80
+ name: string
81
+ listenerArn: string
82
+ blueTargetGroupArn: string
83
+ greenTargetGroupArn: string
84
+ blueTaskDefinitionArn: string
85
+ greenTaskDefinitionArn: string
86
+ autoRollback?: boolean
87
+ }): BlueGreenDeployment;
88
+ executeDeployment(deploymentId: string, dryRun?: boolean): Promise<DeploymentResult>;
89
+ rollback(deploymentId: string): Promise<DeploymentResult>;
90
+ private runHealthChecks(deployment: BlueGreenDeployment, environment: 'blue' | 'green', dryRun: boolean): Promise<boolean>;
91
+ private recordDeployment(deploymentId: string, result: DeploymentResult): void;
92
+ getDeployment(id: string): BlueGreenDeployment | undefined;
93
+ listDeployments(): BlueGreenDeployment[];
94
+ getDeploymentHistory(deploymentId: string): DeploymentResult[];
95
+ generateALBListenerCF(deployment: BlueGreenDeployment): any;
96
+ generateRoute53RecordSetCF(deployment: BlueGreenDeployment, recordName: string): any[];
97
+ clear(): void;
98
+ }
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Global canary manager instance
3
+ */
4
+ export declare const canaryManager: CanaryManager;
5
+ /**
6
+ * Canary Deployment Strategy
7
+ * Gradual rollout with automatic rollback based on metrics
8
+ */
9
+ export declare interface CanaryDeployment {
10
+ id: string
11
+ name: string
12
+ baselineVersion: DeploymentVersion
13
+ canaryVersion: DeploymentVersion
14
+ stages: CanaryStage[]
15
+ currentStage: number
16
+ status: 'pending' | 'in_progress' | 'completed' | 'rolled_back' | 'failed'
17
+ metrics?: CanaryMetrics
18
+ autoPromote?: boolean
19
+ autoRollback?: boolean
20
+ }
21
+ export declare interface DeploymentVersion {
22
+ version: string
23
+ targetGroupArn?: string
24
+ taskDefinitionArn?: string
25
+ functionVersionArn?: string
26
+ weight: number
27
+ }
28
+ export declare interface CanaryStage {
29
+ name: string
30
+ trafficPercentage: number
31
+ durationMinutes: number
32
+ alarmThresholds?: AlarmThresholds
33
+ }
34
+ export declare interface AlarmThresholds {
35
+ errorRate?: number
36
+ latencyP99?: number
37
+ latencyP95?: number
38
+ httpErrorRate?: number
39
+ customMetrics?: CustomMetric[]
40
+ }
41
+ export declare interface CustomMetric {
42
+ name: string
43
+ namespace: string
44
+ threshold: number
45
+ comparisonOperator: 'GreaterThanThreshold' | 'LessThanThreshold' | 'GreaterThanOrEqualToThreshold' | 'LessThanOrEqualToThreshold'
46
+ }
47
+ export declare interface CanaryMetrics {
48
+ baselineErrorRate: number
49
+ canaryErrorRate: number
50
+ baselineLatencyP99: number
51
+ canaryLatencyP99: number
52
+ baselineRequestCount: number
53
+ canaryRequestCount: number
54
+ }
55
+ export declare interface CanaryResult {
56
+ success: boolean
57
+ deploymentId: string
58
+ startTime: Date
59
+ endTime?: Date
60
+ completedStages: number
61
+ rolledBack: boolean
62
+ reason?: string
63
+ metricsAtCompletion?: CanaryMetrics
64
+ }
65
+ /**
66
+ * Canary deployment manager
67
+ */
68
+ export declare class CanaryManager {
69
+ private deployments: Map<string, CanaryDeployment>;
70
+ private deploymentHistory: Map<string, CanaryResult[]>;
71
+ private deploymentCounter: any;
72
+ private resultCounter: any;
73
+ static readonly Strategies: any;
74
+ createDeployment(deployment: Omit<CanaryDeployment, 'id'>): CanaryDeployment;
75
+ createLambdaCanaryDeployment(options: {
76
+ name: string
77
+ baselineVersionArn: string
78
+ canaryVersionArn: string
79
+ strategy?: keyof typeof CanaryManager.Strategies
80
+ autoPromote?: boolean
81
+ errorRateThreshold?: number
82
+ latencyThreshold?: number
83
+ }): CanaryDeployment;
84
+ createECSCanaryDeployment(options: {
85
+ name: string
86
+ baselineTaskDefinitionArn: string
87
+ canaryTaskDefinitionArn: string
88
+ baselineTargetGroupArn: string
89
+ canaryTargetGroupArn: string
90
+ strategy?: keyof typeof CanaryManager.Strategies
91
+ }): CanaryDeployment;
92
+ executeDeployment(deploymentId: string, dryRun?: boolean): Promise<CanaryResult>;
93
+ private monitorStage(deployment: CanaryDeployment, stage: CanaryStage, dryRun: boolean): Promise<boolean>;
94
+ rollback(deploymentId: string, dryRun?: boolean): Promise<void>;
95
+ promoteCanary(deploymentId: string): void;
96
+ private recordDeployment(deploymentId: string, result: CanaryResult): void;
97
+ getDeployment(id: string): CanaryDeployment | undefined;
98
+ listDeployments(): CanaryDeployment[];
99
+ getDeploymentHistory(deploymentId: string): CanaryResult[];
100
+ generateLambdaAliasCF(deployment: CanaryDeployment, aliasName: string): any;
101
+ generateALBListenerRuleCF(deployment: CanaryDeployment): any;
102
+ clear(): void;
103
+ }
File without changes
@@ -0,0 +1,45 @@
1
+ export type {
2
+ BlueGreenDeployment,
3
+ Environment,
4
+ RoutingConfig,
5
+ HealthCheckConfig,
6
+ DeploymentResult,
7
+ } from './blue-green';
8
+ export type {
9
+ CanaryDeployment,
10
+ DeploymentVersion,
11
+ CanaryStage,
12
+ AlarmThresholds,
13
+ CustomMetric,
14
+ CanaryMetrics,
15
+ CanaryResult,
16
+ } from './canary';
17
+ export type {
18
+ ABTest,
19
+ ABVariant,
20
+ RoutingStrategy,
21
+ ABMetrics,
22
+ VariantMetrics,
23
+ ABTestResult,
24
+ } from './ab-testing';
25
+ export type {
26
+ ProgressiveRollout,
27
+ FeatureFlag,
28
+ DeploymentGate,
29
+ } from './progressive';
30
+ export {
31
+ BlueGreenManager,
32
+ blueGreenManager,
33
+ } from './blue-green';
34
+ export {
35
+ CanaryManager,
36
+ canaryManager,
37
+ } from './canary';
38
+ export {
39
+ ABTestManager,
40
+ abTestManager,
41
+ } from './ab-testing';
42
+ export {
43
+ ProgressiveDeploymentManager,
44
+ progressiveDeploymentManager,
45
+ } from './progressive';
@@ -0,0 +1,34 @@
1
+ export declare const progressiveDeploymentManager: ProgressiveDeploymentManager;
2
+ /**
3
+ * Progressive Rollouts, Feature Flags, and Deployment Gates
4
+ */
5
+ export declare interface ProgressiveRollout {
6
+ id: string
7
+ name: string
8
+ stages: Array<{ percentage: number; durationMinutes: number }>
9
+ currentStage: number
10
+ }
11
+ export declare interface FeatureFlag {
12
+ id: string
13
+ name: string
14
+ enabled: boolean
15
+ rolloutPercentage: number
16
+ targetingRules: Array<{ attribute: string; operator: string; value: any }>
17
+ }
18
+ export declare interface DeploymentGate {
19
+ id: string
20
+ name: string
21
+ type: 'manual' | 'automated'
22
+ approvers?: string[]
23
+ conditions?: Array<{ metric: string; threshold: number }>
24
+ }
25
+ export declare class ProgressiveDeploymentManager {
26
+ private rollouts: any;
27
+ private flags: any;
28
+ private gates: any;
29
+ private counter: any;
30
+ createProgressiveRollout(name: string, stages: Array<{ percentage: number; durationMinutes: number }>): ProgressiveRollout;
31
+ createFeatureFlag(name: string, rolloutPercentage?: any): FeatureFlag;
32
+ createDeploymentGate(name: string, type: 'manual' | 'automated', approvers?: string[], conditions?: Array<{ metric: string; threshold: number }>): DeploymentGate;
33
+ clear(): void;
34
+ }
File without changes