UNPKG

4.71 kBSource Map (JSON)View Raw
1{"version":3,"file":"s3Publisher.js","sourceRoot":"","sources":["../src/s3Publisher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,AAAO,AAA+D,AAAM,AAAoB;;;;;;;;;;AAChG,AAAO,AAAE,AAAyB,AAAE,AAAG,AAAE,AAAM,AAAc;;;;;;;;;;AAG7D,AAAO,AAAE,AAAe,AAAE,AAAM,AAAmB,AAEnD,AAAM,AAAC,AAAO;;;;;;;;;;;;MAAmB,oBAAQ,AAAe;AAGtD,cAAY,AAAuB,SAAmB,AAAe;AACnE,AAAK,UAAC,AAAO,SAAE,AAAI,AAAC;AADgC,SAAI,OAAJ,AAAI,AAAW;AAF5D,SAAY,eAAG,AAAI,AAI5B;AAAC;;AAED,AAAM,AAAC,AAAK,SAAC,AAAsB,uBAAC,AAAkB,SAAE,AAAoC,uBAAE,AAAsB;;AAClH,YAAM,AAAM,SAAG,AAAO,QAAC,AAAM;;AAC7B,UAAI,AAAM,UAAI,AAAI,MAAE;AAClB,cAAM,KAAI,AAAyB,AAAC,0CAAmD,AAAC;AACzF;;AAED,UAAI,AAAO,QAAC,AAAQ,YAAI,AAAI,AAAI,QAAC,AAAM,OAAC,AAAQ,SAAC,AAAG,AAAC,QAAI,AAAO,QAAC,AAAM,UAAI,AAAI,AAAC,MAAE;AAChF,AAAyH;AACzH,cAAM,AAAE,UAAO,AAAE;AAAE,AAAgB,4BAAE,AAAI,AAAC,AAAC;AAAzB,SAAP;;AACX,YAAI;AACF,AAAO,kBAAC,AAAM,UAAI,SAAS,AAAiB;AAAE,AAAM,oBAAE,AAAM,AAAC,AAAC;AAAjB,WAArB,AAAE,EAAqC,AAAO,AAAE,AAAC,SAAxD,EAAyD,AAAkB;AAC7F,UACD,OAAO,AAAC,GAAE;AACR,cAAI,AAAa,eAAE;AACjB,kBAAM,AAAC;AACR,iBACI;AACH,AAAG,+BAAC,AAAI,AAAC,8HAAyH,AAAC,CAAE,AAAC;AACvI;AACF;AACF;;AAED,UAAI,AAAO,QAAC,AAAO,WAAI,AAAI,QAAI,AAAqB,yBAAI,AAAI,MAAE;AAC5D,AAAO,gBAAC,AAAO,UAAG,AAAqB;AACxC,AACH;;AAAC;;AAES,AAAyB;AACjC,UAAM,AAAa,gBAAG,AAAK,MAAC,AAAyB,AAAE;AACvD,UAAM,AAAQ,WAAG,AAAI,KAAC,AAAI,KAAC,AAAQ;;AACnC,QAAI,AAAQ,YAAI,AAAI,MAAE;AACpB,AAAa,oBAAC,AAAQ,WAAG,AAAQ;AACjC,AAAa,oBAAC,AAAgB,mBAAG,AAAI;AACtC;;AACD,WAAO,AAAa,AACtB;AAAC;;AAES,AAAa;AACrB,WAAO,AAAI,KAAC,AAAI,KAAC,AAAO,AAC1B;AAAC;;AAES,AAAkB,qBAAC,AAA0C;AACrE,AAAK,UAAC,AAAkB,mBAAC,AAAS,AAAC;;AAEnC,QAAI,AAAI,KAAC,AAAI,KAAC,AAAY,gBAAI,AAAI,MAAE;AAClC,AAAS,gBAAC,AAAY,eAAG,AAAI,KAAC,AAAI,KAAC,AAA4B;AAChE;;AAED,QAAI,AAAI,KAAC,AAAI,KAAC,AAAU,cAAI,AAAI,MAAE;AAChC,AAAS,gBAAC,AAAoB,uBAAG,AAAI,KAAC,AAAI,KAAC,AAAkC;AAC9E,AACH;AAAC;;AAED,AAAQ;AACN,UAAM,AAAM,SAAG,AAAK,MAAC,AAAQ,AAAE;AAC/B,UAAM,AAAQ,WAAG,AAAI,KAAC,AAAI,KAAC,AAAQ;;AACnC,QAAI,AAAQ,YAAI,AAAI,MAAE;AACpB,aAAO,AAAM,OAAC,AAAS,UAAC,AAAC,GAAE,AAAM,OAAC,AAAM,SAAG,AAAC,AAAC,AAAG,oBAAe,AAAQ,QAAG;AAC3E;;AACD,WAAO,AAAM,AACf;AAAC,AACF","sourcesContent":["import S3, { ClientConfiguration, ServerSideEncryption, StorageClass } from \"aws-sdk/clients/s3\"\nimport { InvalidConfigurationError, log } from \"builder-util\"\nimport { S3Options } from \"builder-util-runtime\"\nimport { PublishContext } from \"electron-publish\"\nimport { BaseS3Publisher } from \"./BaseS3Publisher\"\n\nexport default class S3Publisher extends BaseS3Publisher {\n readonly providerName = \"S3\"\n\n constructor(context: PublishContext, private readonly info: S3Options) {\n super(context, info)\n }\n\n static async checkAndResolveOptions(options: S3Options, channelFromAppVersion: string | null, errorIfCannot: boolean) {\n const bucket = options.bucket\n if (bucket == null) {\n throw new InvalidConfigurationError(`Please specify \"bucket\" for \"s3\" publish provider`)\n }\n\n if (options.endpoint == null && (bucket.includes(\".\") && options.region == null)) {\n // on dotted bucket names, we need to use a path-based endpoint URL. Path-based endpoint URLs need to include the region.\n const s3 = new S3({signatureVersion: \"v4\"})\n try {\n options.region = (await s3.getBucketLocation({Bucket: bucket}).promise()).LocationConstraint\n }\n catch (e) {\n if (errorIfCannot) {\n throw e\n }\n else {\n log.warn(`cannot compute region for bucket (required because on dotted bucket names, we need to use a path-based endpoint URL): ${e}`)\n }\n }\n }\n\n if (options.channel == null && channelFromAppVersion != null) {\n options.channel = channelFromAppVersion\n }\n }\n\n protected createClientConfiguration(): ClientConfiguration {\n const configuration = super.createClientConfiguration()\n const endpoint = this.info.endpoint\n if (endpoint != null) {\n configuration.endpoint = endpoint\n configuration.s3ForcePathStyle = true\n }\n return configuration\n }\n\n protected getBucketName(): string {\n return this.info.bucket!\n }\n\n protected configureS3Options(s3Options: S3.CreateMultipartUploadRequest): void {\n super.configureS3Options(s3Options)\n\n if (this.info.storageClass != null) {\n s3Options.StorageClass = this.info.storageClass as StorageClass\n }\n\n if (this.info.encryption != null) {\n s3Options.ServerSideEncryption = this.info.encryption as ServerSideEncryption\n }\n }\n\n toString() {\n const result = super.toString()\n const endpoint = this.info.endpoint\n if (endpoint != null) {\n return result.substring(0, result.length - 1) + `, endpoint: ${endpoint})`\n }\n return result\n }\n}\n"]}