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