UNPKG

@1mill/sops

Version:

```bash npm install @1mill/sops ```

3 lines (2 loc) 3.56 kB
!function(e){"function"==typeof define&&define.amd?define(e):e()}(function(){var e="undefined"!=typeof Symbol?Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator")):"@@iterator";function n(e,t,i){if(!e.s){if(i instanceof r){if(!i.s)return void(i.o=n.bind(null,e,t));1&t&&(t=i.s),i=i.v}if(i&&i.then)return void i.then(n.bind(null,e,t),n.bind(null,e,2));e.s=t,e.v=i;var o=e.o;o&&o(e)}}var r=function(){function e(){}return e.prototype.then=function(r,t){var i=new e,o=this.s;if(o){var s=1&o?r:t;if(s){try{n(i,1,s(this.v))}catch(e){n(i,2,e)}return i}return this}return this.o=function(e){try{var o=e.v;1&e.s?n(i,1,r?r(o):o):t?n(i,1,t(o)):n(i,2,o)}catch(e){n(i,2,e)}},i},e}();function t(e){return e instanceof r&&1&e.s}var i=require("fs"),o=require("@aws-sdk/client-kms"),s=o.DecryptCommand,c=o.KMSClient,u=require("./fetchNodeEnv").fetchNodeEnv,f=require("./walkAndDecrypt").walkAndDecrypt;module.exports={Sops:function(){function o(e){var n=e.accessKeyId,r=void 0===n?u("MILL_SOPS_AWS_ACCESS_KEY_ID")||u("AWS_ACCESS_KEY_ID")||u("AWS_ACCESS_KEY"):n,t=e.endpoint,i=void 0===t?u("MILL_SOPS_AWS_ENDPOINT")||u("AWS_ENDPOINT"):t,o=e.file,s=void 0===o?u("MILL_SOPS_FILE")||"production"===u("NODE_ENV")?"prod.secrets.sops.json":"dev.secrets.sops.json":o,c=e.region,f=void 0===c?u("MILL_SOPS_AWS_REGION")||u("AWS_REGION"):c,d=e.secretAccessKey,h=void 0===d?u("MILL_SOPS_AWS_SECRET_ACCESS_KEY")||u("AWS_SECRET_ACCESS_KEY"):d,S=e.sessionToken,a=void 0===S?u("AWS_SESSION_TOKEN"):S;if(this.accessKeyId=r,!this.accessKeyId)throw new Error('AWS "accessKeyId" is required');if(this.region=f,!this.region)throw new Error('AWS "region" is required');if(this.secretAccessKey=h,!this.secretAccessKey)throw new Error('AWS "secretAccessKey" is required');if(this.sessionToken=a,this.endpoint=i,this.client=void 0,this.file=s,!this.file)throw new Error('SOPS "file" is required');this.secrets={}}var d=o.prototype;return d._buildSecrets=function(){try{var o,u=this,d=function(){u.secrets=f({tree:h,key:S})};if(0!==Object.keys(u.secrets).length)return Promise.resolve();void 0===u.client&&(u.client=new c({credentials:{accessKeyId:u.accessKeyId,secretAccessKey:u.secretAccessKey,sessionToken:u.sessionToken},endpoint:u.endpoint,region:u.region}));var h=JSON.parse(i.readFileSync(u.file,"utf-8").toString()),S=null,a=function(i,o,s){if("function"==typeof i[e]){var c,u,f,d=i[e]();if(function e(i){try{for(;!((c=d.next()).done||s&&s());)if((i=o(c.value))&&i.then){if(!t(i))return void i.then(e,f||(f=n.bind(null,u=new r,2)));i=i.v}u?n(u,1,i):u=i}catch(e){n(u||(u=new r),2,e)}}(),d.return){var h=function(e){try{c.done||d.return()}catch(e){}return e};if(u&&u.then)return u.then(h,function(e){throw h(e)});h()}return u}if(!("length"in i))throw new TypeError("Object is not iterable");for(var S=[],a=0;a<i.length;a++)S.push(i[a]);return function(e,i,o){var s,c,u=-1;return function f(d){try{for(;++u<e.length&&(!o||!o());)if((d=i(u))&&d.then){if(!t(d))return void d.then(f,c||(c=n.bind(null,s=new r,2)));d=d.v}s?n(s,1,d):s=d}catch(e){n(s||(s=new r),2,e)}}(),s}(S,function(e){return o(S[e])},s)}(h.sops.kms,function(e){if(e.enc){var n=new s({CiphertextBlob:Buffer.from(e.enc,"base64")});return Promise.resolve(u.client.send(n)).then(function(e){(S=e.Plaintext)&&(o=1)})}},function(){return o});return Promise.resolve(a&&a.then?a.then(d):d())}catch(e){return Promise.reject(e)}},d.decrypt=function(e){try{var n=this;return Promise.resolve(n._buildSecrets()).then(function(){return e?n.secrets[e]:n.secrets})}catch(e){return Promise.reject(e)}},o}()}}); //# sourceMappingURL=index.umd.js.map