{"_id":"@casperbiering/semantic-release-s3-upload-as-variable","_rev":"3-b880a481fe5bd157b7b960643d414d2e","time":{"created":"2022-07-12T12:25:25.660Z","1.0.0":"2022-07-12T11:16:16.134Z","modified":"2022-08-11T23:39:58.732Z","1.0.1":"2022-07-12T12:25:25.906Z","1.1.0":"2022-08-11T23:39:58.628Z"},"name":"@casperbiering/semantic-release-s3-upload-as-variable","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.1":{"name":"@casperbiering/semantic-release-s3-upload-as-variable","version":"1.0.1","description":"semantic-release plugin to upload zip to S3 and patch variables to point to it","main":"index.js","publishConfig":{"access":"public"},"homepage":"https://github.com/casperbiering/semantic-release-s3-upload-as-variable#readme","repository":{"url":"git+https://github.com/casperbiering/semantic-release-s3-upload-as-variable.git"},"bugs":{"url":"https://github.com/casperbiering/semantic-release-s3-upload-as-variable/issues"},"scripts":{"lint":"npx eslint .","lint-fix":"npx eslint --fix .","test":"npx jest tests"},"author":{"name":"Casper Biering","email":"casper@biering.dk"},"license":"MIT","dependencies":{"@aws-sdk/client-s3":"^3.121.0","@aws-sdk/client-sts":"^3.127.0","@semantic-release/error":"^3.0.0","aggregate-error":"^3.1.0","ajv":"^8.11.0","escape-string-regexp":"^4.0.0","glob":"^8.0.3","lodash":"^4.17.21"},"devDependencies":{"@semantic-release/changelog":"^6.0.1","@semantic-release/git":"^10.0.1","conventional-changelog-conventionalcommits":"^5.0.0","eslint":"^8.19.0","eslint-config-airbnb":"^19.0.4","eslint-config-prettier":"^8.5.0","eslint-plugin-jest":"^26.5.3","eslint-plugin-prettier":"^4.2.1","jest":"^28.1.2","prettier":"^2.7.1","semantic-release":"^19.0.3"},"gitHead":"8781a1f3e13cae084e81e8f132ccb016aff615bb","_id":"@casperbiering/semantic-release-s3-upload-as-variable@1.0.1","_nodeVersion":"16.16.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-RqUCiVCrE2wG1fPgJr6cXyc4PiApupwkEMrpq7fBLjNXG7NH3wYD37Xnf1DNXIdxYc3a83Xeg07cUF8lzaxh5A==","shasum":"43bb5c74e8f958d4a90a47d77e0369a318fa554f","tarball":"https://registry.npmjs.org/@casperbiering/semantic-release-s3-upload-as-variable/-/semantic-release-s3-upload-as-variable-1.0.1.tgz","fileCount":6,"unpackedSize":14160,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCd0iGnYgUbsaSuaUmbSVV88mc2rIRPpHGDmzepajkFmgIhALxbuT2cEbc8xglsj4feZ8L8Tb0tCGCQC7pIS6uf6QmS"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJizWg1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpfvw/9Gn4snPuEhcSYz0VAEdRIKV/BjPobaCc/RW1NKOkaOSmqkTsR\r\ngQbDssHU3LRAierrgmIN8ioQxFKJQ/LkrMW4MGgVw2yB4NHSnT9/9/ehEpK3\r\nUP9JJjaty50STdyonjSmjxfwTNBg/5bK8SFU8QM/El8moZALMrPrXya3k2be\r\nyx4LkytqozwE5AKh86+7t5/q3GU0L7QwncE95IfwDJ2lryRssnhabNw+hrSH\r\ncwUO4xpMr2xQRRhniM6/Tx3G4xwt/WxkPhb4qpQXvGeQkAlezE96fiIPa62C\r\nrKbKpRzdB0/R/rwHZr9jAFdvkTWyrmK480jjeigNRoE5oAGXeK4vZdE1GDW1\r\neOohn2rMX6Y5bcSCVu6/UoOm7ZpA8q5ol7v0hwjkvBsFoCPsNx7oQW7PmiO3\r\nBGoy3x3oG9oMjbX+Gs/QGKJUvjV5m1eZmqgs5pt0snN2kYPGzpjni9QYek7X\r\nRBV7lYlwcFxc4kN5aJ8UCaf0TzzkN2/2RSo3nqCeYVMGxCQNH9Ysx9KpPmdU\r\nHLeiNv/Sp+xXpM7J0LGArsWO7kIrsNpf8nAQLNK7Sh/w7ZpQB14z6pk/qaqC\r\nj5SVElUZwLEVkTMBC7efDaVvW4drGxBpOkYBCU+Wiu8h0EYKKizx0NZrh/EJ\r\nm9mI+WELsH7WAJBuphzf6d8NDmMkyj/LKnU=\r\n=hWmb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"casperbiering","email":"casper@biering.dk"},"directories":{},"maintainers":[{"name":"casperbiering","email":"casper@biering.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/semantic-release-s3-upload-as-variable_1.0.1_1657628725715_0.038251314723820595"},"_hasShrinkwrap":false},"1.1.0":{"name":"@casperbiering/semantic-release-s3-upload-as-variable","version":"1.1.0","description":"semantic-release plugin to upload zip to S3 and patch variables to point to it","main":"index.js","publishConfig":{"access":"public"},"homepage":"https://github.com/casperbiering/semantic-release-s3-upload-as-variable#readme","repository":{"url":"git+https://github.com/casperbiering/semantic-release-s3-upload-as-variable.git"},"bugs":{"url":"https://github.com/casperbiering/semantic-release-s3-upload-as-variable/issues"},"scripts":{"lint":"npx eslint .","lint-fix":"npx eslint --fix .","test":"npx jest tests"},"author":{"name":"Casper Biering","email":"casper@biering.dk"},"license":"MIT","dependencies":{"@aws-sdk/client-s3":"^3.121.0","@aws-sdk/client-sts":"^3.127.0","@semantic-release/error":"^3.0.0","aggregate-error":"^3.1.0","ajv":"^8.11.0","escape-string-regexp":"^4.0.0","fast-glob":"^3.2.11","lodash":"^4.17.21"},"devDependencies":{"@semantic-release/changelog":"^6.0.1","@semantic-release/git":"^10.0.1","aws-sdk-client-mock":"^1.0.0","conventional-changelog-conventionalcommits":"^5.0.0","eslint":"^8.19.0","eslint-config-airbnb":"^19.0.4","eslint-config-prettier":"^8.5.0","eslint-plugin-jest":"^26.8.2","eslint-plugin-prettier":"^4.2.1","jest":"^28.1.2","mock-fs":"^5.1.4","prettier":"^2.7.1","semantic-release":"^19.0.3"},"gitHead":"c9f64e78a4a2cb3f3d887563e3fced215d851943","_id":"@casperbiering/semantic-release-s3-upload-as-variable@1.1.0","_nodeVersion":"16.16.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-dmPVPRg6/+45OyH9cBzj4e6XLsFhAm/YtscnB8kSfaDar58bci7HeRjSeX5Odr9ziSqKyWVQG9XPn8VNTCzKZA==","shasum":"cd091034303f43cfadb0efc9daa8c51787ce9065","tarball":"https://registry.npmjs.org/@casperbiering/semantic-release-s3-upload-as-variable/-/semantic-release-s3-upload-as-variable-1.1.0.tgz","fileCount":6,"unpackedSize":14201,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHRAxvjVlomMu5FMwrb9khjq8wTQLD2x2l5qjP2ud7e2AiEAq7c4AyitOc7AGPzrlle+bF/IU/T5NN/ABmNvDD7dKoo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9ZNOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoLchAAlP5cNZAwPNNNYyxD5Fyr+5cmy90goOgDlpuF1u0PfUbc/RSH\r\ni6KUk8xerDJafyZ4tp86c56Erc5xl4iTwjFVXMrI8CxLW8TQ/lPH5OVIKQxf\r\nwqKf2f2w9ykeBDv8hkZPDumSqjezw2u5WNarw2DhtzEXsIzHgxArgxTqF7kT\r\nP1So3MBtxDQxL5DY3liF2AqygjGEMBRRkDUUs8bzRNbumJUc6HBFXedQPg3m\r\nHyq8WqG1wICkgR8CmS3oTb1WyloPKwtjuvxwcqfKkq1uxLYCSkUJk3prlAhC\r\nIehUQny7I/mRRcw99oLJJg57VQToFZ5wX2lzVOMOc1qzW3xypfg6WnFfd2iu\r\njLhlfhTAFfvZrFdT2RiaKQ8TlpUzaA7ef+wHE7n//eVwBrn9OBQb8w/W2QCH\r\ngBFAB4zZ3US8GonEA//ZxRuAvuqnRZawSSVm6LaVwyh1mSbJwrecJaWkXV4C\r\nouU6mPOWcaE+f9Bwu20mr0YvnotCZXWrY2TE46vm1NAw2lnHW+pZs1fjS1pN\r\ndzQoQhPnMQw4XbvwMnRVq8JzG1gbUNvPTzFtKW/9nqcii6nttsP0JtN/ZrPA\r\nEC5zuDI0DraNpOxuIUHQ+Sx4o3Z7jxA70vZnKqyWxhBQ5/UfZRQITKdJD8Aa\r\n/HJGLOJAGyyxP/8axA+kqeYHdPm+UK3jbh0=\r\n=iTuc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"casperbiering","email":"casper@biering.dk"},"directories":{},"maintainers":[{"name":"casperbiering","email":"casper@biering.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/semantic-release-s3-upload-as-variable_1.1.0_1660261198428_0.6661916050187489"},"_hasShrinkwrap":false}},"maintainers":[{"name":"casperbiering","email":"casper@biering.dk"}],"description":"semantic-release plugin to upload zip to S3 and patch variables to point to it","homepage":"https://github.com/casperbiering/semantic-release-s3-upload-as-variable#readme","repository":{"url":"git+https://github.com/casperbiering/semantic-release-s3-upload-as-variable.git"},"author":{"name":"Casper Biering","email":"casper@biering.dk"},"bugs":{"url":"https://github.com/casperbiering/semantic-release-s3-upload-as-variable/issues"},"license":"MIT","readme":"# semantic-release-s3-upload-as-variable\n\nThis is a plugin for _semantic-release_. It uploads a `sourceFile` to S3 and then patches variables in your sourcecode. This may be used\n\n[![npm latest version](https://img.shields.io/npm/v/@casperbiering/semantic-release-s3-upload-as-variable/latest.svg)](https://www.npmjs.com/package/@casperbiering/semantic-release-s3-upload-as-variable)\n\n\n| Step               | Description |\n|--------------------|-------------|\n| `verifyConditions` | Verify the presence of AWS identity via environment variables, and that variable names are unique. |\n| `prepare`          | Uploads the `sourceFile` to S3 and then patches variables in your sourcecode. |\n\n## Install\n\n```bash\n$ npm install @casperbiering/semantic-release-s3-upload-as-variable -D\n```\n\n## Usage\n\nThe plugin can be configured in the [**semantic-release** configuration file](https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#configuration):\n\n```json\n{\n  \"plugins\": [\n    \"@semantic-release/commit-analyzer\",\n    \"@semantic-release/release-notes-generator\",\n    [\n      \"@casperbiering/semantic-release-s3-upload-as-variable\",\n      {\n        \"destinations\": [\n          {\n            \"awsAssumeRoleArn\": null,\n            \"awsAssumeRoleSessionName\": null,\n            \"awsAssumeRoleDuration\": null,\n            \"awsRegion\": \"eu-west-1\",\n            \"s3Bucket\": \"production-eu-bucket\",\n            \"s3Key\": \"builds/${nextRelease.version}.zip\",\n            \"s3LegalHold\": true,\n            \"replaceS3BucketVariable\": \"s3_bucket_eu\",\n            \"replaceS3KeyVariable\": \"s3_key_eu\",\n            \"replaceS3VersionIdVariable\": \"s3_object_version_eu\"\n          },\n          {\n            \"awsAssumeRoleArn\": null,\n            \"awsAssumeRoleSessionName\": null,\n            \"awsAssumeRoleDuration\": null,\n            \"awsRegion\": \"us-east-1\",\n            \"s3Bucket\": \"production-us-bucket\",\n            \"s3Key\": \"builds/${nextRelease.version}.zip\",\n            \"s3LegalHold\": true,\n            \"replaceS3BucketVariable\": \"s3_bucket_us\",\n            \"replaceS3KeyVariable\": \"s3_key_us\",\n            \"replaceS3VersionIdVariable\": \"s3_object_version_us\"\n          }\n        ],\n        \"fileGlobs\": [\n          \"terraform/**/semantic-release.auto.tfvars.json\"\n        ],\n        \"sourceFile\": \"output/package.zip\"\n      }\n    ],\n    [\n      \"@semantic-release/git\",\n      {\n        \"assets\": [\n          \"terraform/**/semantic-release.auto.tfvars.json\",\n        ]\n      }\n    ]\n  ]\n}\n```\n\n## Configuration\n\n\n### Environment variables\n\nThe plugin uses [AWS SDK for JavaScript v3](https://github.com/aws/aws-sdk-js-v3#readme) here are some examples of variables it supports:\n\n* `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`\n* `AWS_ROLE_ARN` and `AWS_WEB_IDENTITY_TOKEN_FILE`\n* `AWS_SHARED_CREDENTIALS_FILE`\n* `AWS_PROFILE`\n\n### Options\n\n| Options      | Description                                                                                                         | Default                                                                                                                          |\n|--------------|---------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|\n| `sourceFile` | (REQUIRED) Whether to publish the `npm` package to the registry. If `false` the `package.json` version will still be updated  | N/A |\n| `fileGlobs` | (REQUIRED) List of globs to find files that contains the variables to patch | N/A |\n| `destinations.*.awsAssumeRoleArn` | Assume different role for this destination | `null` |\n| `destinations.*.awsAssumeRoleSessionName` | SessionName for assuming different role | `semantic-release` |\n| `destinations.*.awsAssumeRoleDuration` | Duration for assuming different role | `900` |\n| `destinations.*.awsRegion` | (REQUIRED) AWS Region | N/A |\n| `destinations.*.s3Bucket` | (REQUIRED) AWS Region | N/A |\n| `destinations.*.s3Key` | (REQUIRED) Key for sourceFile. It's templateable with `branch` name and `nextRelease` | N/A |\n| `destinations.*.s3LegalHold` | Set to `true` to turn 'ON' legal hold for object | `false` |\n| `destinations.*.replaceS3BucketVariable` | (REQUIRED) Variable to patch this destinations S3 bucket name | N/A |\n| `destinations.*.replaceS3KeyVariable` | (REQUIRED) Variable to patch this destinations S3 key | N/A |\n| `destinations.*.replaceS3VersionIdVariable` | Variable to patch this destinations S3 Object Version Id. This is only supported if the bucket has enabled versioning. It's HIGHLY recommended though, since it's the only way to have immutability. | `null` |\n\n### Examples\n\nExample of an `semantic-release.auto.tfvars.json`:\n\n```json\n{\n  \"s3_bucket_eu\": \"production-eu-bucket\",\n  \"s3_key_eu\": \"builds/v1.0.0.zip\",\n  \"s3_object_version_eu\": \"zva1bXh1iNveYL7TBAg8UQstwLQpd.VI\",\n  \"s3_bucket_us\": \"production-us-bucket\",\n  \"s3_key_us\": \"builds/v1.0.0.zip\",\n  \"s3_object_version_us\": \"saiN1johzohDie8Va0FaC5AizuVoh2or\"\n}\n```\n","readmeFilename":"README.md"}