@stacksjs/ts-cloud 0.2.2 → 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 (76) hide show
  1. package/dist/aws/acm.d.ts +215 -0
  2. package/dist/aws/application-autoscaling.d.ts +345 -0
  3. package/dist/aws/bedrock.d.ts +2672 -0
  4. package/dist/aws/client.d.ts +181 -0
  5. package/dist/aws/cloudformation.d.ts +187 -0
  6. package/dist/aws/cloudfront.d.ts +416 -0
  7. package/dist/aws/cloudwatch-logs.d.ts +70 -0
  8. package/dist/aws/comprehend.d.ts +616 -0
  9. package/dist/aws/connect.d.ts +533 -0
  10. package/dist/aws/deploy-imap.d.ts +26 -0
  11. package/dist/aws/dynamodb.d.ts +270 -0
  12. package/dist/aws/ec2.d.ts +545 -0
  13. package/dist/aws/ecr.d.ts +240 -0
  14. package/dist/aws/ecs.d.ts +267 -0
  15. package/dist/aws/efs.d.ts +36 -0
  16. package/dist/aws/elasticache.d.ts +112 -0
  17. package/dist/aws/elbv2.d.ts +389 -0
  18. package/dist/aws/email.d.ts +260 -0
  19. package/dist/aws/eventbridge.d.ts +197 -0
  20. package/dist/aws/iam.d.ts +1013 -0
  21. package/dist/aws/imap-server.d.ts +298 -0
  22. package/dist/aws/index.d.ts +53 -0
  23. package/dist/aws/kendra.d.ts +831 -0
  24. package/dist/aws/lambda.d.ts +319 -0
  25. package/dist/aws/opensearch.d.ts +121 -0
  26. package/dist/aws/personalize.d.ts +586 -0
  27. package/dist/aws/polly.d.ts +243 -0
  28. package/dist/aws/rds.d.ts +346 -0
  29. package/dist/aws/rekognition.d.ts +691 -0
  30. package/dist/aws/route53-domains.d.ts +161 -0
  31. package/dist/aws/route53.d.ts +330 -0
  32. package/dist/aws/s3.d.ts +535 -0
  33. package/dist/aws/scheduler.d.ts +224 -0
  34. package/dist/aws/secrets-manager.d.ts +267 -0
  35. package/dist/aws/ses.d.ts +441 -0
  36. package/dist/aws/setup-phone.d.ts +1 -0
  37. package/dist/aws/setup-sms.d.ts +116 -0
  38. package/dist/aws/sms.d.ts +477 -0
  39. package/dist/aws/smtp-server.d.ts +108 -0
  40. package/dist/aws/sns.d.ts +224 -0
  41. package/dist/aws/sqs.d.ts +107 -0
  42. package/dist/aws/ssm.d.ts +311 -0
  43. package/dist/aws/sts.d.ts +21 -0
  44. package/dist/aws/support.d.ts +139 -0
  45. package/dist/aws/test-imap.d.ts +15 -0
  46. package/dist/aws/textract.d.ts +477 -0
  47. package/dist/aws/transcribe.d.ts +79 -0
  48. package/dist/aws/translate.d.ts +424 -0
  49. package/dist/aws/voice.d.ts +361 -0
  50. package/dist/bin/cli.js +4500 -809
  51. package/dist/config.d.ts +5 -0
  52. package/dist/deploy/index.d.ts +6 -0
  53. package/dist/deploy/static-site-external-dns.d.ts +70 -0
  54. package/dist/deploy/static-site.d.ts +110 -0
  55. package/dist/dns/cloudflare.d.ts +74 -0
  56. package/dist/dns/godaddy.d.ts +63 -0
  57. package/dist/dns/index.d.ts +67 -0
  58. package/dist/dns/porkbun.d.ts +43 -0
  59. package/dist/dns/route53-adapter.d.ts +67 -0
  60. package/dist/dns/types.d.ts +100 -0
  61. package/dist/dns/validator.d.ts +105 -0
  62. package/dist/generators/index.d.ts +4 -0
  63. package/dist/generators/infrastructure.d.ts +115 -0
  64. package/dist/index.d.ts +9 -165
  65. package/dist/index.js +24067 -6430
  66. package/dist/push/apns.d.ts +140 -0
  67. package/dist/push/fcm.d.ts +205 -0
  68. package/dist/push/index.d.ts +44 -0
  69. package/dist/security/pre-deploy-scanner.d.ts +97 -0
  70. package/dist/ssl/acme-client.d.ts +133 -0
  71. package/dist/ssl/index.d.ts +6 -0
  72. package/dist/ssl/letsencrypt.d.ts +96 -0
  73. package/dist/utils/cli.d.ts +121 -0
  74. package/dist/validation/index.d.ts +4 -0
  75. package/dist/validation/template.d.ts +27 -0
  76. package/package.json +6 -6
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Unified DNS Validator for ACM Certificates
3
+ * Works with any DNS provider (Route53, Porkbun, GoDaddy, etc.)
4
+ */
5
+ import type { DnsProvider, DnsProviderConfig } from './types';
6
+ export interface ValidationRecord {
7
+ domainName: string;
8
+ recordName: string;
9
+ recordType: string;
10
+ recordValue: string;
11
+ }
12
+ export interface CertificateValidationResult {
13
+ certificateArn: string;
14
+ validationRecords: ValidationRecord[];
15
+ isNew: boolean;
16
+ status: 'pending' | 'issued' | 'failed';
17
+ }
18
+ /**
19
+ * Unified DNS Validator
20
+ * Handles ACM certificate validation with any DNS provider
21
+ */
22
+ export declare class UnifiedDnsValidator {
23
+ private acm;
24
+ private dnsProvider;
25
+ constructor(dnsProvider: DnsProvider | DnsProviderConfig, acmRegion?: string);
26
+ /**
27
+ * Get the DNS provider being used
28
+ */
29
+ getProvider(): DnsProvider;
30
+ /**
31
+ * Request a certificate and create DNS validation records
32
+ */
33
+ requestAndValidate(params: {
34
+ domainName: string;
35
+ subjectAlternativeNames?: string[];
36
+ waitForValidation?: boolean;
37
+ maxWaitMinutes?: number;
38
+ }): Promise<CertificateValidationResult>;
39
+ /**
40
+ * Create validation records for an existing certificate
41
+ */
42
+ createValidationRecords(params: {
43
+ certificateArn: string;
44
+ domain: string;
45
+ }): Promise<{
46
+ success: boolean;
47
+ records: ValidationRecord[];
48
+ errors: string[];
49
+ }>;
50
+ /**
51
+ * Delete validation records (cleanup after certificate is issued)
52
+ */
53
+ deleteValidationRecords(params: {
54
+ certificateArn: string;
55
+ domain: string;
56
+ }): Promise<{
57
+ success: boolean;
58
+ errors: string[];
59
+ }>;
60
+ /**
61
+ * Find or create a certificate for a domain
62
+ */
63
+ findOrCreateCertificate(params: {
64
+ domainName: string;
65
+ subjectAlternativeNames?: string[];
66
+ waitForValidation?: boolean;
67
+ maxWaitMinutes?: number;
68
+ }): Promise<CertificateValidationResult>;
69
+ /**
70
+ * Request certificate with common SANs (www and wildcard)
71
+ */
72
+ requestCertificateWithCommonSans(params: {
73
+ domainName: string;
74
+ includeWww?: boolean;
75
+ includeWildcard?: boolean;
76
+ additionalSans?: string[];
77
+ waitForValidation?: boolean;
78
+ }): Promise<CertificateValidationResult>;
79
+ /**
80
+ * Wait for validation options to become available
81
+ */
82
+ private waitForValidationOptions;
83
+ /**
84
+ * Get the status of a certificate
85
+ */
86
+ getCertificateStatus(certificateArn: string): Promise<{
87
+ status: string;
88
+ domainValidations: Array<{
89
+ domain: string;
90
+ status: string;
91
+ }>;
92
+ }>;
93
+ }
94
+ /**
95
+ * Helper function to create a validator with Porkbun
96
+ */
97
+ export declare function createPorkbunValidator(apiKey: string, secretKey: string, acmRegion?: string): UnifiedDnsValidator;
98
+ /**
99
+ * Helper function to create a validator with GoDaddy
100
+ */
101
+ export declare function createGoDaddyValidator(apiKey: string, apiSecret: string, acmRegion?: string, environment?: 'production' | 'ote'): UnifiedDnsValidator;
102
+ /**
103
+ * Helper function to create a validator with Route53
104
+ */
105
+ export declare function createRoute53Validator(region?: string, hostedZoneId?: string, acmRegion?: string): UnifiedDnsValidator;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Infrastructure Generators
3
+ */
4
+ export * from './infrastructure';
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Infrastructure Generator
3
+ * Generates CloudFormation templates from cloud.config.ts using all Phase 2 modules
4
+ */
5
+ import type { CloudConfig } from '@ts-cloud/core';
6
+ import { TemplateBuilder } from '@ts-cloud/core';
7
+ export interface GenerationOptions {
8
+ config: CloudConfig;
9
+ environment: 'production' | 'staging' | 'development';
10
+ modules?: string[];
11
+ }
12
+ export declare class InfrastructureGenerator {
13
+ private builder;
14
+ private config;
15
+ private environment;
16
+ private mergedConfig;
17
+ private serverEipLogicalIds;
18
+ constructor(options: GenerationOptions);
19
+ /**
20
+ * Merge base config with environment-specific overrides
21
+ */
22
+ private mergeEnvironmentConfig;
23
+ /**
24
+ * Check if a resource should be deployed based on conditions
25
+ */
26
+ private shouldDeploy;
27
+ /**
28
+ * Generate complete infrastructure
29
+ * Auto-detects what to generate based on configuration
30
+ */
31
+ generate(): this;
32
+ /**
33
+ * Apply global tags to all resources
34
+ */
35
+ private applyGlobalTags;
36
+ /**
37
+ * Generate VPC/Network infrastructure required by ECS/Fargate
38
+ */
39
+ private generateNetworkInfrastructure;
40
+ /**
41
+ * Generate ECS/Fargate container infrastructure
42
+ * Creates ECS Cluster, Task Definition, Service, ALB, Security Groups, IAM roles, etc.
43
+ */
44
+ private generateContainerInfrastructure;
45
+ /**
46
+ * Generate serverless infrastructure (Lambda, ECS Fargate)
47
+ */
48
+ private generateServerless;
49
+ /**
50
+ * Generate server infrastructure (EC2)
51
+ * Creates a full stack per server: EC2 instance + security group + IAM role + instance profile + EIP
52
+ */
53
+ private generateServer;
54
+ /**
55
+ * Generate the new Forge-style EC2 app stack from `infrastructure.compute`.
56
+ *
57
+ * Creates:
58
+ * - A deploy staging S3 bucket (`<slug>-<env>-deploy`) with 7-day lifecycle.
59
+ * Holds release tarballs that the EC2 instance pulls during `cloud deploy`.
60
+ * - An EC2 instance + IAM role + security group + EIP via Compute.createServerModeStack().
61
+ * - User Data that bootstraps Bun, system packages, and a systemd `app.service` skeleton.
62
+ * - Tags on the EC2 instance (Project / Environment / Role / ManagedBy) so
63
+ * the deploy command can target by tag instead of instance ID.
64
+ *
65
+ * Triggered when `infrastructure.compute.start` is set (the signal that
66
+ * "this compute is hosting an app, not just an opaque server").
67
+ */
68
+ private generateComputeApp;
69
+ /**
70
+ * Generate jump box / bastion host infrastructure
71
+ */
72
+ private generateJumpBox;
73
+ /**
74
+ * Generate shared infrastructure (storage, database, etc.)
75
+ */
76
+ private generateSharedInfrastructure;
77
+ /**
78
+ * Generate Realtime (WebSocket) infrastructure
79
+ * Creates API Gateway WebSocket API, Lambda handlers, DynamoDB tables
80
+ */
81
+ private generateRealtimeResources;
82
+ /**
83
+ * Generate $connect Lambda handler code
84
+ */
85
+ private generateConnectHandlerCode;
86
+ /**
87
+ * Generate $disconnect Lambda handler code
88
+ */
89
+ private generateDisconnectHandlerCode;
90
+ /**
91
+ * Generate $default (message) Lambda handler code
92
+ */
93
+ private generateMessageHandlerCode;
94
+ /**
95
+ * Generate Realtime Server Mode infrastructure (ts-broadcasting)
96
+ * Creates ECS/EC2 resources for running the Bun WebSocket server
97
+ */
98
+ private generateRealtimeServerResources;
99
+ /**
100
+ * Generate broadcast.config.ts content for ts-broadcasting
101
+ */
102
+ generateBroadcastConfig(): string;
103
+ /**
104
+ * Generate YAML output
105
+ */
106
+ toYAML(): string;
107
+ /**
108
+ * Generate JSON output
109
+ */
110
+ toJSON(): string;
111
+ /**
112
+ * Get the template builder
113
+ */
114
+ getBuilder(): TemplateBuilder;
115
+ }
package/dist/index.d.ts CHANGED
@@ -1,169 +1,13 @@
1
- // Validation exports - types with prefixed names for conflicts with @ts-cloud/core
2
- export type {
3
- ValidationError as TemplateValidationError,
4
- ValidationResult as TemplateValidationResult,
5
- } from './validation';
6
- // Export AWS module - types with prefixed names where needed
7
- export type {
8
- AWSRequestOptions,
9
- AWSClientConfig,
10
- AWSError,
11
- AWSCredentials as AWSClientCredentials,
12
- StackParameter,
13
- StackTag,
14
- CreateStackOptions,
15
- UpdateStackOptions,
16
- DescribeStacksOptions,
17
- StackEvent,
18
- Stack,
19
- InvalidationOptions,
20
- Distribution,
21
- S3SyncOptions,
22
- S3CopyOptions,
23
- S3ListOptions,
24
- S3Object,
25
- CertificateDetail,
26
- Certificate as ELBv2Certificate,
27
- RekognitionS3Object,
28
- RekognitionBoundingBox,
29
- TextractS3Object,
30
- TextractBoundingBox,
31
- CountryCode,
32
- ContactType,
33
- ContactDetail,
34
- KendraCreateDataSourceCommandInput,
35
- KendraCreateDataSourceCommandOutput,
36
- KendraListDataSourcesCommandInput,
37
- KendraListDataSourcesCommandOutput,
38
- InvokeModelCommandInput,
39
- InvokeModelCommandOutput,
40
- InvokeModelWithResponseStreamCommandInput,
41
- InvokeModelWithResponseStreamCommandOutput,
42
- CreateModelCustomizationJobCommandInput,
43
- CreateModelCustomizationJobCommandOutput,
44
- GetModelCustomizationJobCommandInput,
45
- GetModelCustomizationJobCommandOutput,
46
- ListFoundationModelsCommandInput,
47
- ListFoundationModelsCommandOutput,
48
- AttributeValue as DynamoDBAttributeValue,
49
- KeySchemaElement,
50
- AttributeDefinition as DynamoDBAttributeDefinition,
51
- } from './aws';
52
- export type {
53
- StaticSiteConfig,
54
- DeployResult,
55
- UploadOptions,
56
- // External DNS types
57
- ExternalDnsStaticSiteConfig,
58
- ExternalDnsDeployResult,
59
- } from './deploy';
60
- export type {
61
- DnsProvider,
62
- DnsProviderConfig,
63
- DnsRecord,
64
- DnsRecordType,
65
- DnsRecordResult,
66
- CreateRecordResult,
67
- DeleteRecordResult,
68
- ListRecordsResult,
69
- } from './dns';
70
- // Re-export @ts-cloud/aws-types with explicit handling for duplicates
71
- // Note: @ts-cloud/core also exports CloudFormation* types, so we skip re-exporting them here
72
- // to avoid duplicates. Users can import directly from @ts-cloud/aws-types if needed.
73
- export type {
74
- // S3 types
75
- S3Bucket,
76
- S3BucketPolicy,
77
- // CloudFront types
78
- CloudFrontDistribution,
79
- CloudFrontOriginAccessControl,
80
- CloudFrontCacheBehavior,
81
- CloudFrontOrigin,
82
- } from '@ts-cloud/aws-types';
83
1
  export * from './config';
84
2
  export * from './generators';
85
- // Validation exports - functions
86
- export {
87
- validateTemplate,
88
- validateTemplateSize,
89
- validateResourceLimits,
90
- } from './validation';
91
- // Export AWS module - classes and functions
92
- export {
93
- AWSClient,
94
- CloudFormationClient,
95
- CloudFormationClient as AWSCloudFormationClient,
96
- CloudFrontClient,
97
- CloudFrontClient as AWSCloudFrontClient,
98
- EC2Client,
99
- S3Client,
100
- Route53Client,
101
- Route53DomainsClient,
102
- ACMClient,
103
- ACMDnsValidator,
104
- ECRClient,
105
- ECSClient,
106
- STSClient,
107
- SSMClient,
108
- SecretsManagerClient,
109
- SESClient,
110
- EmailClient,
111
- SNSClient,
112
- SQSClient,
113
- LambdaClient,
114
- CloudWatchLogsClient,
115
- ConnectClient,
116
- ELBv2Client,
117
- RDSClient,
118
- DynamoDBClient,
119
- OpenSearchClient,
120
- TranscribeClient,
121
- BedrockClient,
122
- BedrockRuntimeClient,
123
- ComprehendClient,
124
- RekognitionClient,
125
- TextractClient,
126
- PollyClient,
127
- TranslateClient,
128
- PersonalizeClient,
129
- KendraClient,
130
- EventBridgeClient,
131
- ElastiCacheClient,
132
- SchedulerClient,
133
- IAMClient,
134
- ApplicationAutoScalingClient,
135
- SmsClient,
136
- VoiceClient,
137
- SupportClient,
138
- EFSClient,
139
- } from './aws';
3
+ export { validateTemplate, validateTemplateSize, validateResourceLimits, } from './validation';
4
+ export type { ValidationError as TemplateValidationError, ValidationResult as TemplateValidationResult, } from './validation';
5
+ export { AWSClient, CloudFormationClient, CloudFormationClient as AWSCloudFormationClient, CloudFrontClient, CloudFrontClient as AWSCloudFrontClient, EC2Client, S3Client, Route53Client, Route53DomainsClient, ACMClient, ACMDnsValidator, ECRClient, ECSClient, STSClient, SSMClient, SecretsManagerClient, SESClient, EmailClient, SNSClient, SQSClient, LambdaClient, CloudWatchLogsClient, ConnectClient, ELBv2Client, RDSClient, DynamoDBClient, OpenSearchClient, TranscribeClient, BedrockClient, BedrockRuntimeClient, ComprehendClient, RekognitionClient, TextractClient, PollyClient, TranslateClient, PersonalizeClient, KendraClient, EventBridgeClient, ElastiCacheClient, SchedulerClient, IAMClient, ApplicationAutoScalingClient, SmsClient, VoiceClient, SupportClient, EFSClient, } from './aws';
6
+ export type { AWSRequestOptions, AWSClientConfig, AWSError, AWSCredentials as AWSClientCredentials, StackParameter, StackTag, CreateStackOptions, UpdateStackOptions, DescribeStacksOptions, StackEvent, Stack, InvalidationOptions, Distribution, S3SyncOptions, S3CopyOptions, S3ListOptions, S3Object, CertificateDetail, Certificate as ELBv2Certificate, RekognitionS3Object, RekognitionBoundingBox, TextractS3Object, TextractBoundingBox, CountryCode, ContactType, ContactDetail, KendraCreateDataSourceCommandInput, KendraCreateDataSourceCommandOutput, KendraListDataSourcesCommandInput, KendraListDataSourcesCommandOutput, InvokeModelCommandInput, InvokeModelCommandOutput, InvokeModelWithResponseStreamCommandInput, InvokeModelWithResponseStreamCommandOutput, CreateModelCustomizationJobCommandInput, CreateModelCustomizationJobCommandOutput, GetModelCustomizationJobCommandInput, GetModelCustomizationJobCommandOutput, ListFoundationModelsCommandInput, ListFoundationModelsCommandOutput, AttributeValue as DynamoDBAttributeValue, KeySchemaElement, AttributeDefinition as DynamoDBAttributeDefinition, } from './aws';
140
7
  export * from './ssl';
141
- // Export deployment modules
142
- export {
143
- deployStaticSite,
144
- deployStaticSiteFull,
145
- uploadStaticFiles,
146
- invalidateCache,
147
- deleteStaticSite,
148
- generateStaticSiteTemplate,
149
- // External DNS support
150
- deployStaticSiteWithExternalDns,
151
- deployStaticSiteWithExternalDnsFull,
152
- generateExternalDnsStaticSiteTemplate,
153
- } from './deploy';
154
- // Export DNS providers
155
- export {
156
- createDnsProvider,
157
- detectDnsProvider,
158
- DnsProviderFactory,
159
- dnsProviders,
160
- PorkbunProvider,
161
- GoDaddyProvider,
162
- Route53Provider,
163
- UnifiedDnsValidator,
164
- createPorkbunValidator,
165
- createGoDaddyValidator,
166
- createRoute53Validator,
167
- } from './dns';
168
- // Re-export core functionality (these take precedence for common types)
8
+ export { deployStaticSite, deployStaticSiteFull, uploadStaticFiles, invalidateCache, deleteStaticSite, generateStaticSiteTemplate, deployStaticSiteWithExternalDns, deployStaticSiteWithExternalDnsFull, generateExternalDnsStaticSiteTemplate, } from './deploy';
9
+ export type { StaticSiteConfig, DeployResult, UploadOptions, ExternalDnsStaticSiteConfig, ExternalDnsDeployResult, } from './deploy';
10
+ export { createDnsProvider, detectDnsProvider, DnsProviderFactory, dnsProviders, PorkbunProvider, GoDaddyProvider, Route53Provider, UnifiedDnsValidator, createPorkbunValidator, createGoDaddyValidator, createRoute53Validator, } from './dns';
11
+ export type { DnsProvider, DnsProviderConfig, DnsRecord, DnsRecordType, DnsRecordResult, CreateRecordResult, DeleteRecordResult, ListRecordsResult, } from './dns';
169
12
  export * from '@ts-cloud/core';
13
+ export type { S3Bucket, S3BucketPolicy, CloudFrontDistribution, CloudFrontOriginAccessControl, CloudFrontCacheBehavior, CloudFrontOrigin, } from '@ts-cloud/aws-types';