@stacksjs/ts-cloud 0.1.9 → 0.1.14

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 (150) hide show
  1. package/README.md +39 -377
  2. package/dist/bin/cli.js +1047 -424
  3. package/dist/index.d.ts +36 -3
  4. package/dist/index.js +76430 -7096
  5. package/package.json +7 -8
  6. package/dist/aws/acm.d.ts +0 -129
  7. package/dist/aws/application-autoscaling.d.ts +0 -282
  8. package/dist/aws/bedrock.d.ts +0 -2292
  9. package/dist/aws/client.d.ts +0 -79
  10. package/dist/aws/cloudformation.d.ts +0 -105
  11. package/dist/aws/cloudfront.d.ts +0 -265
  12. package/dist/aws/cloudwatch-logs.d.ts +0 -48
  13. package/dist/aws/comprehend.d.ts +0 -505
  14. package/dist/aws/connect.d.ts +0 -377
  15. package/dist/aws/deploy-imap.d.ts +0 -14
  16. package/dist/aws/dynamodb.d.ts +0 -176
  17. package/dist/aws/ec2.d.ts +0 -272
  18. package/dist/aws/ecr.d.ts +0 -149
  19. package/dist/aws/ecs.d.ts +0 -162
  20. package/dist/aws/elasticache.d.ts +0 -71
  21. package/dist/aws/elbv2.d.ts +0 -248
  22. package/dist/aws/email.d.ts +0 -175
  23. package/dist/aws/eventbridge.d.ts +0 -142
  24. package/dist/aws/iam.d.ts +0 -638
  25. package/dist/aws/imap-server.d.ts +0 -119
  26. package/dist/aws/index.d.ts +0 -192
  27. package/dist/aws/kendra.d.ts +0 -782
  28. package/dist/aws/lambda.d.ts +0 -232
  29. package/dist/aws/opensearch.d.ts +0 -87
  30. package/dist/aws/personalize.d.ts +0 -516
  31. package/dist/aws/polly.d.ts +0 -214
  32. package/dist/aws/rds.d.ts +0 -240
  33. package/dist/aws/rekognition.d.ts +0 -543
  34. package/dist/aws/route53-domains.d.ts +0 -113
  35. package/dist/aws/route53.d.ts +0 -215
  36. package/dist/aws/s3.d.ts +0 -212
  37. package/dist/aws/scheduler.d.ts +0 -140
  38. package/dist/aws/secrets-manager.d.ts +0 -170
  39. package/dist/aws/ses.d.ts +0 -288
  40. package/dist/aws/setup-phone.d.ts +0 -0
  41. package/dist/aws/setup-sms.d.ts +0 -115
  42. package/dist/aws/sms.d.ts +0 -304
  43. package/dist/aws/smtp-server.d.ts +0 -61
  44. package/dist/aws/sns.d.ts +0 -117
  45. package/dist/aws/sqs.d.ts +0 -65
  46. package/dist/aws/ssm.d.ts +0 -179
  47. package/dist/aws/sts.d.ts +0 -15
  48. package/dist/aws/support.d.ts +0 -104
  49. package/dist/aws/test-imap.d.ts +0 -0
  50. package/dist/aws/textract.d.ts +0 -403
  51. package/dist/aws/transcribe.d.ts +0 -60
  52. package/dist/aws/translate.d.ts +0 -358
  53. package/dist/aws/voice.d.ts +0 -219
  54. package/dist/config.d.ts +0 -7
  55. package/dist/deploy/index.d.ts +0 -2
  56. package/dist/deploy/static-site-external-dns.d.ts +0 -51
  57. package/dist/deploy/static-site.d.ts +0 -71
  58. package/dist/dns/cloudflare.d.ts +0 -52
  59. package/dist/dns/godaddy.d.ts +0 -38
  60. package/dist/dns/index.d.ts +0 -45
  61. package/dist/dns/porkbun.d.ts +0 -18
  62. package/dist/dns/route53-adapter.d.ts +0 -38
  63. package/dist/dns/types.d.ts +0 -77
  64. package/dist/dns/validator.d.ts +0 -78
  65. package/dist/generators/index.d.ts +0 -1
  66. package/dist/generators/infrastructure.d.ts +0 -30
  67. package/dist/push/apns.d.ts +0 -60
  68. package/dist/push/fcm.d.ts +0 -117
  69. package/dist/push/index.d.ts +0 -14
  70. package/dist/security/pre-deploy-scanner.d.ts +0 -69
  71. package/dist/ssl/acme-client.d.ts +0 -67
  72. package/dist/ssl/index.d.ts +0 -2
  73. package/dist/ssl/letsencrypt.d.ts +0 -48
  74. package/dist/types.d.ts +0 -1
  75. package/dist/utils/cli.d.ts +0 -123
  76. package/dist/validation/index.d.ts +0 -1
  77. package/dist/validation/template.d.ts +0 -23
  78. package/src/aws/acm.ts +0 -768
  79. package/src/aws/application-autoscaling.ts +0 -845
  80. package/src/aws/bedrock.ts +0 -4074
  81. package/src/aws/client.ts +0 -891
  82. package/src/aws/cloudformation.ts +0 -896
  83. package/src/aws/cloudfront.ts +0 -1531
  84. package/src/aws/cloudwatch-logs.ts +0 -154
  85. package/src/aws/comprehend.ts +0 -839
  86. package/src/aws/connect.ts +0 -1056
  87. package/src/aws/deploy-imap.ts +0 -384
  88. package/src/aws/dynamodb.ts +0 -340
  89. package/src/aws/ec2.ts +0 -1385
  90. package/src/aws/ecr.ts +0 -621
  91. package/src/aws/ecs.ts +0 -615
  92. package/src/aws/elasticache.ts +0 -301
  93. package/src/aws/elbv2.ts +0 -942
  94. package/src/aws/email.ts +0 -928
  95. package/src/aws/eventbridge.ts +0 -248
  96. package/src/aws/iam.ts +0 -1689
  97. package/src/aws/imap-server.ts +0 -2100
  98. package/src/aws/index.ts +0 -213
  99. package/src/aws/kendra.ts +0 -1097
  100. package/src/aws/lambda.ts +0 -786
  101. package/src/aws/opensearch.ts +0 -158
  102. package/src/aws/personalize.ts +0 -977
  103. package/src/aws/polly.ts +0 -559
  104. package/src/aws/rds.ts +0 -888
  105. package/src/aws/rekognition.ts +0 -846
  106. package/src/aws/route53-domains.ts +0 -359
  107. package/src/aws/route53.ts +0 -1046
  108. package/src/aws/s3.ts +0 -2334
  109. package/src/aws/scheduler.ts +0 -571
  110. package/src/aws/secrets-manager.ts +0 -769
  111. package/src/aws/ses.ts +0 -1081
  112. package/src/aws/setup-phone.ts +0 -104
  113. package/src/aws/setup-sms.ts +0 -580
  114. package/src/aws/sms.ts +0 -1735
  115. package/src/aws/smtp-server.ts +0 -531
  116. package/src/aws/sns.ts +0 -758
  117. package/src/aws/sqs.ts +0 -382
  118. package/src/aws/ssm.ts +0 -807
  119. package/src/aws/sts.ts +0 -92
  120. package/src/aws/support.ts +0 -391
  121. package/src/aws/test-imap.ts +0 -86
  122. package/src/aws/textract.ts +0 -780
  123. package/src/aws/transcribe.ts +0 -108
  124. package/src/aws/translate.ts +0 -641
  125. package/src/aws/voice.ts +0 -1379
  126. package/src/config.ts +0 -35
  127. package/src/deploy/index.ts +0 -7
  128. package/src/deploy/static-site-external-dns.ts +0 -945
  129. package/src/deploy/static-site.ts +0 -1175
  130. package/src/dns/cloudflare.ts +0 -548
  131. package/src/dns/godaddy.ts +0 -412
  132. package/src/dns/index.ts +0 -205
  133. package/src/dns/porkbun.ts +0 -362
  134. package/src/dns/route53-adapter.ts +0 -414
  135. package/src/dns/types.ts +0 -119
  136. package/src/dns/validator.ts +0 -369
  137. package/src/generators/index.ts +0 -5
  138. package/src/generators/infrastructure.ts +0 -1660
  139. package/src/index.ts +0 -163
  140. package/src/push/apns.ts +0 -452
  141. package/src/push/fcm.ts +0 -506
  142. package/src/push/index.ts +0 -58
  143. package/src/security/pre-deploy-scanner.ts +0 -655
  144. package/src/ssl/acme-client.ts +0 -478
  145. package/src/ssl/index.ts +0 -7
  146. package/src/ssl/letsencrypt.ts +0 -747
  147. package/src/types.ts +0 -2
  148. package/src/utils/cli.ts +0 -398
  149. package/src/validation/index.ts +0 -5
  150. package/src/validation/template.ts +0 -405
@@ -1,340 +0,0 @@
1
- /**
2
- * AWS DynamoDB Client
3
- * Direct API calls for DynamoDB operations
4
- */
5
-
6
- import { AWSClient } from './client'
7
-
8
- export interface AttributeValue {
9
- S?: string
10
- N?: string
11
- B?: string
12
- SS?: string[]
13
- NS?: string[]
14
- BS?: string[]
15
- M?: Record<string, AttributeValue>
16
- L?: AttributeValue[]
17
- NULL?: boolean
18
- BOOL?: boolean
19
- }
20
-
21
- export interface KeySchemaElement {
22
- AttributeName: string
23
- KeyType: 'HASH' | 'RANGE'
24
- }
25
-
26
- export interface AttributeDefinition {
27
- AttributeName: string
28
- AttributeType: 'S' | 'N' | 'B'
29
- }
30
-
31
- export interface GlobalSecondaryIndex {
32
- IndexName: string
33
- KeySchema: KeySchemaElement[]
34
- Projection: {
35
- ProjectionType: 'ALL' | 'KEYS_ONLY' | 'INCLUDE'
36
- NonKeyAttributes?: string[]
37
- }
38
- ProvisionedThroughput?: {
39
- ReadCapacityUnits: number
40
- WriteCapacityUnits: number
41
- }
42
- }
43
-
44
- export interface TableDescription {
45
- TableName: string
46
- TableStatus: 'CREATING' | 'UPDATING' | 'DELETING' | 'ACTIVE' | 'INACCESSIBLE_ENCRYPTION_CREDENTIALS' | 'ARCHIVING' | 'ARCHIVED'
47
- TableArn: string
48
- ItemCount: number
49
- TableSizeBytes: number
50
- CreationDateTime: string
51
- KeySchema: KeySchemaElement[]
52
- AttributeDefinitions: AttributeDefinition[]
53
- GlobalSecondaryIndexes?: GlobalSecondaryIndex[]
54
- }
55
-
56
- /**
57
- * DynamoDB client for direct API calls
58
- */
59
- export class DynamoDBClient {
60
- private client: AWSClient
61
- private region: string
62
-
63
- constructor(region: string = 'us-east-1') {
64
- this.region = region
65
- this.client = new AWSClient()
66
- }
67
-
68
- private async request<T>(action: string, params: Record<string, any>): Promise<T> {
69
- return this.client.request({
70
- service: 'dynamodb',
71
- region: this.region,
72
- method: 'POST',
73
- path: '/',
74
- headers: {
75
- 'Content-Type': 'application/x-amz-json-1.0',
76
- 'X-Amz-Target': `DynamoDB_20120810.${action}`,
77
- },
78
- body: JSON.stringify(params),
79
- })
80
- }
81
-
82
- /**
83
- * Create a new DynamoDB table
84
- */
85
- async createTable(params: {
86
- TableName: string
87
- KeySchema: KeySchemaElement[]
88
- AttributeDefinitions: AttributeDefinition[]
89
- BillingMode?: 'PROVISIONED' | 'PAY_PER_REQUEST'
90
- ProvisionedThroughput?: {
91
- ReadCapacityUnits: number
92
- WriteCapacityUnits: number
93
- }
94
- GlobalSecondaryIndexes?: GlobalSecondaryIndex[]
95
- Tags?: Array<{ Key: string; Value: string }>
96
- TimeToLiveSpecification?: {
97
- AttributeName: string
98
- Enabled: boolean
99
- }
100
- }): Promise<{ TableDescription: TableDescription }> {
101
- return this.request('CreateTable', params)
102
- }
103
-
104
- /**
105
- * Delete a DynamoDB table
106
- */
107
- async deleteTable(params: { TableName: string }): Promise<{ TableDescription: TableDescription }> {
108
- return this.request('DeleteTable', params)
109
- }
110
-
111
- /**
112
- * Describe a DynamoDB table
113
- */
114
- async describeTable(params: { TableName: string }): Promise<{ Table: TableDescription }> {
115
- return this.request('DescribeTable', params)
116
- }
117
-
118
- /**
119
- * List all DynamoDB tables
120
- */
121
- async listTables(params?: {
122
- ExclusiveStartTableName?: string
123
- Limit?: number
124
- }): Promise<{ TableNames: string[]; LastEvaluatedTableName?: string }> {
125
- return this.request('ListTables', params || {})
126
- }
127
-
128
- /**
129
- * Put an item into a table
130
- */
131
- async putItem(params: {
132
- TableName: string
133
- Item: Record<string, AttributeValue>
134
- ConditionExpression?: string
135
- ExpressionAttributeNames?: Record<string, string>
136
- ExpressionAttributeValues?: Record<string, AttributeValue>
137
- ReturnValues?: 'NONE' | 'ALL_OLD'
138
- }): Promise<{ Attributes?: Record<string, AttributeValue> }> {
139
- return this.request('PutItem', params)
140
- }
141
-
142
- /**
143
- * Get an item from a table
144
- */
145
- async getItem(params: {
146
- TableName: string
147
- Key: Record<string, AttributeValue>
148
- ProjectionExpression?: string
149
- ExpressionAttributeNames?: Record<string, string>
150
- ConsistentRead?: boolean
151
- }): Promise<{ Item?: Record<string, AttributeValue> }> {
152
- return this.request('GetItem', params)
153
- }
154
-
155
- /**
156
- * Update an item in a table
157
- */
158
- async updateItem(params: {
159
- TableName: string
160
- Key: Record<string, AttributeValue>
161
- UpdateExpression: string
162
- ConditionExpression?: string
163
- ExpressionAttributeNames?: Record<string, string>
164
- ExpressionAttributeValues?: Record<string, AttributeValue>
165
- ReturnValues?: 'NONE' | 'ALL_OLD' | 'UPDATED_OLD' | 'ALL_NEW' | 'UPDATED_NEW'
166
- }): Promise<{ Attributes?: Record<string, AttributeValue> }> {
167
- return this.request('UpdateItem', params)
168
- }
169
-
170
- /**
171
- * Delete an item from a table
172
- */
173
- async deleteItem(params: {
174
- TableName: string
175
- Key: Record<string, AttributeValue>
176
- ConditionExpression?: string
177
- ExpressionAttributeNames?: Record<string, string>
178
- ExpressionAttributeValues?: Record<string, AttributeValue>
179
- ReturnValues?: 'NONE' | 'ALL_OLD'
180
- }): Promise<{ Attributes?: Record<string, AttributeValue> }> {
181
- return this.request('DeleteItem', params)
182
- }
183
-
184
- /**
185
- * Query items from a table
186
- */
187
- async query(params: {
188
- TableName: string
189
- IndexName?: string
190
- KeyConditionExpression: string
191
- FilterExpression?: string
192
- ProjectionExpression?: string
193
- ExpressionAttributeNames?: Record<string, string>
194
- ExpressionAttributeValues?: Record<string, AttributeValue>
195
- Limit?: number
196
- ExclusiveStartKey?: Record<string, AttributeValue>
197
- ScanIndexForward?: boolean
198
- ConsistentRead?: boolean
199
- }): Promise<{
200
- Items: Array<Record<string, AttributeValue>>
201
- Count: number
202
- ScannedCount: number
203
- LastEvaluatedKey?: Record<string, AttributeValue>
204
- }> {
205
- return this.request('Query', params)
206
- }
207
-
208
- /**
209
- * Scan items from a table
210
- */
211
- async scan(params: {
212
- TableName: string
213
- IndexName?: string
214
- FilterExpression?: string
215
- ProjectionExpression?: string
216
- ExpressionAttributeNames?: Record<string, string>
217
- ExpressionAttributeValues?: Record<string, AttributeValue>
218
- Limit?: number
219
- ExclusiveStartKey?: Record<string, AttributeValue>
220
- ConsistentRead?: boolean
221
- }): Promise<{
222
- Items: Array<Record<string, AttributeValue>>
223
- Count: number
224
- ScannedCount: number
225
- LastEvaluatedKey?: Record<string, AttributeValue>
226
- }> {
227
- return this.request('Scan', params)
228
- }
229
-
230
- /**
231
- * Batch write items
232
- */
233
- async batchWriteItem(params: {
234
- RequestItems: Record<string, Array<{
235
- PutRequest?: { Item: Record<string, AttributeValue> }
236
- DeleteRequest?: { Key: Record<string, AttributeValue> }
237
- }>>
238
- }): Promise<{
239
- UnprocessedItems: Record<string, Array<{
240
- PutRequest?: { Item: Record<string, AttributeValue> }
241
- DeleteRequest?: { Key: Record<string, AttributeValue> }
242
- }>>
243
- }> {
244
- return this.request('BatchWriteItem', params)
245
- }
246
-
247
- /**
248
- * Batch get items
249
- */
250
- async batchGetItem(params: {
251
- RequestItems: Record<string, {
252
- Keys: Array<Record<string, AttributeValue>>
253
- ProjectionExpression?: string
254
- ExpressionAttributeNames?: Record<string, string>
255
- ConsistentRead?: boolean
256
- }>
257
- }): Promise<{
258
- Responses: Record<string, Array<Record<string, AttributeValue>>>
259
- UnprocessedKeys: Record<string, {
260
- Keys: Array<Record<string, AttributeValue>>
261
- }>
262
- }> {
263
- return this.request('BatchGetItem', params)
264
- }
265
-
266
- /**
267
- * Update time to live settings
268
- */
269
- async updateTimeToLive(params: {
270
- TableName: string
271
- TimeToLiveSpecification: {
272
- AttributeName: string
273
- Enabled: boolean
274
- }
275
- }): Promise<{ TimeToLiveSpecification: { AttributeName: string; Enabled: boolean } }> {
276
- return this.request('UpdateTimeToLive', params)
277
- }
278
-
279
- /**
280
- * Helper: Marshal a JavaScript object to DynamoDB format
281
- */
282
- static marshal(obj: Record<string, any>): Record<string, AttributeValue> {
283
- const result: Record<string, AttributeValue> = {}
284
- for (const [key, value] of Object.entries(obj)) {
285
- result[key] = DynamoDBClient.marshalValue(value)
286
- }
287
- return result
288
- }
289
-
290
- /**
291
- * Helper: Marshal a single value to DynamoDB format
292
- */
293
- static marshalValue(value: any): AttributeValue {
294
- if (value === null || value === undefined) {
295
- return { NULL: true }
296
- }
297
- if (typeof value === 'string') {
298
- return { S: value }
299
- }
300
- if (typeof value === 'number') {
301
- return { N: String(value) }
302
- }
303
- if (typeof value === 'boolean') {
304
- return { BOOL: value }
305
- }
306
- if (Array.isArray(value)) {
307
- return { L: value.map(v => DynamoDBClient.marshalValue(v)) }
308
- }
309
- if (typeof value === 'object') {
310
- return { M: DynamoDBClient.marshal(value) }
311
- }
312
- return { S: String(value) }
313
- }
314
-
315
- /**
316
- * Helper: Unmarshal DynamoDB format to JavaScript object
317
- */
318
- static unmarshal(item: Record<string, AttributeValue>): Record<string, any> {
319
- const result: Record<string, any> = {}
320
- for (const [key, value] of Object.entries(item)) {
321
- result[key] = DynamoDBClient.unmarshalValue(value)
322
- }
323
- return result
324
- }
325
-
326
- /**
327
- * Helper: Unmarshal a single DynamoDB value
328
- */
329
- static unmarshalValue(value: AttributeValue): any {
330
- if (value.S !== undefined) return value.S
331
- if (value.N !== undefined) return Number(value.N)
332
- if (value.BOOL !== undefined) return value.BOOL
333
- if (value.NULL !== undefined) return null
334
- if (value.L !== undefined) return value.L.map(v => DynamoDBClient.unmarshalValue(v))
335
- if (value.M !== undefined) return DynamoDBClient.unmarshal(value.M)
336
- if (value.SS !== undefined) return value.SS
337
- if (value.NS !== undefined) return value.NS.map(Number)
338
- return null
339
- }
340
- }