@stacksjs/ts-cloud-core 0.1.1

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 (251) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +321 -0
  3. package/package.json +31 -0
  4. package/src/advanced-features.test.ts +465 -0
  5. package/src/aws/cloudformation.ts +421 -0
  6. package/src/aws/cloudfront.ts +158 -0
  7. package/src/aws/credentials.test.ts +132 -0
  8. package/src/aws/credentials.ts +545 -0
  9. package/src/aws/index.ts +87 -0
  10. package/src/aws/s3.test.ts +188 -0
  11. package/src/aws/s3.ts +1088 -0
  12. package/src/aws/signature.test.ts +670 -0
  13. package/src/aws/signature.ts +1155 -0
  14. package/src/backup/disaster-recovery.test.ts +726 -0
  15. package/src/backup/disaster-recovery.ts +500 -0
  16. package/src/backup/index.ts +34 -0
  17. package/src/backup/manager.test.ts +498 -0
  18. package/src/backup/manager.ts +432 -0
  19. package/src/cicd/circleci.ts +430 -0
  20. package/src/cicd/github-actions.ts +424 -0
  21. package/src/cicd/gitlab-ci.ts +255 -0
  22. package/src/cicd/index.ts +8 -0
  23. package/src/cli/history.ts +396 -0
  24. package/src/cli/index.ts +10 -0
  25. package/src/cli/progress.ts +458 -0
  26. package/src/cli/repl.ts +454 -0
  27. package/src/cli/suggestions.ts +327 -0
  28. package/src/cli/table.test.ts +319 -0
  29. package/src/cli/table.ts +332 -0
  30. package/src/cloudformation/builder.test.ts +327 -0
  31. package/src/cloudformation/builder.ts +378 -0
  32. package/src/cloudformation/builders/api-gateway.ts +449 -0
  33. package/src/cloudformation/builders/cache.ts +334 -0
  34. package/src/cloudformation/builders/cdn.ts +278 -0
  35. package/src/cloudformation/builders/compute.ts +485 -0
  36. package/src/cloudformation/builders/database.ts +392 -0
  37. package/src/cloudformation/builders/functions.ts +343 -0
  38. package/src/cloudformation/builders/messaging.ts +140 -0
  39. package/src/cloudformation/builders/monitoring.ts +300 -0
  40. package/src/cloudformation/builders/network.ts +264 -0
  41. package/src/cloudformation/builders/queue.ts +147 -0
  42. package/src/cloudformation/builders/security.ts +399 -0
  43. package/src/cloudformation/builders/storage.ts +285 -0
  44. package/src/cloudformation/index.ts +30 -0
  45. package/src/cloudformation/types.ts +173 -0
  46. package/src/compliance/aws-config.ts +543 -0
  47. package/src/compliance/cloudtrail.ts +376 -0
  48. package/src/compliance/compliance.test.ts +423 -0
  49. package/src/compliance/guardduty.ts +446 -0
  50. package/src/compliance/index.ts +66 -0
  51. package/src/compliance/security-hub.ts +456 -0
  52. package/src/containers/build-optimization.ts +416 -0
  53. package/src/containers/containers.test.ts +508 -0
  54. package/src/containers/image-scanning.ts +360 -0
  55. package/src/containers/index.ts +9 -0
  56. package/src/containers/registry.ts +293 -0
  57. package/src/containers/service-mesh.ts +520 -0
  58. package/src/database/database.test.ts +762 -0
  59. package/src/database/index.ts +9 -0
  60. package/src/database/migrations.ts +444 -0
  61. package/src/database/performance.ts +528 -0
  62. package/src/database/replicas.ts +534 -0
  63. package/src/database/users.ts +494 -0
  64. package/src/dependency-graph.ts +143 -0
  65. package/src/deployment/ab-testing.ts +582 -0
  66. package/src/deployment/blue-green.ts +452 -0
  67. package/src/deployment/canary.ts +500 -0
  68. package/src/deployment/deployment.test.ts +526 -0
  69. package/src/deployment/index.ts +61 -0
  70. package/src/deployment/progressive.ts +62 -0
  71. package/src/dns/dns.test.ts +641 -0
  72. package/src/dns/dnssec.ts +315 -0
  73. package/src/dns/index.ts +8 -0
  74. package/src/dns/resolver.ts +496 -0
  75. package/src/dns/routing.ts +593 -0
  76. package/src/email/advanced/analytics.ts +445 -0
  77. package/src/email/advanced/index.ts +11 -0
  78. package/src/email/advanced/rules.ts +465 -0
  79. package/src/email/advanced/scheduling.ts +352 -0
  80. package/src/email/advanced/search.ts +412 -0
  81. package/src/email/advanced/shared-mailboxes.ts +404 -0
  82. package/src/email/advanced/templates.ts +455 -0
  83. package/src/email/advanced/threading.ts +281 -0
  84. package/src/email/analytics.ts +467 -0
  85. package/src/email/bounce-handling.ts +425 -0
  86. package/src/email/email.test.ts +431 -0
  87. package/src/email/handlers/__tests__/inbound.test.ts +38 -0
  88. package/src/email/handlers/__tests__/outbound.test.ts +37 -0
  89. package/src/email/handlers/converter.ts +227 -0
  90. package/src/email/handlers/feedback.ts +228 -0
  91. package/src/email/handlers/inbound.ts +169 -0
  92. package/src/email/handlers/outbound.ts +178 -0
  93. package/src/email/index.ts +15 -0
  94. package/src/email/reputation.ts +303 -0
  95. package/src/email/templates.ts +352 -0
  96. package/src/errors/index.test.ts +434 -0
  97. package/src/errors/index.ts +416 -0
  98. package/src/health-checks/index.ts +40 -0
  99. package/src/index.ts +360 -0
  100. package/src/intrinsic-functions.ts +118 -0
  101. package/src/lambda/concurrency.ts +330 -0
  102. package/src/lambda/destinations.ts +345 -0
  103. package/src/lambda/dlq.ts +425 -0
  104. package/src/lambda/index.ts +11 -0
  105. package/src/lambda/lambda.test.ts +840 -0
  106. package/src/lambda/layers.ts +263 -0
  107. package/src/lambda/versions.ts +376 -0
  108. package/src/lambda/vpc.ts +399 -0
  109. package/src/local/config.ts +114 -0
  110. package/src/local/index.ts +6 -0
  111. package/src/local/mock-aws.ts +351 -0
  112. package/src/modules/ai.ts +340 -0
  113. package/src/modules/api.ts +478 -0
  114. package/src/modules/auth.ts +805 -0
  115. package/src/modules/cache.ts +417 -0
  116. package/src/modules/cdn.ts +1062 -0
  117. package/src/modules/communication.ts +1094 -0
  118. package/src/modules/compute.ts +3348 -0
  119. package/src/modules/database.ts +554 -0
  120. package/src/modules/deployment.ts +1079 -0
  121. package/src/modules/dns.ts +337 -0
  122. package/src/modules/email.ts +1538 -0
  123. package/src/modules/filesystem.ts +515 -0
  124. package/src/modules/index.ts +32 -0
  125. package/src/modules/messaging.ts +486 -0
  126. package/src/modules/monitoring.ts +2086 -0
  127. package/src/modules/network.ts +664 -0
  128. package/src/modules/parameter-store.ts +325 -0
  129. package/src/modules/permissions.ts +1081 -0
  130. package/src/modules/phone.ts +494 -0
  131. package/src/modules/queue.ts +1260 -0
  132. package/src/modules/redirects.ts +464 -0
  133. package/src/modules/registry.ts +699 -0
  134. package/src/modules/search.ts +401 -0
  135. package/src/modules/secrets.ts +416 -0
  136. package/src/modules/security.ts +731 -0
  137. package/src/modules/sms.ts +389 -0
  138. package/src/modules/storage.ts +1120 -0
  139. package/src/modules/workflow.ts +680 -0
  140. package/src/multi-account/config.ts +521 -0
  141. package/src/multi-account/index.ts +7 -0
  142. package/src/multi-account/manager.ts +427 -0
  143. package/src/multi-region/cross-region.ts +410 -0
  144. package/src/multi-region/index.ts +8 -0
  145. package/src/multi-region/manager.ts +483 -0
  146. package/src/multi-region/regions.ts +435 -0
  147. package/src/network-security/index.ts +48 -0
  148. package/src/observability/index.ts +9 -0
  149. package/src/observability/logs.ts +522 -0
  150. package/src/observability/metrics.ts +460 -0
  151. package/src/observability/observability.test.ts +782 -0
  152. package/src/observability/synthetics.ts +568 -0
  153. package/src/observability/xray.ts +358 -0
  154. package/src/phone/advanced/analytics.ts +349 -0
  155. package/src/phone/advanced/callbacks.ts +428 -0
  156. package/src/phone/advanced/index.ts +8 -0
  157. package/src/phone/advanced/ivr-builder.ts +504 -0
  158. package/src/phone/advanced/recording.ts +310 -0
  159. package/src/phone/handlers/__tests__/incoming-call.test.ts +40 -0
  160. package/src/phone/handlers/incoming-call.ts +117 -0
  161. package/src/phone/handlers/missed-call.ts +116 -0
  162. package/src/phone/handlers/voicemail.ts +179 -0
  163. package/src/phone/index.ts +9 -0
  164. package/src/presets/api-backend.ts +134 -0
  165. package/src/presets/data-pipeline.ts +204 -0
  166. package/src/presets/extend.test.ts +295 -0
  167. package/src/presets/extend.ts +297 -0
  168. package/src/presets/fullstack-app.ts +144 -0
  169. package/src/presets/index.ts +27 -0
  170. package/src/presets/jamstack.ts +135 -0
  171. package/src/presets/microservices.ts +167 -0
  172. package/src/presets/ml-api.ts +208 -0
  173. package/src/presets/nodejs-server.ts +104 -0
  174. package/src/presets/nodejs-serverless.ts +114 -0
  175. package/src/presets/realtime-app.ts +184 -0
  176. package/src/presets/static-site.ts +64 -0
  177. package/src/presets/traditional-web-app.ts +339 -0
  178. package/src/presets/wordpress.ts +138 -0
  179. package/src/preview/github.test.ts +249 -0
  180. package/src/preview/github.ts +297 -0
  181. package/src/preview/index.ts +37 -0
  182. package/src/preview/manager.test.ts +440 -0
  183. package/src/preview/manager.ts +326 -0
  184. package/src/preview/notifications.test.ts +582 -0
  185. package/src/preview/notifications.ts +341 -0
  186. package/src/queue/batch-processing.ts +402 -0
  187. package/src/queue/dlq-monitoring.ts +402 -0
  188. package/src/queue/fifo.ts +342 -0
  189. package/src/queue/index.ts +9 -0
  190. package/src/queue/management.ts +428 -0
  191. package/src/queue/queue.test.ts +429 -0
  192. package/src/resource-mgmt/index.ts +39 -0
  193. package/src/resource-naming.ts +62 -0
  194. package/src/s3/index.ts +523 -0
  195. package/src/schema/cloud-config.schema.json +554 -0
  196. package/src/schema/index.ts +68 -0
  197. package/src/security/certificate-manager.ts +492 -0
  198. package/src/security/index.ts +9 -0
  199. package/src/security/scanning.ts +545 -0
  200. package/src/security/secrets-manager.ts +476 -0
  201. package/src/security/secrets-rotation.ts +456 -0
  202. package/src/security/security.test.ts +738 -0
  203. package/src/sms/advanced/ab-testing.ts +389 -0
  204. package/src/sms/advanced/analytics.ts +336 -0
  205. package/src/sms/advanced/campaigns.ts +523 -0
  206. package/src/sms/advanced/chatbot.ts +224 -0
  207. package/src/sms/advanced/index.ts +10 -0
  208. package/src/sms/advanced/link-tracking.ts +248 -0
  209. package/src/sms/advanced/mms.ts +308 -0
  210. package/src/sms/handlers/__tests__/send.test.ts +40 -0
  211. package/src/sms/handlers/delivery-status.ts +133 -0
  212. package/src/sms/handlers/receive.ts +162 -0
  213. package/src/sms/handlers/send.ts +174 -0
  214. package/src/sms/index.ts +9 -0
  215. package/src/stack-diff.ts +389 -0
  216. package/src/static-site/index.ts +85 -0
  217. package/src/template-builder.ts +110 -0
  218. package/src/template-validator.ts +574 -0
  219. package/src/utils/cache.ts +291 -0
  220. package/src/utils/diff.ts +269 -0
  221. package/src/utils/hash.ts +227 -0
  222. package/src/utils/index.ts +8 -0
  223. package/src/utils/parallel.ts +294 -0
  224. package/src/validators/credentials.test.ts +274 -0
  225. package/src/validators/credentials.ts +233 -0
  226. package/src/validators/quotas.test.ts +434 -0
  227. package/src/validators/quotas.ts +217 -0
  228. package/test/ai.test.ts +327 -0
  229. package/test/api.test.ts +511 -0
  230. package/test/auth.test.ts +632 -0
  231. package/test/cache.test.ts +406 -0
  232. package/test/cdn.test.ts +247 -0
  233. package/test/compute.test.ts +861 -0
  234. package/test/database.test.ts +523 -0
  235. package/test/deployment.test.ts +499 -0
  236. package/test/dns.test.ts +270 -0
  237. package/test/email.test.ts +439 -0
  238. package/test/filesystem.test.ts +382 -0
  239. package/test/integration.test.ts +350 -0
  240. package/test/messaging.test.ts +514 -0
  241. package/test/monitoring.test.ts +634 -0
  242. package/test/network.test.ts +425 -0
  243. package/test/permissions.test.ts +488 -0
  244. package/test/queue.test.ts +484 -0
  245. package/test/registry.test.ts +306 -0
  246. package/test/security.test.ts +462 -0
  247. package/test/storage.test.ts +463 -0
  248. package/test/template-validator.test.ts +559 -0
  249. package/test/workflow.test.ts +592 -0
  250. package/tsconfig.json +16 -0
  251. package/tsconfig.tsbuildinfo +1 -0
package/src/index.ts ADDED
@@ -0,0 +1,360 @@
1
+ /**
2
+ * ts-cloud Core - CloudFormation Generator Engine
3
+ */
4
+
5
+ // Core types
6
+ export * from '@stacksjs/ts-cloud-types'
7
+
8
+ // Legacy exports (Phase 1)
9
+ export * from './template-builder'
10
+ // template-validator exports ValidationResult and ValidationError (interface)
11
+ // We prefer ValidationError (class) from errors, so exclude it here
12
+ export {
13
+ validateTemplate,
14
+ validateTemplateSize,
15
+ validateResourceLimits,
16
+ // ValidationResult is also exported here - we'll keep it from template-validator
17
+ type ValidationResult,
18
+ } from './template-validator'
19
+ // intrinsic-functions exports Fn and Pseudo
20
+ // We prefer Fn from cloudformation/types, so only export Pseudo here
21
+ export { Pseudo } from './intrinsic-functions'
22
+ export * from './resource-naming'
23
+ export * from './dependency-graph'
24
+ export * from './stack-diff'
25
+ // modules re-exports many things including Cache (ElastiCache module)
26
+ // We prefer this Cache over utils/cache, so export all from modules
27
+ // But modules also exports: PolicyStatement, LifecycleRule, MetricTransformation
28
+ export * from './modules'
29
+
30
+ // CloudFormation builder (Phase 5)
31
+ export * from './cloudformation/builder'
32
+ // cloudformation/types exports Fn (which we prefer over intrinsic-functions)
33
+ export * from './cloudformation/types'
34
+
35
+ // Configuration presets (Phase 4)
36
+ export * from './presets/static-site'
37
+ export * from './presets/nodejs-server'
38
+ export * from './presets/nodejs-serverless'
39
+ export * from './presets/fullstack-app'
40
+ export * from './presets/api-backend'
41
+ export * from './presets/wordpress'
42
+ export * from './presets/jamstack'
43
+ export * from './presets/microservices'
44
+ export * from './presets/realtime-app'
45
+ export * from './presets/data-pipeline'
46
+ export * from './presets/ml-api'
47
+ export * from './presets/traditional-web-app'
48
+ export * from './presets/extend'
49
+
50
+ // AWS clients (Phase 5)
51
+ export * from './aws/signature'
52
+ export * from './aws/credentials'
53
+ export * from './aws/cloudformation'
54
+ export {
55
+ S3Client,
56
+ S3Error,
57
+ createS3Client,
58
+ type S3ClientOptions,
59
+ type GetObjectOptions,
60
+ type PutObjectOptions,
61
+ type ListObjectsOptions,
62
+ type ListObjectsResult,
63
+ type S3Object,
64
+ type HeadObjectResult,
65
+ type CopyObjectOptions,
66
+ type MultipartUploadOptions,
67
+ type MultipartProgress,
68
+ type PresignedUrlOptions as S3PresignedUrlOptions,
69
+ } from './aws/s3'
70
+ export * from './aws/cloudfront'
71
+
72
+ // Error handling (Phase 6)
73
+ // errors exports ValidationError (class) which we prefer
74
+ export * from './errors'
75
+
76
+ // Validators (Phase 6)
77
+ export * from './validators/credentials'
78
+ export * from './validators/quotas'
79
+
80
+ // Utilities (Phase 6)
81
+ // utils exports Cache (in-memory utility), but we prefer Cache from modules (ElastiCache)
82
+ // So we need to exclude Cache from utils
83
+ export {
84
+ FileCache,
85
+ TemplateCache,
86
+ templateCache,
87
+ type CacheOptions,
88
+ type CacheEntry,
89
+ } from './utils/cache'
90
+ export * from './utils/hash'
91
+ export * from './utils/parallel'
92
+ export * from './utils/diff'
93
+
94
+ // Schema (Phase 6.5)
95
+ export * from './schema'
96
+
97
+ // Local development (Phase 6.6)
98
+ export * from './local/config'
99
+ export * from './local/mock-aws'
100
+
101
+ // Preview environments (Phase 6.7)
102
+ export * from './preview'
103
+
104
+ // Advanced CLI utilities (Phase 6.8)
105
+ export * from './cli'
106
+
107
+ // Multi-region support (Phase 7.1)
108
+ export * from './multi-region'
109
+
110
+ // Multi-account support (Phase 7.2)
111
+ export * from './multi-account'
112
+
113
+ // CI/CD integration (Phase 7.3)
114
+ export * from './cicd'
115
+
116
+ // Backup & Disaster Recovery (Phase 7.4)
117
+ export * from './backup'
118
+
119
+ // Compliance & Governance (Phase 7.5)
120
+ export * from './compliance'
121
+
122
+ // Advanced Deployment Strategies (Phase 7.6)
123
+ // deployment exports: RoutingConfig, CustomMetric, ABTest from its submodules
124
+ // These conflict with lambda and observability, so we use explicit exports
125
+ export {
126
+ BlueGreenManager,
127
+ blueGreenManager,
128
+ type BlueGreenDeployment,
129
+ type Environment,
130
+ type RoutingConfig as DeploymentRoutingConfig,
131
+ type HealthCheckConfig,
132
+ type DeploymentResult,
133
+ } from './deployment/blue-green'
134
+ export {
135
+ CanaryManager,
136
+ canaryManager,
137
+ type CanaryDeployment,
138
+ type DeploymentVersion,
139
+ type CanaryStage,
140
+ type AlarmThresholds,
141
+ type CustomMetric as DeploymentCustomMetric,
142
+ type CanaryMetrics,
143
+ type CanaryResult,
144
+ } from './deployment/canary'
145
+ export {
146
+ ABTestManager,
147
+ abTestManager,
148
+ type ABTest as DeploymentABTest,
149
+ type ABVariant,
150
+ type RoutingStrategy,
151
+ type ABMetrics,
152
+ type VariantMetrics,
153
+ type ABTestResult,
154
+ } from './deployment/ab-testing'
155
+ export {
156
+ ProgressiveDeploymentManager,
157
+ progressiveDeploymentManager,
158
+ type ProgressiveRollout,
159
+ type FeatureFlag,
160
+ type DeploymentGate,
161
+ } from './deployment/progressive'
162
+
163
+ // Observability (Phase 7.7)
164
+ // observability exports CustomMetric from metrics.ts - we prefer this one
165
+ // observability/logs exports MetricTransformation which conflicts with modules/monitoring
166
+ // We'll use explicit exports to avoid the conflict
167
+ export * from './observability/xray'
168
+ export * from './observability/metrics'
169
+ // observability/logs exports MetricTransformation - we rename it
170
+ export {
171
+ LogsManager,
172
+ logsManager,
173
+ type LogGroup,
174
+ type LogStream,
175
+ type MetricFilter,
176
+ type MetricTransformation as LogMetricTransformation,
177
+ type SubscriptionFilter,
178
+ type LogQuery,
179
+ type LogInsightsQuery,
180
+ } from './observability/logs'
181
+ export {
182
+ SyntheticsManager,
183
+ syntheticsManager,
184
+ type SyntheticCanary,
185
+ type CanaryCode,
186
+ type CanarySchedule,
187
+ type CanaryRunConfig,
188
+ type VpcConfig as SyntheticsVpcConfig,
189
+ type CanaryAlarm,
190
+ type HeartbeatMonitor,
191
+ type ApiMonitor,
192
+ type ApiEndpoint,
193
+ type ApiAssertion,
194
+ type WorkflowStep,
195
+ type WorkflowAction,
196
+ } from './observability/synthetics'
197
+
198
+ // Database Advanced Features (Phase 7.8)
199
+ // database exports AutoScalingConfig from replicas.ts
200
+ // We'll rename it to avoid conflict with lambda/concurrency
201
+ export * from './database/migrations'
202
+ export {
203
+ ReplicaManager,
204
+ replicaManager,
205
+ type ReadReplica,
206
+ type ReplicationGroup,
207
+ type LoadBalancingStrategy,
208
+ type AutoScalingConfig as DatabaseAutoScalingConfig,
209
+ type RDSProxy,
210
+ type SessionPinningFilter,
211
+ type ProxyTarget,
212
+ type ConnectionPoolConfig,
213
+ } from './database/replicas'
214
+ export * from './database/performance'
215
+ export * from './database/users'
216
+
217
+ // Secrets & Security Advanced (Phase 7.9)
218
+ // security/secrets-manager exports PolicyStatement which conflicts with modules/permissions
219
+ // We prefer PolicyStatement from modules, so rename security's version
220
+ export * from './security/secrets-rotation'
221
+ export {
222
+ SecretsManager,
223
+ secretsManager,
224
+ type SecretVersion,
225
+ type SecretAudit,
226
+ type SecretAction,
227
+ type ExternalSecretManager,
228
+ type ExternalAuthConfig,
229
+ type SecretReplication,
230
+ type SecretPolicy,
231
+ type PolicyDocument,
232
+ type PolicyStatement as SecurityPolicyStatement,
233
+ } from './security/secrets-manager'
234
+ export * from './security/certificate-manager'
235
+ export * from './security/scanning'
236
+
237
+ // Container Advanced Features (Phase 7.10)
238
+ // containers/registry exports LifecyclePolicy, LifecycleRule, ReplicationRule
239
+ // These conflict with s3, so we rename them
240
+ export * from './containers/image-scanning'
241
+ export * from './containers/build-optimization'
242
+ export {
243
+ ContainerRegistryManager,
244
+ containerRegistryManager,
245
+ type ContainerRegistry,
246
+ type RegistryEncryption,
247
+ type ScanningConfig,
248
+ type ScanFilter,
249
+ type LifecyclePolicy as ContainerLifecyclePolicy,
250
+ type LifecycleRule as ContainerLifecycleRule,
251
+ type ReplicationConfig,
252
+ type ReplicationDestination,
253
+ type ReplicationRule as ContainerReplicationRule,
254
+ type RegistryCredentials,
255
+ } from './containers/registry'
256
+ // containers/service-mesh exports HealthCheck which conflicts with health-checks
257
+ // We rename it to MeshHealthCheck
258
+ export {
259
+ ServiceMeshManager,
260
+ serviceMeshManager,
261
+ type ServiceMesh,
262
+ type MeshService,
263
+ type VirtualNode,
264
+ type Listener,
265
+ type HealthCheck as MeshHealthCheck,
266
+ type Timeout,
267
+ type TLSConfig,
268
+ type Backend,
269
+ type ClientPolicy,
270
+ type ServiceDiscovery,
271
+ type VirtualRouter,
272
+ type RouterListener,
273
+ type Route,
274
+ type RouteMatch,
275
+ type HeaderMatch,
276
+ type RouteAction,
277
+ type WeightedTarget,
278
+ type RetryPolicy,
279
+ type VirtualGateway,
280
+ type GatewayListener,
281
+ } from './containers/service-mesh'
282
+
283
+ // Lambda Advanced Features (Phase 7.11)
284
+ // lambda exports AutoScalingConfig from concurrency.ts and RoutingConfig from versions.ts
285
+ // We'll keep the lambda versions as the primary ones
286
+ export * from './lambda/layers'
287
+ // lambda/versions exports RoutingConfig which conflicts with deployment
288
+ // We keep the lambda version as primary
289
+ export * from './lambda/versions'
290
+ export * from './lambda/concurrency'
291
+ export * from './lambda/destinations'
292
+ export * from './lambda/vpc'
293
+ export * from './lambda/dlq'
294
+
295
+ // DNS Advanced Features (Phase 7.12)
296
+ // dns/routing exports HealthCheck which conflicts with health-checks
297
+ // We rename it to DNSHealthCheck
298
+ export {
299
+ Route53RoutingManager,
300
+ route53RoutingManager,
301
+ type RoutingPolicy,
302
+ type WeightedRoutingPolicy,
303
+ type LatencyRoutingPolicy,
304
+ type FailoverRoutingPolicy,
305
+ type GeolocationRoutingPolicy,
306
+ type GeoproximityRoutingPolicy,
307
+ type HealthCheck as DNSHealthCheck,
308
+ type CalculatedHealthCheck,
309
+ type TrafficPolicy,
310
+ type TrafficPolicyDocument,
311
+ type TrafficPolicyEndpoint,
312
+ type TrafficPolicyRule,
313
+ } from './dns/routing'
314
+ export * from './dns/dnssec'
315
+ export * from './dns/resolver'
316
+
317
+ // Email Advanced Features (Phase 7.13)
318
+ export * from './email'
319
+
320
+ // Phone Advanced Features
321
+ export * from './phone'
322
+
323
+ // SMS Advanced Features
324
+ export * from './sms'
325
+
326
+ // Queue Advanced Features (Phase 7.14)
327
+ export * from './queue'
328
+
329
+ // Static Site Features (Phase 7.15)
330
+ export * from './static-site'
331
+
332
+ // S3 Advanced Features (Phase 7.16)
333
+ // s3 exports LifecyclePolicy, ReplicationRule which conflict with modules and containers
334
+ // We'll rename them with S3 prefix
335
+ export {
336
+ StorageAdvancedManager,
337
+ storageAdvancedManager,
338
+ type LifecyclePolicy as S3LifecyclePolicy,
339
+ type VersioningConfig,
340
+ type ReplicationRule as S3ReplicationRule,
341
+ type IntelligentTieringConfig,
342
+ type ObjectLockConfig,
343
+ type TransferAccelerationConfig,
344
+ type AccessPoint,
345
+ type GlacierArchiveConfig,
346
+ type InventoryConfig,
347
+ type BatchOperation,
348
+ type EventNotification,
349
+ } from './s3'
350
+
351
+ // Health Checks & Monitoring (Phase 7.17)
352
+ // health-checks exports HealthCheck which conflicts with containers
353
+ // We keep health-checks version as primary (it's more specific to health checks)
354
+ export * from './health-checks'
355
+
356
+ // Network Security (Phase 7.18)
357
+ export * from './network-security'
358
+
359
+ // Resource Management (Phase 7.20)
360
+ export * from './resource-mgmt'
@@ -0,0 +1,118 @@
1
+ /**
2
+ * CloudFormation Intrinsic Functions Helpers
3
+ */
4
+
5
+ export const Fn = {
6
+ /**
7
+ * Ref - Returns the value of the specified parameter or resource
8
+ */
9
+ Ref: (logicalName: string): { Ref: string } => ({ Ref: logicalName }),
10
+
11
+ /**
12
+ * GetAtt - Returns the value of an attribute from a resource
13
+ */
14
+ GetAtt: (logicalName: string, attributeName: string): { 'Fn::GetAtt': [string, string] } => ({
15
+ 'Fn::GetAtt': [logicalName, attributeName] as [string, string],
16
+ }),
17
+
18
+ /**
19
+ * Sub - Substitutes variables in an input string with values
20
+ */
21
+ Sub: (template: string, variables?: Record<string, any>): { 'Fn::Sub': string | [string, Record<string, any>] } => {
22
+ if (variables) {
23
+ return { 'Fn::Sub': [template, variables] as [string, Record<string, any>] }
24
+ }
25
+ return { 'Fn::Sub': template }
26
+ },
27
+
28
+ /**
29
+ * Join - Appends a set of values into a single value, separated by delimiter
30
+ */
31
+ Join: (delimiter: string, values: any[]): { 'Fn::Join': [string, any[]] } => ({
32
+ 'Fn::Join': [delimiter, values] as [string, any[]],
33
+ }),
34
+
35
+ /**
36
+ * Select - Returns a single object from a list of objects by index
37
+ */
38
+ Select: (index: number | string, list: any[]): { 'Fn::Select': [number | string, any[]] } => ({
39
+ 'Fn::Select': [index, list] as [number | string, any[]],
40
+ }),
41
+
42
+ /**
43
+ * Split - Splits a string into a list of string values
44
+ */
45
+ Split: (delimiter: string, source: string): { 'Fn::Split': [string, string] } => ({
46
+ 'Fn::Split': [delimiter, source] as [string, string],
47
+ }),
48
+
49
+ /**
50
+ * GetAZs - Returns an array of Availability Zones for a region
51
+ */
52
+ GetAZs: (region: string = ''): { 'Fn::GetAZs': string } => ({
53
+ 'Fn::GetAZs': region,
54
+ }),
55
+
56
+ /**
57
+ * ImportValue - Returns the value of an output exported by another stack
58
+ */
59
+ ImportValue: (name: string): { 'Fn::ImportValue': string } => ({
60
+ 'Fn::ImportValue': name,
61
+ }),
62
+
63
+ /**
64
+ * If - Returns one value if condition is true, another if false
65
+ */
66
+ If: (condition: string, trueValue: any, falseValue: any): { 'Fn::If': [string, any, any] } => ({
67
+ 'Fn::If': [condition, trueValue, falseValue] as [string, any, any],
68
+ }),
69
+
70
+ /**
71
+ * Equals - Compares if two values are equal
72
+ */
73
+ Equals: (value1: any, value2: any): { 'Fn::Equals': [any, any] } => ({
74
+ 'Fn::Equals': [value1, value2] as [any, any],
75
+ }),
76
+
77
+ /**
78
+ * And - Returns true if all conditions are true
79
+ */
80
+ And: (...conditions: any[]): { 'Fn::And': any[] } => ({
81
+ 'Fn::And': conditions,
82
+ }),
83
+
84
+ /**
85
+ * Or - Returns true if any condition is true
86
+ */
87
+ Or: (...conditions: any[]): { 'Fn::Or': any[] } => ({
88
+ 'Fn::Or': conditions,
89
+ }),
90
+
91
+ /**
92
+ * Not - Returns true if condition is false
93
+ */
94
+ Not: (condition: any): { 'Fn::Not': [any] } => ({
95
+ 'Fn::Not': [condition] as [any],
96
+ }),
97
+
98
+ /**
99
+ * Base64 - Returns the Base64 representation of the input string
100
+ */
101
+ Base64: (input: string): { 'Fn::Base64': string } => ({
102
+ 'Fn::Base64': input,
103
+ }),
104
+ } as const
105
+
106
+ /**
107
+ * Pseudo Parameters - AWS CloudFormation provides several built-in parameters
108
+ */
109
+ export const Pseudo = {
110
+ AccountId: { Ref: 'AWS::AccountId' } as const,
111
+ Region: { Ref: 'AWS::Region' } as const,
112
+ StackId: { Ref: 'AWS::StackId' } as const,
113
+ StackName: { Ref: 'AWS::StackName' } as const,
114
+ NotificationARNs: { Ref: 'AWS::NotificationARNs' } as const,
115
+ Partition: { Ref: 'AWS::Partition' } as const,
116
+ URLSuffix: { Ref: 'AWS::URLSuffix' } as const,
117
+ NoValue: { Ref: 'AWS::NoValue' } as const,
118
+ } as const