@webda/aws 4.0.0-beta.2 → 4.0.0-beta.3

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 (151) hide show
  1. package/README.md +64 -7
  2. package/lib/index.d.ts.map +1 -1
  3. package/lib/index.js.map +1 -1
  4. package/lib/services/aws-parameters.d.ts +33 -0
  5. package/lib/services/aws-parameters.d.ts.map +1 -0
  6. package/lib/services/aws-parameters.js +18 -0
  7. package/lib/services/aws-parameters.js.map +1 -0
  8. package/lib/services/awscommands.service.d.ts +39 -0
  9. package/lib/services/awscommands.service.d.ts.map +1 -0
  10. package/lib/services/awscommands.service.js +127 -0
  11. package/lib/services/awscommands.service.js.map +1 -0
  12. package/lib/services/cloudwatchlogger.service.d.ts +131 -0
  13. package/lib/services/cloudwatchlogger.service.d.ts.map +1 -0
  14. package/lib/services/{cloudwatchlogger.js → cloudwatchlogger.service.js} +60 -28
  15. package/lib/services/cloudwatchlogger.service.js.map +1 -0
  16. package/lib/services/contributors.d.ts +37 -0
  17. package/lib/services/contributors.d.ts.map +1 -0
  18. package/lib/services/contributors.js +2 -0
  19. package/lib/services/contributors.js.map +1 -0
  20. package/lib/services/dynamodb.service.d.ts +297 -0
  21. package/lib/services/dynamodb.service.d.ts.map +1 -0
  22. package/lib/services/dynamodb.service.js +985 -0
  23. package/lib/services/dynamodb.service.js.map +1 -0
  24. package/lib/services/index.d.ts +11 -31
  25. package/lib/services/index.d.ts.map +1 -1
  26. package/lib/services/index.js +11 -8
  27. package/lib/services/index.js.map +1 -1
  28. package/lib/services/lambdacaller.service.d.ts +81 -0
  29. package/lib/services/lambdacaller.service.d.ts.map +1 -0
  30. package/lib/services/lambdacaller.service.js +75 -0
  31. package/lib/services/lambdacaller.service.js.map +1 -0
  32. package/lib/services/lambdaserver.service.d.ts +127 -0
  33. package/lib/services/lambdaserver.service.d.ts.map +1 -0
  34. package/lib/services/lambdaserver.service.js +294 -0
  35. package/lib/services/lambdaserver.service.js.map +1 -0
  36. package/lib/services/{route53.d.ts → route53.service.d.ts} +21 -12
  37. package/lib/services/route53.service.d.ts.map +1 -0
  38. package/lib/services/{route53.js → route53.service.js} +25 -28
  39. package/lib/services/route53.service.js.map +1 -0
  40. package/lib/services/s3binary.service.d.ts +215 -0
  41. package/lib/services/s3binary.service.d.ts.map +1 -0
  42. package/lib/services/{s3binary.js → s3binary.service.js} +93 -55
  43. package/lib/services/s3binary.service.js.map +1 -0
  44. package/lib/services/secretsmanager.service.d.ts +102 -0
  45. package/lib/services/secretsmanager.service.d.ts.map +1 -0
  46. package/lib/services/{secretsmanager.js → secretsmanager.service.js} +40 -22
  47. package/lib/services/secretsmanager.service.js.map +1 -0
  48. package/lib/services/{sqsqueue.d.ts → sqsqueue.service.d.ts} +60 -35
  49. package/lib/services/sqsqueue.service.d.ts.map +1 -0
  50. package/lib/services/{sqsqueue.js → sqsqueue.service.js} +53 -28
  51. package/lib/services/sqsqueue.service.js.map +1 -0
  52. package/package.json +58 -63
  53. package/webda.module.json +743 -280
  54. package/lib/deployers/cloudformation.d.ts +0 -317
  55. package/lib/deployers/cloudformation.d.ts.map +0 -1
  56. package/lib/deployers/cloudformation.js +0 -837
  57. package/lib/deployers/cloudformation.js.map +0 -1
  58. package/lib/deployers/cloudformation.spec.d.ts +0 -2
  59. package/lib/deployers/cloudformation.spec.d.ts.map +0 -1
  60. package/lib/deployers/cloudformation.spec.js +0 -530
  61. package/lib/deployers/cloudformation.spec.js.map +0 -1
  62. package/lib/deployers/index.d.ts +0 -255
  63. package/lib/deployers/index.d.ts.map +0 -1
  64. package/lib/deployers/index.js +0 -543
  65. package/lib/deployers/index.js.map +0 -1
  66. package/lib/deployers/index.spec.d.ts +0 -9
  67. package/lib/deployers/index.spec.d.ts.map +0 -1
  68. package/lib/deployers/index.spec.js +0 -595
  69. package/lib/deployers/index.spec.js.map +0 -1
  70. package/lib/deployers/lambda-entrypoint.d.ts +0 -2
  71. package/lib/deployers/lambda-entrypoint.d.ts.map +0 -1
  72. package/lib/deployers/lambda-entrypoint.js +0 -13
  73. package/lib/deployers/lambda-entrypoint.js.map +0 -1
  74. package/lib/deployers/lambdapackager.d.ts +0 -28
  75. package/lib/deployers/lambdapackager.d.ts.map +0 -1
  76. package/lib/deployers/lambdapackager.js +0 -26
  77. package/lib/deployers/lambdapackager.js.map +0 -1
  78. package/lib/deployers/lambdapackager.spec.d.ts +0 -2
  79. package/lib/deployers/lambdapackager.spec.d.ts.map +0 -1
  80. package/lib/deployers/lambdapackager.spec.js +0 -44
  81. package/lib/deployers/lambdapackager.spec.js.map +0 -1
  82. package/lib/index.spec.d.ts +0 -11
  83. package/lib/index.spec.d.ts.map +0 -1
  84. package/lib/index.spec.js +0 -42
  85. package/lib/index.spec.js.map +0 -1
  86. package/lib/services/aws-mixin.d.ts +0 -25
  87. package/lib/services/aws-mixin.d.ts.map +0 -1
  88. package/lib/services/aws-mixin.js +0 -18
  89. package/lib/services/aws-mixin.js.map +0 -1
  90. package/lib/services/cloudwatchlogger.d.ts +0 -82
  91. package/lib/services/cloudwatchlogger.d.ts.map +0 -1
  92. package/lib/services/cloudwatchlogger.js.map +0 -1
  93. package/lib/services/cloudwatchlogger.spec.d.ts +0 -2
  94. package/lib/services/cloudwatchlogger.spec.d.ts.map +0 -1
  95. package/lib/services/cloudwatchlogger.spec.js +0 -104
  96. package/lib/services/cloudwatchlogger.spec.js.map +0 -1
  97. package/lib/services/dynamodb.d.ts +0 -174
  98. package/lib/services/dynamodb.d.ts.map +0 -1
  99. package/lib/services/dynamodb.js +0 -711
  100. package/lib/services/dynamodb.js.map +0 -1
  101. package/lib/services/dynamodb.spec.d.ts +0 -24
  102. package/lib/services/dynamodb.spec.d.ts.map +0 -1
  103. package/lib/services/dynamodb.spec.js +0 -344
  104. package/lib/services/dynamodb.spec.js.map +0 -1
  105. package/lib/services/lambdacaller.d.ts +0 -69
  106. package/lib/services/lambdacaller.d.ts.map +0 -1
  107. package/lib/services/lambdacaller.js +0 -63
  108. package/lib/services/lambdacaller.js.map +0 -1
  109. package/lib/services/lambdacaller.spec.d.ts +0 -2
  110. package/lib/services/lambdacaller.spec.d.ts.map +0 -1
  111. package/lib/services/lambdacaller.spec.js +0 -70
  112. package/lib/services/lambdacaller.spec.js.map +0 -1
  113. package/lib/services/lambdaserver.d.ts +0 -87
  114. package/lib/services/lambdaserver.d.ts.map +0 -1
  115. package/lib/services/lambdaserver.js +0 -263
  116. package/lib/services/lambdaserver.js.map +0 -1
  117. package/lib/services/lambdaserver.spec.d.ts +0 -2
  118. package/lib/services/lambdaserver.spec.d.ts.map +0 -1
  119. package/lib/services/lambdaserver.spec.js +0 -417
  120. package/lib/services/lambdaserver.spec.js.map +0 -1
  121. package/lib/services/route53.d.ts.map +0 -1
  122. package/lib/services/route53.js.map +0 -1
  123. package/lib/services/route53.spec.d.ts +0 -2
  124. package/lib/services/route53.spec.d.ts.map +0 -1
  125. package/lib/services/route53.spec.js +0 -102
  126. package/lib/services/route53.spec.js.map +0 -1
  127. package/lib/services/s3binary.d.ts +0 -163
  128. package/lib/services/s3binary.d.ts.map +0 -1
  129. package/lib/services/s3binary.js.map +0 -1
  130. package/lib/services/s3binary.spec.d.ts +0 -2
  131. package/lib/services/s3binary.spec.d.ts.map +0 -1
  132. package/lib/services/s3binary.spec.js +0 -284
  133. package/lib/services/s3binary.spec.js.map +0 -1
  134. package/lib/services/secretsmanager.d.ts +0 -81
  135. package/lib/services/secretsmanager.d.ts.map +0 -1
  136. package/lib/services/secretsmanager.js.map +0 -1
  137. package/lib/services/secretsmanager.spec.d.ts +0 -2
  138. package/lib/services/secretsmanager.spec.d.ts.map +0 -1
  139. package/lib/services/secretsmanager.spec.js +0 -66
  140. package/lib/services/secretsmanager.spec.js.map +0 -1
  141. package/lib/services/sqsqueue.d.ts.map +0 -1
  142. package/lib/services/sqsqueue.js.map +0 -1
  143. package/lib/services/sqsqueue.spec.d.ts +0 -2
  144. package/lib/services/sqsqueue.spec.d.ts.map +0 -1
  145. package/lib/services/sqsqueue.spec.js +0 -157
  146. package/lib/services/sqsqueue.spec.js.map +0 -1
  147. package/lib/shell.d.ts +0 -13
  148. package/lib/shell.d.ts.map +0 -1
  149. package/lib/shell.js +0 -42
  150. package/lib/shell.js.map +0 -1
  151. package/webda.shell.json +0 -11
@@ -1,543 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { ACM } from "@aws-sdk/client-acm";
8
- import { EC2 } from "@aws-sdk/client-ec2";
9
- import { Route53 } from "@aws-sdk/client-route-53";
10
- import { NotFound, S3 } from "@aws-sdk/client-s3";
11
- import { STS } from "@aws-sdk/client-sts";
12
- import { Cache, WaitFor, WaitLinearDelay, WebdaError } from "@webda/core";
13
- import { Deployer } from "@webda/shell";
14
- import bluebird from "bluebird";
15
- import * as crypto from "crypto";
16
- import * as fs from "fs";
17
- import { globSync } from "glob";
18
- import IamPolicyOptimizer from "iam-policy-optimizer";
19
- import * as mime from "mime-types";
20
- import * as path from "path";
21
- import { randomUUID } from "crypto";
22
- import { Route53Service } from "../services/route53.js";
23
- /**
24
- * Abstract AWS Deployer
25
- *
26
- * It includes some basic utilities methods to be used by
27
- * final deployers
28
- */
29
- export class AWSDeployer extends Deployer {
30
- constructor(manager, resources) {
31
- super(manager, resources);
32
- this.resources.accessKeyId = this.resources.accessKeyId || process.env["AWS_ACCESS_KEY_ID"];
33
- this.resources.secretAccessKey = this.resources.secretAccessKey || process.env["AWS_SECRET_ACCESS_KEY"];
34
- this.resources.sessionToken = this.resources.sessionToken || process.env["AWS_SESSION_TOKEN"];
35
- this.resources.region = this.resources.region || process.env["AWS_DEFAULT_REGION"] || "us-east-1";
36
- this.resources.endpoints = this.resources.endpoints || {};
37
- this.resources.Tags = this.resources.Tags || {};
38
- if (!Array.isArray(this.resources.Tags)) {
39
- this.resources.Tags = this.transformMapTagsToArray(this.resources.Tags);
40
- }
41
- }
42
- /**
43
- * Return AWS region
44
- */
45
- getRegion() {
46
- return this.resources.region;
47
- }
48
- /**
49
- * Return the current AWS Identity used
50
- */
51
- async getAWSIdentity() {
52
- const sts = new STS({
53
- endpoint: this.resources.endpoints.STS
54
- });
55
- return sts.getCallerIdentity({});
56
- }
57
- /**
58
- * Return the default VPC for the current region
59
- */
60
- async getDefaultVpc() {
61
- const defaultVpc = {
62
- Id: "",
63
- Subnets: []
64
- };
65
- const ec2 = new EC2({
66
- endpoint: this.resources.endpoints.EC2
67
- });
68
- const res = await ec2.describeVpcs({});
69
- for (const i in res.Vpcs) {
70
- if (res.Vpcs[i].IsDefault) {
71
- defaultVpc.Id = res.Vpcs[i].VpcId;
72
- break;
73
- }
74
- }
75
- if (defaultVpc.Id === "") {
76
- return undefined;
77
- }
78
- const vpcFilter = {
79
- Filters: [
80
- {
81
- Name: "vpc-id",
82
- Values: [defaultVpc.Id]
83
- }
84
- ]
85
- };
86
- const res2 = await ec2.describeSubnets(vpcFilter);
87
- for (const i in res2.Subnets) {
88
- defaultVpc.Subnets.push(res2.Subnets[i]);
89
- }
90
- return defaultVpc;
91
- }
92
- /**
93
- * Generate a MD5 in hex
94
- * @param str to hash
95
- */
96
- md5(str) {
97
- return this.hash(str, "md5", "hex");
98
- }
99
- /**
100
- * Hash the string
101
- *
102
- * @param str to hash
103
- * @param type of hash
104
- * @param format hex or b64
105
- */
106
- hash(str, type = "md5", format = "hex") {
107
- return crypto.createHash(type).update(str).digest(format);
108
- }
109
- /**
110
- * Replace / by _ as theses ID are not allowed in AWS
111
- *
112
- * @param id
113
- */
114
- _replaceForAWS(id) {
115
- return id.replace(/\//g, "_");
116
- }
117
- /**
118
- * Get a certificate or create it
119
- *
120
- * @param domain to get certificate for
121
- * @param region
122
- */
123
- async getCertificate(domain, region = undefined) {
124
- if (domain.endsWith(".")) {
125
- domain = domain.substring(0, domain.length - 1);
126
- }
127
- const acm = new ACM({
128
- endpoint: this.resources.endpoints.ACM,
129
- region
130
- });
131
- const params = {};
132
- let res;
133
- let certificate;
134
- do {
135
- res = await acm.listCertificates(params);
136
- certificate = res.CertificateSummaryList.filter(cert => cert.DomainName === domain).pop();
137
- params.NextToken = res.NextToken;
138
- } while (!certificate && res.NextToken);
139
- // We did not find the certificate need to create one
140
- if (!certificate) {
141
- const zone = await this.getZoneForDomainName(domain);
142
- if (!zone) {
143
- throw new WebdaError.CodeError("ROUTE53_NOTFOUND", "Cannot create certificate as Route53 Zone was not found");
144
- }
145
- this.logger.log("INFO", "Creating a certificate for", domain);
146
- certificate = await this.doCreateCertificate(domain, zone);
147
- }
148
- return certificate;
149
- }
150
- /**
151
- * Get the closest zone to the domain
152
- *
153
- * @param domain to get zone for
154
- */
155
- async getZoneForDomainName(domain) {
156
- return Route53Service.getZoneForDomainName(domain);
157
- }
158
- /**
159
- * Transform a tag map into a tag array
160
- *
161
- * @param tags
162
- */
163
- transformMapTagsToArray(tags) {
164
- if (Array.isArray(tags)) {
165
- return tags;
166
- }
167
- const res = [];
168
- for (const i in tags) {
169
- res.push({ Key: i, Value: tags[i] });
170
- }
171
- return res;
172
- }
173
- /**
174
- * Transform a tag array into a tag map
175
- *
176
- * @param tags
177
- */
178
- transformArrayTagsToMap(tags) {
179
- if (!Array.isArray(tags)) {
180
- return tags;
181
- }
182
- const res = {};
183
- tags.forEach(t => (res[t.Key] = t.Value));
184
- return res;
185
- }
186
- /**
187
- * Take this.resources[key].Tags and add all remaining Tags from this.resources.Tags
188
- *
189
- * @param key of the resources to add
190
- */
191
- getDefaultTags(key = undefined) {
192
- let Tags;
193
- if (typeof key === "string") {
194
- Tags = this.resources[key] ? this.transformMapTagsToArray(this.resources[key].Tags) || [] : [];
195
- }
196
- else {
197
- Tags = this.transformMapTagsToArray(key) || [];
198
- }
199
- if (this.resources.Tags.length) {
200
- const TagKeys = Tags.map(t => t.Key);
201
- Tags.push(...this.resources.Tags.filter(t => TagKeys.indexOf(t.Key) < 0));
202
- }
203
- return Tags;
204
- }
205
- /**
206
- * Take this.resources[key].Tags and add all remaining Tags from this.resources.Tags
207
- *
208
- * @param key of the resources to add
209
- */
210
- getDefaultTagsAsMap(key = undefined) {
211
- return this.transformArrayTagsToMap(this.getDefaultTags(key));
212
- }
213
- /**
214
- * Return the S3 Tagging string
215
- * @param key of the resources to add
216
- */
217
- getDefaultTagsAsS3Tagging(key = undefined) {
218
- return this.getDefaultTags(key)
219
- .map(tag => `${encodeURIComponent(tag.Key)}=${encodeURIComponent(tag.Value)}`)
220
- .join("&");
221
- }
222
- async waitFor(callback, retries, title, delay) {
223
- return WaitFor(callback, retries, title, this.logger, WaitLinearDelay(delay));
224
- }
225
- /**
226
- * Create a certificate for a domain
227
- * Will use Route 53 to do the validation
228
- *
229
- * @param domain to create the certificate for
230
- * @param zone
231
- */
232
- async doCreateCertificate(domain, zone) {
233
- const acm = new ACM({
234
- endpoint: this.resources.endpoints.S3
235
- });
236
- if (domain.endsWith(".")) {
237
- domain = domain.substring(0, domain.length - 1);
238
- }
239
- const params = {
240
- DomainName: domain,
241
- DomainValidationOptions: [
242
- {
243
- DomainName: domain,
244
- ValidationDomain: domain
245
- }
246
- ],
247
- ValidationMethod: "DNS",
248
- IdempotencyToken: "Webda_" + this.md5(domain).substring(0, 26)
249
- };
250
- const certificate = await acm.requestCertificate(params);
251
- let cert = await this.waitFor(async (resolve) => {
252
- const res = await acm.describeCertificate({
253
- CertificateArn: certificate.CertificateArn
254
- });
255
- if (res.Certificate.DomainValidationOptions && res.Certificate.DomainValidationOptions[0].ResourceRecord) {
256
- resolve(res.Certificate);
257
- return true;
258
- }
259
- return false;
260
- }, 5, "Waiting for certificate challenge", 10000);
261
- if (cert === undefined || cert.Status === "FAILED") {
262
- throw new WebdaError.CodeError("ACM_VALIDATION_FAILED", "Certificate validation has failed");
263
- }
264
- if (cert.Status === "PENDING_VALIDATION") {
265
- // On create need to wait
266
- const record = cert.DomainValidationOptions[0].ResourceRecord;
267
- this.logger.log("INFO", "Need to validate certificate", cert.CertificateArn);
268
- await this.createDNSEntry(record.Name, "CNAME", record.Value, zone);
269
- // Waiting for certificate validation
270
- cert = await this.waitFor(async (resolve, reject) => {
271
- const res = await acm.describeCertificate({
272
- CertificateArn: cert.CertificateArn
273
- });
274
- if (res.Certificate.Status === "ISSUED") {
275
- resolve(res.Certificate);
276
- return true;
277
- }
278
- if (res.Certificate.Status !== "PENDING_VALIDATION") {
279
- reject(res.Certificate);
280
- return true;
281
- }
282
- }, 10, "Waiting for certificate validation", 60000);
283
- }
284
- //
285
- return cert;
286
- }
287
- /**
288
- * Create DNS entry
289
- *
290
- * @param domain to create
291
- * @param type of DNS
292
- * @param value the value of the record
293
- * @param targetZone
294
- */
295
- async createDNSEntry(domain, type, value, targetZone = undefined) {
296
- this.logger.log("INFO", `Creating DNS entry ${domain} ${type} ${value}`);
297
- const r53 = new Route53({
298
- endpoint: this.resources.endpoints.S3
299
- });
300
- if (!domain.endsWith(".")) {
301
- domain = domain + ".";
302
- }
303
- if (!targetZone) {
304
- targetZone = await this.getZoneForDomainName(domain);
305
- }
306
- if (!targetZone) {
307
- throw Error("Domain is not handled on AWS");
308
- }
309
- await r53.changeResourceRecordSets({
310
- HostedZoneId: targetZone.Id,
311
- ChangeBatch: {
312
- Changes: [
313
- {
314
- Action: "UPSERT",
315
- ResourceRecordSet: {
316
- Name: domain,
317
- ResourceRecords: [
318
- {
319
- Value: value
320
- }
321
- ],
322
- TTL: 360,
323
- Type: type
324
- }
325
- }
326
- ],
327
- Comment: "webda-automated-deploiement"
328
- }
329
- });
330
- }
331
- getARNPolicy(accountId, region) {
332
- return [
333
- {
334
- Sid: "WebdaLog",
335
- Effect: "Allow",
336
- Action: ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents"],
337
- Resource: ["arn:aws:logs:" + region + ":" + accountId + ":*"]
338
- }
339
- ];
340
- }
341
- /**
342
- * Generate the `PolicyDocument`
343
- *
344
- * It will browse all services for a method `getARNPolicy`
345
- * Allowing you to write some specific Service or Bean that
346
- * requires specific AWS permissions
347
- */
348
- async getPolicyDocument(additionalStatements = []) {
349
- const me = await this.getAWSIdentity();
350
- const services = this.manager.getWebda().getServices();
351
- const statements = [];
352
- // Build policy
353
- for (const i in services) {
354
- if ("getARNPolicy" in services[i]) {
355
- // Update to match recuring policy - might need to split if policy too big
356
- const res = services[i].getARNPolicy(me.Account, this.getRegion());
357
- if (Array.isArray(res)) {
358
- statements.push(...res);
359
- }
360
- else {
361
- statements.push(res);
362
- }
363
- }
364
- }
365
- statements.push(...this.getARNPolicy(me.Account, this.getRegion()));
366
- const policyDocument = {
367
- Version: "2012-10-17",
368
- Statement: [...statements, ...additionalStatements]
369
- };
370
- // @ts-ignore
371
- return IamPolicyOptimizer.default?.reducePolicyObject(policyDocument);
372
- }
373
- /**
374
- * Create a bucket if it does not exist
375
- *
376
- * @param bucket to create
377
- */
378
- async createBucket(Bucket) {
379
- const s3 = new S3({
380
- endpoint: this.resources.endpoints.S3,
381
- forcePathStyle: this.resources.endpoints.S3 !== undefined
382
- });
383
- try {
384
- await s3.headBucket({
385
- Bucket
386
- });
387
- }
388
- catch (err) {
389
- if (err.name === "Forbidden") {
390
- this.logger.log("ERROR", "S3 bucket already exists in another account or you do not have permissions on it");
391
- }
392
- else if (err instanceof NotFound) {
393
- this.logger.log("INFO", "\tCreating S3 Bucket", Bucket);
394
- // Setup www permission on it
395
- await s3.createBucket({
396
- Bucket: Bucket
397
- });
398
- const Tags = this.getDefaultTags([]);
399
- if (Tags.length) {
400
- await s3.putBucketTagging({
401
- Bucket,
402
- Tagging: {
403
- TagSet: Tags
404
- }
405
- });
406
- }
407
- }
408
- }
409
- }
410
- /**
411
- * Send a full folder (recursive) on bucket
412
- *
413
- * @param bucket to send data to
414
- * @param folder path to local folder to send
415
- * @param prefix prefix on the bucket
416
- */
417
- async putFolderOnBucket(bucket, folder, prefix = "") {
418
- const absFolder = path.resolve(folder);
419
- const files = globSync(`${absFolder}/**/*`);
420
- await this.putFilesOnBucket(bucket,
421
- // Replace \ by / for Windows system
422
- files.map(f => ({
423
- key: `${prefix}${path.relative(absFolder, f).replace(/\\/g, "/")}`,
424
- src: f
425
- })));
426
- }
427
- /**
428
- * Find the common prefix between two strings
429
- *
430
- * Example
431
- * ```
432
- * commonPrefix("/test/plop1", "/templates/") => "/te"
433
- * ```
434
- *
435
- *
436
- * @param str1 to compare
437
- * @param str2 to compare
438
- */
439
- commonPrefix(str1, str2) {
440
- let res = "";
441
- let i = 0;
442
- while (i < str1.length && i < str2.length && str1[i] === str2[i]) {
443
- res += str1[i];
444
- i++;
445
- }
446
- return res;
447
- }
448
- /**
449
- * Add files to a bucket
450
- *
451
- * It uses hash and ETag to avoid uploading files already present
452
- *
453
- *
454
- * The files src can be either:
455
- * - a string representing the local path
456
- * - a Buffer with the dynamic content
457
- *
458
- * @param bucket to send bucket
459
- * @param files to send
460
- */
461
- async putFilesOnBucket(bucket, files) {
462
- const s3 = new S3({
463
- endpoint: this.resources.endpoints.S3,
464
- forcePathStyle: this.resources.endpoints.S3 !== undefined
465
- });
466
- if (!files.length) {
467
- return;
468
- }
469
- files.forEach(f => {
470
- if (f.src === undefined) {
471
- throw Error("Should have src and key defined");
472
- }
473
- else if (!f.key) {
474
- f.key = path.relative(process.cwd(), f.src);
475
- }
476
- });
477
- // Create the bucket
478
- await this.createBucket(bucket);
479
- // Retrieve current files to only upload the one we do not have
480
- const currentFiles = {};
481
- const Prefix = files.reduce((prev, cur) => this.commonPrefix(prev, cur.key), files[0].key);
482
- const Params = {
483
- Bucket: bucket,
484
- Prefix,
485
- MaxKeys: 1000,
486
- ContinuationToken: undefined
487
- };
488
- do {
489
- const res = await s3.listObjectsV2(Params);
490
- res.Contents.forEach(obj => {
491
- currentFiles[obj.Key] = obj;
492
- });
493
- Params.ContinuationToken = res.NextContinuationToken;
494
- } while (Params.ContinuationToken);
495
- // Should implement multithread here - cleaning too
496
- const uuid = randomUUID();
497
- let fullSize = 0;
498
- files = files.filter(info => {
499
- if (typeof info.src === "string") {
500
- const s3obj = currentFiles[info.key];
501
- const fd = fs.openSync(info.src, "r");
502
- const stat = fs.fstatSync(fd);
503
- if (s3obj && stat.size === s3obj.Size) {
504
- const md5 = `"${this.hash(fs.readFileSync(info.src).toString(), "md5", "hex")}"`;
505
- if (md5 === s3obj.ETag) {
506
- this.logger.log("TRACE", "Skipping upload of", info.src, "file with same hash already on bucket");
507
- return false;
508
- }
509
- }
510
- fullSize += stat.size;
511
- }
512
- return true;
513
- });
514
- this.logger.logProgressStart(uuid, files.length, "Uploading to S3 bucket " + bucket);
515
- await bluebird.map(files, async (info) => {
516
- // Need to have mimetype to serve the content correctly
517
- const mimetype = info.mimetype || mime.contentType(path.extname(info.key)) || "application/octet-stream";
518
- // use of upload and get size length
519
- await s3.putObject({
520
- Bucket: bucket,
521
- Body: typeof info.src === "string" ? fs.createReadStream(info.src) : info.src,
522
- Key: info.key,
523
- ContentType: mimetype,
524
- Tagging: this.getDefaultTagsAsS3Tagging()
525
- });
526
- this.logger.logProgressIncrement(1, uuid);
527
- this.logger.log("INFO", "Uploaded", typeof info.src === "string" ? info.src : "<dynamicContent>", "to", `s3://${bucket}/${info.key}`, "(" + mimetype + ")");
528
- }, { concurrency: 5 });
529
- }
530
- }
531
- __decorate([
532
- Cache()
533
- ], AWSDeployer.prototype, "getAWSIdentity", null);
534
- __decorate([
535
- Cache()
536
- ], AWSDeployer.prototype, "getDefaultVpc", null);
537
- __decorate([
538
- Cache()
539
- ], AWSDeployer.prototype, "getZoneForDomainName", null);
540
- __decorate([
541
- Cache()
542
- ], AWSDeployer.prototype, "getPolicyDocument", null);
543
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/deployers/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import * as sinon from "sinon";
2
- import { AWSDeployer } from "./index.js";
3
- export interface Mockable {
4
- mocks: {
5
- [key: string]: sinon.SinonStub;
6
- };
7
- }
8
- export declare function MockAWSDeployerMethods(service: AWSDeployer<any>, test: Mockable): void;
9
- //# sourceMappingURL=index.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../src/deployers/index.spec.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAwB,MAAM,SAAS,CAAC;AAW5D,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;KAAE,CAAC;CAC3C;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,QAsB/E"}