@stacksjs/ts-cloud 0.7.5 → 0.7.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 (57) hide show
  1. package/dist/aws/index.js +259 -0
  2. package/dist/bin/cli.js +231 -231
  3. package/dist/chunk-0wxyppza.js +146 -0
  4. package/dist/chunk-3knnr7wh.js +601 -0
  5. package/dist/chunk-3rsfns7x.js +10427 -0
  6. package/dist/chunk-93hjhs78.js +1752 -0
  7. package/dist/chunk-arsh1g5h.js +1749 -0
  8. package/dist/chunk-b82pbxyp.js +1572 -0
  9. package/dist/chunk-c6rgvg1j.js +46124 -0
  10. package/dist/chunk-d2p5n2aq.js +23 -0
  11. package/dist/chunk-d7p84vz5.js +1699 -0
  12. package/dist/chunk-eq08r166.js +8 -0
  13. package/dist/chunk-hsk6fe6x.js +371 -0
  14. package/dist/chunk-mj1tmhte.js +13 -0
  15. package/dist/chunk-pegd7rmf.js +10 -0
  16. package/dist/chunk-pqfzdg68.js +12 -0
  17. package/dist/chunk-qpj3edwz.js +601 -0
  18. package/dist/chunk-tjjgajbh.js +1032 -0
  19. package/dist/chunk-tnztxpcb.js +630 -0
  20. package/dist/chunk-tt4kxske.js +1788 -0
  21. package/dist/chunk-v0bahtg2.js +4 -0
  22. package/dist/chunk-vd87cpvn.js +1754 -0
  23. package/dist/chunk-x07dz3sd.js +12828 -0
  24. package/dist/chunk-xzn0ntr0.js +4616 -0
  25. package/dist/chunk-zn0nxxa8.js +1779 -0
  26. package/dist/deploy/index.js +87 -0
  27. package/dist/dns/index.js +31 -0
  28. package/dist/drivers/index.d.ts +2 -0
  29. package/dist/drivers/index.js +108 -0
  30. package/dist/drivers/shared/box-provision.d.ts +102 -0
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.js +4383 -91358
  33. package/dist/push/index.js +509 -0
  34. package/dist/ui/index.html +3 -3
  35. package/dist/ui/server/actions.html +3 -3
  36. package/dist/ui/server/backups.html +3 -3
  37. package/dist/ui/server/database.html +3 -3
  38. package/dist/ui/server/deployments.html +3 -3
  39. package/dist/ui/server/firewall.html +3 -3
  40. package/dist/ui/server/logs.html +3 -3
  41. package/dist/ui/server/services.html +3 -3
  42. package/dist/ui/server/sites.html +3 -3
  43. package/dist/ui/server/ssh-keys.html +3 -3
  44. package/dist/ui/server/terminal.html +3 -3
  45. package/dist/ui/server/workers.html +3 -3
  46. package/dist/ui/serverless/alarms.html +3 -3
  47. package/dist/ui/serverless/assets.html +3 -3
  48. package/dist/ui/serverless/data.html +3 -3
  49. package/dist/ui/serverless/deployments.html +3 -3
  50. package/dist/ui/serverless/functions.html +3 -3
  51. package/dist/ui/serverless/logs.html +3 -3
  52. package/dist/ui/serverless/queues.html +3 -3
  53. package/dist/ui/serverless/scheduler.html +3 -3
  54. package/dist/ui/serverless/secrets.html +3 -3
  55. package/dist/ui/serverless/traces.html +3 -3
  56. package/dist/ui/serverless.html +3 -3
  57. package/package.json +3 -3
@@ -0,0 +1,8 @@
1
+ import {
2
+ RDSClient
3
+ } from "./chunk-3knnr7wh.js";
4
+ import"./chunk-arsh1g5h.js";
5
+ import"./chunk-v0bahtg2.js";
6
+ export {
7
+ RDSClient
8
+ };
@@ -0,0 +1,371 @@
1
+ import {
2
+ AWSClient
3
+ } from "./chunk-arsh1g5h.js";
4
+
5
+ // src/aws/ecr.ts
6
+ class ECRClient {
7
+ client;
8
+ region;
9
+ constructor(region = "us-east-1", profile) {
10
+ this.region = region;
11
+ this.client = new AWSClient;
12
+ }
13
+ async createRepository(options) {
14
+ const params = {
15
+ repositoryName: options.repositoryName
16
+ };
17
+ if (options.imageTagMutability) {
18
+ params.imageTagMutability = options.imageTagMutability;
19
+ }
20
+ if (options.imageScanningConfiguration) {
21
+ params.imageScanningConfiguration = options.imageScanningConfiguration;
22
+ }
23
+ if (options.encryptionConfiguration) {
24
+ params.encryptionConfiguration = options.encryptionConfiguration;
25
+ }
26
+ if (options.tags && options.tags.length > 0) {
27
+ params.tags = options.tags;
28
+ }
29
+ const result = await this.client.request({
30
+ service: "ecr",
31
+ region: this.region,
32
+ method: "POST",
33
+ path: "/",
34
+ headers: {
35
+ "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.CreateRepository",
36
+ "Content-Type": "application/x-amz-json-1.1"
37
+ },
38
+ body: JSON.stringify(params)
39
+ });
40
+ return {
41
+ repository: result.repository ? this.parseRepository(result.repository) : undefined
42
+ };
43
+ }
44
+ async describeRepositories(options) {
45
+ const params = {};
46
+ if (options?.repositoryNames && options.repositoryNames.length > 0) {
47
+ params.repositoryNames = options.repositoryNames;
48
+ }
49
+ if (options?.registryId) {
50
+ params.registryId = options.registryId;
51
+ }
52
+ if (options?.maxResults) {
53
+ params.maxResults = options.maxResults;
54
+ }
55
+ if (options?.nextToken) {
56
+ params.nextToken = options.nextToken;
57
+ }
58
+ const result = await this.client.request({
59
+ service: "ecr",
60
+ region: this.region,
61
+ method: "POST",
62
+ path: "/",
63
+ headers: {
64
+ "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.DescribeRepositories",
65
+ "Content-Type": "application/x-amz-json-1.1"
66
+ },
67
+ body: JSON.stringify(params)
68
+ });
69
+ return {
70
+ repositories: result.repositories?.map((repo) => this.parseRepository(repo)),
71
+ nextToken: result.nextToken
72
+ };
73
+ }
74
+ async getAuthorizationToken(registryIds) {
75
+ const params = {};
76
+ if (registryIds && registryIds.length > 0) {
77
+ params.registryIds = registryIds;
78
+ }
79
+ const result = await this.client.request({
80
+ service: "ecr",
81
+ region: this.region,
82
+ method: "POST",
83
+ path: "/",
84
+ headers: {
85
+ "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.GetAuthorizationToken",
86
+ "Content-Type": "application/x-amz-json-1.1"
87
+ },
88
+ body: JSON.stringify(params)
89
+ });
90
+ return {
91
+ authorizationData: result.authorizationData?.map((auth) => ({
92
+ authorizationToken: auth.authorizationToken,
93
+ expiresAt: auth.expiresAt,
94
+ proxyEndpoint: auth.proxyEndpoint
95
+ }))
96
+ };
97
+ }
98
+ async deleteRepository(options) {
99
+ const params = {
100
+ repositoryName: options.repositoryName
101
+ };
102
+ if (options.registryId) {
103
+ params.registryId = options.registryId;
104
+ }
105
+ if (options.force !== undefined) {
106
+ params.force = options.force;
107
+ }
108
+ const result = await this.client.request({
109
+ service: "ecr",
110
+ region: this.region,
111
+ method: "POST",
112
+ path: "/",
113
+ headers: {
114
+ "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.DeleteRepository",
115
+ "Content-Type": "application/x-amz-json-1.1"
116
+ },
117
+ body: JSON.stringify(params)
118
+ });
119
+ return {
120
+ repository: result.repository ? this.parseRepository(result.repository) : undefined
121
+ };
122
+ }
123
+ async describeImages(options) {
124
+ const params = {
125
+ repositoryName: options.repositoryName
126
+ };
127
+ if (options.registryId) {
128
+ params.registryId = options.registryId;
129
+ }
130
+ if (options.imageIds && options.imageIds.length > 0) {
131
+ params.imageIds = options.imageIds;
132
+ }
133
+ if (options.filter) {
134
+ params.filter = options.filter;
135
+ }
136
+ if (options.maxResults) {
137
+ params.maxResults = options.maxResults;
138
+ }
139
+ if (options.nextToken) {
140
+ params.nextToken = options.nextToken;
141
+ }
142
+ const result = await this.client.request({
143
+ service: "ecr",
144
+ region: this.region,
145
+ method: "POST",
146
+ path: "/",
147
+ headers: {
148
+ "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.DescribeImages",
149
+ "Content-Type": "application/x-amz-json-1.1"
150
+ },
151
+ body: JSON.stringify(params)
152
+ });
153
+ return {
154
+ imageDetails: result.imageDetails?.map((img) => this.parseImageDetail(img)),
155
+ nextToken: result.nextToken
156
+ };
157
+ }
158
+ async batchDeleteImage(options) {
159
+ const params = {
160
+ repositoryName: options.repositoryName,
161
+ imageIds: options.imageIds
162
+ };
163
+ if (options.registryId) {
164
+ params.registryId = options.registryId;
165
+ }
166
+ const result = await this.client.request({
167
+ service: "ecr",
168
+ region: this.region,
169
+ method: "POST",
170
+ path: "/",
171
+ headers: {
172
+ "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.BatchDeleteImage",
173
+ "Content-Type": "application/x-amz-json-1.1"
174
+ },
175
+ body: JSON.stringify(params)
176
+ });
177
+ return {
178
+ imageIds: result.imageIds,
179
+ failures: result.failures
180
+ };
181
+ }
182
+ async putLifecyclePolicy(options) {
183
+ const params = {
184
+ repositoryName: options.repositoryName,
185
+ lifecyclePolicyText: options.lifecyclePolicyText
186
+ };
187
+ if (options.registryId) {
188
+ params.registryId = options.registryId;
189
+ }
190
+ const result = await this.client.request({
191
+ service: "ecr",
192
+ region: this.region,
193
+ method: "POST",
194
+ path: "/",
195
+ headers: {
196
+ "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.PutLifecyclePolicy",
197
+ "Content-Type": "application/x-amz-json-1.1"
198
+ },
199
+ body: JSON.stringify(params)
200
+ });
201
+ return {
202
+ registryId: result.registryId,
203
+ repositoryName: result.repositoryName,
204
+ lifecyclePolicyText: result.lifecyclePolicyText
205
+ };
206
+ }
207
+ async getLifecyclePolicy(options) {
208
+ const params = {
209
+ repositoryName: options.repositoryName
210
+ };
211
+ if (options.registryId) {
212
+ params.registryId = options.registryId;
213
+ }
214
+ const result = await this.client.request({
215
+ service: "ecr",
216
+ region: this.region,
217
+ method: "POST",
218
+ path: "/",
219
+ headers: {
220
+ "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.GetLifecyclePolicy",
221
+ "Content-Type": "application/x-amz-json-1.1"
222
+ },
223
+ body: JSON.stringify(params)
224
+ });
225
+ return {
226
+ registryId: result.registryId,
227
+ repositoryName: result.repositoryName,
228
+ lifecyclePolicyText: result.lifecyclePolicyText,
229
+ lastEvaluatedAt: result.lastEvaluatedAt
230
+ };
231
+ }
232
+ async setRepositoryPolicy(options) {
233
+ const params = {
234
+ repositoryName: options.repositoryName,
235
+ policyText: options.policyText
236
+ };
237
+ if (options.registryId) {
238
+ params.registryId = options.registryId;
239
+ }
240
+ if (options.force !== undefined) {
241
+ params.force = options.force;
242
+ }
243
+ const result = await this.client.request({
244
+ service: "ecr",
245
+ region: this.region,
246
+ method: "POST",
247
+ path: "/",
248
+ headers: {
249
+ "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.SetRepositoryPolicy",
250
+ "Content-Type": "application/x-amz-json-1.1"
251
+ },
252
+ body: JSON.stringify(params)
253
+ });
254
+ return {
255
+ registryId: result.registryId,
256
+ repositoryName: result.repositoryName,
257
+ policyText: result.policyText
258
+ };
259
+ }
260
+ async getRepositoryPolicy(options) {
261
+ const params = {
262
+ repositoryName: options.repositoryName
263
+ };
264
+ if (options.registryId) {
265
+ params.registryId = options.registryId;
266
+ }
267
+ const result = await this.client.request({
268
+ service: "ecr",
269
+ region: this.region,
270
+ method: "POST",
271
+ path: "/",
272
+ headers: {
273
+ "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.GetRepositoryPolicy",
274
+ "Content-Type": "application/x-amz-json-1.1"
275
+ },
276
+ body: JSON.stringify(params)
277
+ });
278
+ return {
279
+ registryId: result.registryId,
280
+ repositoryName: result.repositoryName,
281
+ policyText: result.policyText
282
+ };
283
+ }
284
+ async tagResource(options) {
285
+ const params = {
286
+ resourceArn: options.resourceArn,
287
+ tags: options.tags
288
+ };
289
+ await this.client.request({
290
+ service: "ecr",
291
+ region: this.region,
292
+ method: "POST",
293
+ path: "/",
294
+ headers: {
295
+ "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.TagResource",
296
+ "Content-Type": "application/x-amz-json-1.1"
297
+ },
298
+ body: JSON.stringify(params)
299
+ });
300
+ }
301
+ async listTagsForResource(resourceArn) {
302
+ const params = {
303
+ resourceArn
304
+ };
305
+ const result = await this.client.request({
306
+ service: "ecr",
307
+ region: this.region,
308
+ method: "POST",
309
+ path: "/",
310
+ headers: {
311
+ "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.ListTagsForResource",
312
+ "Content-Type": "application/x-amz-json-1.1"
313
+ },
314
+ body: JSON.stringify(params)
315
+ });
316
+ return {
317
+ tags: result.tags
318
+ };
319
+ }
320
+ createLifecyclePolicyText(rules) {
321
+ return JSON.stringify({
322
+ rules: rules.map((rule) => ({
323
+ rulePriority: rule.rulePriority,
324
+ description: rule.description,
325
+ selection: rule.selection,
326
+ action: rule.action
327
+ }))
328
+ });
329
+ }
330
+ async getDockerLoginCommand() {
331
+ const authResult = await this.getAuthorizationToken();
332
+ if (!authResult.authorizationData?.[0]) {
333
+ throw new Error("Failed to get authorization token");
334
+ }
335
+ const auth = authResult.authorizationData[0];
336
+ const token = auth.authorizationToken || "";
337
+ const endpoint = auth.proxyEndpoint || "";
338
+ const decoded = Buffer.from(token, "base64").toString("utf8");
339
+ const password = decoded.split(":")[1];
340
+ return `echo "${password}" | docker login --username AWS --password-stdin ${endpoint}`;
341
+ }
342
+ getRegistryUri(accountId) {
343
+ return `${accountId}.dkr.ecr.${this.region}.amazonaws.com`;
344
+ }
345
+ parseRepository(repo) {
346
+ return {
347
+ repositoryArn: repo.repositoryArn,
348
+ registryId: repo.registryId,
349
+ repositoryName: repo.repositoryName,
350
+ repositoryUri: repo.repositoryUri,
351
+ createdAt: repo.createdAt,
352
+ imageTagMutability: repo.imageTagMutability,
353
+ imageScanningConfiguration: repo.imageScanningConfiguration,
354
+ encryptionConfiguration: repo.encryptionConfiguration
355
+ };
356
+ }
357
+ parseImageDetail(img) {
358
+ return {
359
+ registryId: img.registryId,
360
+ repositoryName: img.repositoryName,
361
+ imageDigest: img.imageDigest,
362
+ imageTags: img.imageTags,
363
+ imageSizeInBytes: img.imageSizeInBytes,
364
+ imagePushedAt: img.imagePushedAt,
365
+ imageScanStatus: img.imageScanStatus,
366
+ imageScanFindingsSummary: img.imageScanFindingsSummary
367
+ };
368
+ }
369
+ }
370
+
371
+ export { ECRClient };
@@ -0,0 +1,13 @@
1
+ import {
2
+ AWSClient,
3
+ buildQueryParams,
4
+ detectCredentialSource,
5
+ resolveS3Endpoint
6
+ } from "./chunk-arsh1g5h.js";
7
+ import"./chunk-v0bahtg2.js";
8
+ export {
9
+ resolveS3Endpoint,
10
+ detectCredentialSource,
11
+ buildQueryParams,
12
+ AWSClient
13
+ };
@@ -0,0 +1,10 @@
1
+ import {
2
+ buildAndPushServerlessImage
3
+ } from "./chunk-0wxyppza.js";
4
+ import"./chunk-hsk6fe6x.js";
5
+ import"./chunk-c6rgvg1j.js";
6
+ import"./chunk-arsh1g5h.js";
7
+ import"./chunk-v0bahtg2.js";
8
+ export {
9
+ buildAndPushServerlessImage
10
+ };
@@ -0,0 +1,12 @@
1
+ import {
2
+ EmailClient,
3
+ email
4
+ } from "./chunk-zn0nxxa8.js";
5
+ import"./chunk-tnztxpcb.js";
6
+ import"./chunk-vd87cpvn.js";
7
+ import"./chunk-arsh1g5h.js";
8
+ import"./chunk-v0bahtg2.js";
9
+ export {
10
+ email,
11
+ EmailClient
12
+ };