UNPKG

sync-dotenv-slack

Version:
13 lines (10 loc) 11.1 kB
#!/usr/bin/env node parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"izsf":[function(require,module,exports) { "use strict";var e=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,o){function u(e){try{a(r.next(e))}catch(t){o(t)}}function s(e){try{a(r.throw(e))}catch(t){o(t)}}function a(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(u,s)}a((r=r.apply(e,t||[])).next())})},t=this&&this.__generator||function(e,t){var n,r,i,o,u={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return u.label++,{value:o[1],done:!1};case 5:u.label++,r=o[1],o=[0];continue;case 7:o=u.ops.pop(),u.trys.pop();continue;default:if(!(i=(i=u.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){u=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){u.label=o[1];break}if(6===o[0]&&u.label<i[1]){u.label=i[1],i=o;break}if(i&&u.label<i[2]){u.label=i[2],u.ops.push(o);break}i[2]&&u.ops.pop(),u.trys.pop();continue}o=t.call(e,u)}catch(s){o=[6,s],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});var r=require("@slack/web-api"),i=n(require("axios")),o=n(require("temp-write")),u=require("fs"),s=n(require("dotenv"));s.default.config();var a=process.env,c=a.ENVBOT_SLACK_BOT_TOKEN,l=a.ENVBOT_SLACK_USER_TOKEN,f=function(){function n(e){this.web=new r.WebClient(e.botToken),this.botToken=e.botToken,this.userToken=e.userToken}return n.prototype.channels=function(){return e(this,void 0,Promise,function(){return t(this,function(e){switch(e.label){case 0:return[4,this.web.conversations.list({exclude_archived:!0,types:"public_channel,private_channel"})];case 1:return[2,e.sent().channels]}})})},n.prototype.channel=function(n){return e(this,void 0,Promise,function(){return t(this,function(e){switch(e.label){case 0:return[4,this.channels()];case 1:return[2,e.sent().filter(function(e){return e.name===n})[0]]}})})},n.prototype.latestFile=function(n){return e(this,void 0,Promise,function(){var e;return t(this,function(t){switch(t.label){case 0:return[4,this.web.auth.test()];case 1:return e=t.sent().user_id,[4,this.web.files.list({channel:n.id,user:""+e,count:1,token:this.userToken})];case 2:return[2,t.sent().files[0]||null]}})})},n.prototype.fileContents=function(n){return e(this,void 0,void 0,function(){return t(this,function(e){switch(e.label){case 0:return[4,i.default.get(n.url_private,{headers:{Authorization:"Bearer "+this.botToken}})];case 1:return[2,e.sent().data]}})})},n.prototype.upload=function(n,r){return e(this,void 0,void 0,function(){var e=this;return t(this,function(t){return[2,o.default(n).then(function(t){var n=u.readFileSync(t);return e.web.files.upload({filename:Date.now().toString(),file:n,channels:r.name})})]})})},n}();exports.default=new f({botToken:c,userToken:l}); },{}],"N6d1":[function(require,module,exports) { "use strict";var e=this&&this.__assign||function(){return(e=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var s in t=arguments[n])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}).apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:!0});var t=require("fs");exports.getEnv=function(e){return void 0===e&&(e=".env"),t.readFileSync(e)},exports.keys=function(e){return Object.keys(e)},exports.values=function(e){return Object.values(e)},exports.envToString=function(e){return exports.keys(e).map(function(t){return t+"="+(e[t]||"")}).join("\r\n").replace(/(__\w+_\d+__=)/g,"")},exports.getFinalEnvObj=function(t,n){var r=e({},t),s=[],o=[];if(!n||!n.length)return exports.keys(r).forEach(function(e){r[e]=""}),r;n.map(function(e){return e.trim()}).forEach(function(e){e.startsWith("!")?s.push(e.slice(1)):o.push(e)});var i=exports.keys(r).filter(function(e){return!o.length||o.includes("*")?!s.includes(e):!s.includes(e)&&o.includes(e)});return exports.keys(r).forEach(function(e){i.includes(e)||(r[e]="")}),r},exports.valuesSyncCheck=function(e,t,n){var r=exports.getFinalEnvObj(e,n);return exports.keys(r).map(function(e){return r[e]===t[e]}).every(function(e){return!0===e})},exports.getEnvContents=function(e,t){return exports.envToString(exports.getFinalEnvObj(e,t))},exports.exit=function(e,t,n){e>0&&n&&t.fail(n),t.stop(),process.exit(e)}; },{}],"E7Wx":[function(require,module,exports) { "use strict";var e=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(a,u){function o(e){try{s(r.next(e))}catch(t){u(t)}}function i(e){try{s(r.throw(e))}catch(t){u(t)}}function s(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,i)}s((r=r.apply(e,t||[])).next())})},t=this&&this.__generator||function(e,t){var n,r,a,u,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return u={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function i(u){return function(i){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(i){u=[6,i],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,i])}}},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});var r=n(require("dotenv")),a=n(require("ora")),u=n(require("parse-dotenv")),o=n(require("temp-write")),i=n(require("./bot")),s=require("./utils");r.default.config(),exports.alertChannel=function(n){return e(void 0,void 0,void 0,function(){var e,r,c,l,f,h,d,p,v,y,b;return t(this,function(t){switch(t.label){case 0:e=a.default("one moment").start(),t.label=1;case 1:return t.trys.push([1,11,,12]),r=n.channel,c=n.include,r?(e.text="looking up "+r+" channel",[4,i.default.channel(r)]):[2,s.exit(1,e,"channel name is required")];case 2:return(l=t.sent())?(e.text="found "+r+" channel",f=u.default(),[4,i.default.latestFile(l)]):[2,s.exit(1,e,r+" channel not found. Perhaps you forgot to invite envbot to the private channel")];case 3:return(h=t.sent())&&h.url_private?(e.text="comparing envs",[4,i.default.fileContents(h)]):[3,8];case 4:return d=t.sent(),p=u.default(o.default.sync(d)),v=s.keys(f).every(function(e){return p.hasOwnProperty(e)}),y=v&&s.keys(f).length===s.keys(p).length,b=s.valuesSyncCheck(f,p,c),y&&b?[3,6]:(e.text="env not in sync",e.text="synchronizing env with slack channel",[4,i.default.upload(s.getEnvContents(f,c),l)]);case 5:return t.sent(),e.succeed("sync successful 🎉"),[3,7];case 6:e.info("env in sync"),t.label=7;case 7:return[3,10];case 8:return e.text="synchronizing env with slack channel",[4,i.default.upload(s.getEnvContents(f,c),l)];case 9:t.sent(),e.succeed("sync successful 🎉"),t.label=10;case 10:return s.exit(0,e),[3,12];case 11:return t.sent(),s.exit(1,e,"failed to sync env"),[3,12];case 12:return[2]}})})}; },{"./bot":"izsf","./utils":"N6d1"}],"XE8U":[function(require,module,exports) { "use strict";var e=this&&this.__assign||function(){return(e=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},t=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{l(r.next(e))}catch(t){i(t)}}function u(e){try{l(r.throw(e))}catch(t){i(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,u)}l((r=r.apply(e,t||[])).next())})},n=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(u){i=[6,u],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}},r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});var o=r(require("pkg-conf")),i=require("./lib"),a={include:[],channel:null};t(void 0,void 0,void 0,function(){var t;return n(this,function(n){switch(n.label){case 0:return[4,o.default("envbot")];case 1:return t=n.sent(),i.alertChannel(e(e({},a),t)),[2]}})}); },{"./lib":"E7Wx"}]},{},["XE8U"], null)