UNPKG

37.9 kBJavaScriptView Raw
1(function(e,t){for(var n in t)e[n]=t[n]})(exports,function(n){var r={};function i(e){if(r[e]){return r[e].exports}var t=r[e]={i:e,l:false,exports:{}};n[e].call(t.exports,t,t.exports,i);t.l=true;return t.exports}i.m=n;i.c=r;i.d=function(e,t,n){if(!i.o(e,t)){Object.defineProperty(e,t,{enumerable:true,get:n})}};i.r=function(e){if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(e,"__esModule",{value:true})};i.t=function(t,e){if(e&1)t=i(t);if(e&8)return t;if(e&4&&typeof t==="object"&&t&&t.__esModule)return t;var n=Object.create(null);i.r(n);Object.defineProperty(n,"default",{enumerable:true,value:t});if(e&2&&typeof t!="string")for(var r in t)i.d(n,r,function(e){return t[e]}.bind(null,r));return n};i.n=function(t){var e=t&&t.__esModule?function e(){return t["default"]}:function e(){return t};i.d(e,"a",e);return e};i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};i.p="";return i(i.s=9)}([function(e,t){e.exports=require("@harvestr-api/utils")},function(e,t){e.exports=require("@harvestr-api/common")},function(e,t,n){"use strict";var s=this&&this.__awaiter||function(o,a,c,s){return new(c||(c=Promise))(function(e,t){function n(e){try{i(s.next(e))}catch(e){t(e)}}function r(e){try{i(s["throw"](e))}catch(e){t(e)}}function i(t){t.done?e(t.value):new c(function(e){e(t.value)}).then(n,r)}i((s=s.apply(o,a||[])).next())})};var u=this&&this.__generator||function(e,n){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,o,a,t;return t={next:c(0),throw:c(1),return:c(2)},typeof Symbol==="function"&&(t[Symbol.iterator]=function(){return this}),t;function c(t){return function(e){return s([t,e])}}function s(t){if(i)throw new TypeError("Generator is already executing.");while(r)try{if(i=1,o&&(a=t[0]&2?o["return"]:t[0]?o["throw"]||((a=o["return"])&&a.call(o),0):o.next)&&!(a=a.call(o,t[1])).done)return a;if(o=0,a)t=[t[0]&2,a.value];switch(t[0]){case 0:case 1:a=t;break;case 4:r.label++;return{value:t[1],done:false};case 5:r.label++;o=t[1];t=[0];continue;case 7:t=r.ops.pop();r.trys.pop();continue;default:if(!(a=r.trys,a=a.length>0&&a[a.length-1])&&(t[0]===6||t[0]===2)){r=0;continue}if(t[0]===3&&(!a||t[1]>a[0]&&t[1]<a[3])){r.label=t[1];break}if(t[0]===6&&r.label<a[1]){r.label=a[1];a=t;break}if(a&&r.label<a[2]){r.label=a[2];r.ops.push(t);break}if(a[2])r.ops.pop();r.trys.pop();continue}t=n.call(e,r)}catch(e){t=[6,e];o=0}finally{i=a=0}if(t[0]&5)throw t[1];return{value:t[0]?t[1]:void 0,done:true}}};var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(Object.hasOwnProperty.call(e,n))t[n]=e[n];t["default"]=e;return t};var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var l=n(0);var a=n(10);var c=r(n(11));var f=i(n(12));var d=n(3);t.intercomApiService={findAdmins:function(n){return s(this,void 0,void 0,function(){var r,t;var i=this;return u(this,function(e){r=c.defer();t=new a.Client({token:n.integration_access_token});t.admins.list(function(t,n){return s(i,void 0,void 0,function(){return u(this,function(e){try{if(t)throw new Error(t);r.resolve(n.body.admins)}catch(e){r.reject(e)}return[2]})})});return[2,r.promise]})})},findAdmin:function(n,o){return s(this,void 0,void 0,function(){var r,t;var i=this;return u(this,function(e){r=c.defer();t=new a.Client({token:o.integration_access_token});t.admins.find(n,function(t,n){return s(i,void 0,void 0,function(){return u(this,function(e){try{if(t)throw new Error(t);r.resolve(n.body)}catch(e){r.reject(e)}return[2]})})});return[2,r.promise]})})},findUser:function(r,i){return s(this,void 0,void 0,function(){var o,t;var n=this;return u(this,function(e){o=c.defer();t=new a.Client({token:i.integration_access_token});t.users.find(r,function(r,i){return s(n,void 0,void 0,function(){var t,n;return u(this,function(e){try{if(r)throw new Error(r);t=i.body;n=null;switch(t.type){case"user.list":n=(i.body.users||[])[0];break;case"contact.list":n=(i.body.contacts||[])[0];break;case"user":case"contact":n=i.body;break;default:break}o.resolve(n)}catch(e){o.reject(e)}return[2]})})});return[2,o.promise]})})},findCompany:function(n,o){return s(this,void 0,void 0,function(){var r,t;var i=this;return u(this,function(e){r=c.defer();t=new a.Client({token:o.integration_access_token});t.companies.find(n,function(t,n){return s(i,void 0,void 0,function(){return u(this,function(e){try{if(t)throw new Error(t);l.logger.debug("Debugging intercom findCompany: ",JSON.stringify(n.body));r.resolve(n.body)}catch(e){r.reject(e)}return[2]})})});return[2,r.promise]})})},findCompanyFromName:function(o,a){return s(this,void 0,void 0,function(){var r,t,n;var i=this;return u(this,function(e){r=c.defer();t={Authorization:"Bearer "+a.integration_access_token,Accept:"application/json"};n={url:"https://api.intercom.io/companies?name="+o,method:"GET",headers:t};f.default(n,function(t,e,n){return s(i,void 0,void 0,function(){return u(this,function(e){try{if(t)throw new Error(t);r.resolve(JSON.parse(n))}catch(e){r.reject(e)}return[2]})})});return[2,r.promise]})})},getConversation:function(r,a){return s(this,void 0,void 0,function(){var i,t,n;var o=this;return u(this,function(e){i=c.defer();t={Authorization:"Bearer "+a.integration_access_token,Accept:"application/json"};n={url:"https://api.intercom.io/conversations/"+r,method:"GET",headers:t};f.default(n,function(t,n,r){return s(o,void 0,void 0,function(){return u(this,function(e){try{if(t)throw new Error(t);if(n.statusCode!==200){throw new Error("intercom request not sending a 200 : "+JSON.stringify(n))}i.resolve(JSON.parse(r))}catch(e){i.reject(e)}return[2]})})});return[2,i.promise]})})},legacyCreateWebhookSubscription:function(r,i){return s(this,void 0,void 0,function(){var o,t,n;var a=this;return u(this,function(e){o=c.defer();t={Authorization:"Bearer "+i,Accept:"application/json","Content-Type":"application/json"};n={url:"https://api.intercom.io/subscriptions",method:"POST",headers:t,body:JSON.stringify(r)};f.default(n,function(n,r,i){return s(a,void 0,void 0,function(){var t;return u(this,function(e){try{if(n)throw new Error(n);if(r.statusCode===200){t=JSON.parse(i);o.resolve(t)}else{l.logger.error("intercom request not sending a 200 :\n "+JSON.stringify(r));throw new Error("Request Error")}}catch(e){o.reject(e)}return[2]})})});return[2,o.promise]})})},legacyDeleteWebhookSubscription:function(o){return s(this,void 0,void 0,function(){var r,t,n;var i=this;return u(this,function(e){r=c.defer();t={Authorization:"Bearer "+o.integration_access_token,Accept:"application/json"};n={url:"https://api.intercom.io/subscriptions/"+o.integration_webhook_id,method:"DELETE",headers:t};f.default(n,function(t,n,e){return s(i,void 0,void 0,function(){return u(this,function(e){try{if(t)throw new Error(t);if(n.statusCode===200){l.logger.info("webhook successfully deleted");r.resolve()}else{l.logger.error("intercom request not sending a 200 :\n "+JSON.stringify(n));throw new Error("Request Error")}}catch(e){r.reject(e)}return[2]})})});return[2,r.promise]})})},getAccessToken:function(n){return s(this,void 0,void 0,function(){var i,t;var o=this;return u(this,function(e){l.logger.verbose("asking for intercom access token");i=c.defer();t={url:"https://api.intercom.io/auth/eagle/token?code="+n.intercom_code+"&client_id="+n.INTERCOM_OAUTH_CLIENT_ID+"&client_secret="+n.INTERCOM_OAUTH_CLIENT_SECRET+"",method:"POST"};f.default(t,function(t,n,r){return s(o,void 0,void 0,function(){return u(this,function(e){try{if(t)throw new Error(t);if(n.statusCode===200){l.logger.info("received intercom token "+r);i.resolve(JSON.parse(r).access_token)}else{l.logger.error("intercom request not sending a 200 :\n "+JSON.stringify(n));throw new Error("Request Error")}}catch(e){i.reject(e)}return[2]})})});return[2,i.promise]})})},createNote:function(o,a,c){return s(this,void 0,void 0,function(){var t,n,r;var i=this;return u(this,function(e){t={Authorization:"Bearer "+c.integration_access_token,Accept:"application/json","Content-Type":"application/json"};n={id:d.oc(c).integration_trigger_id(""),intercom_user_id:d.oc(c).integration_trigger_id(""),type:"admin",message_type:"note",body:"[Harvestr] "+o};l.logger.info(a);r={url:"https://api.intercom.io/conversations/"+a+"/reply",method:"POST",headers:t,body:JSON.stringify(n)};f.default(r,function(e,t,n){return s(i,void 0,void 0,function(){return u(this,function(e){return[2]})})});return[2]})})},getMe:function(r){return s(this,void 0,void 0,function(){var i,t,n;var o=this;return u(this,function(e){i=c.defer();t={Authorization:"Bearer "+r.integration_access_token,Accept:"application/json"};n={url:"https://api.intercom.io/me",method:"GET",headers:t};f.default(n,function(n,e,r){return s(o,void 0,void 0,function(){var t;return u(this,function(e){try{if(n)throw new Error(n);t=JSON.parse(r);i.resolve({app_id:d.oc(t).app.id_code(""),id:d.oc(t).id("")})}catch(e){i.reject(e)}return[2]})})});return[2,i.promise]})})}}},function(e,t){e.exports=require("ts-optchain")},function(e,t){e.exports=require("base64url")},function(e,t){e.exports=require("passport")},function(e,t){e.exports=require("passport-intercom")},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(o,a,c,s){return new(c||(c=Promise))(function(e,t){function n(e){try{i(s.next(e))}catch(e){t(e)}}function r(e){try{i(s["throw"](e))}catch(e){t(e)}}function i(t){t.done?e(t.value):new c(function(e){e(t.value)}).then(n,r)}i((s=s.apply(o,a||[])).next())})};var s=this&&this.__generator||function(e,n){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,o,a,t;return t={next:c(0),throw:c(1),return:c(2)},typeof Symbol==="function"&&(t[Symbol.iterator]=function(){return this}),t;function c(t){return function(e){return s([t,e])}}function s(t){if(i)throw new TypeError("Generator is already executing.");while(r)try{if(i=1,o&&(a=t[0]&2?o["return"]:t[0]?o["throw"]||((a=o["return"])&&a.call(o),0):o.next)&&!(a=a.call(o,t[1])).done)return a;if(o=0,a)t=[t[0]&2,a.value];switch(t[0]){case 0:case 1:a=t;break;case 4:r.label++;return{value:t[1],done:false};case 5:r.label++;o=t[1];t=[0];continue;case 7:t=r.ops.pop();r.trys.pop();continue;default:if(!(a=r.trys,a=a.length>0&&a[a.length-1])&&(t[0]===6||t[0]===2)){r=0;continue}if(t[0]===3&&(!a||t[1]>a[0]&&t[1]<a[3])){r.label=t[1];break}if(t[0]===6&&r.label<a[1]){r.label=a[1];a=t;break}if(a&&r.label<a[2]){r.label=a[2];r.ops.push(t);break}if(a[2])r.ops.pop();r.trys.pop();continue}t=n.call(e,r)}catch(e){t=[6,e];o=0}finally{i=a=0}if(t[0]&5)throw t[1];return{value:t[0]?t[1]:void 0,done:true}}};var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(Object.hasOwnProperty.call(e,n))t[n]=e[n];t["default"]=e;return t};Object.defineProperty(t,"__esModule",{value:true});var u=n(0);var c=i(n(16));t.intercomUtilsService={findTrigger:function(o,a,c){return r(this,void 0,void 0,function(){var t,n,r,i;return s(this,function(e){t=/<a.*?href="\/\/app\.intercom\.io\/apps\/([^"]*?)\/admin\/([^"]*?)".*?>/g;n=t.exec(o);u.logger.info("starting intercom note parsing");while(n!==null){if(n.index===t.lastIndex){t.lastIndex++}r=n[1];i=n[2];u.logger.info("Admin mentionned in intercom note "+r+" : "+i);if(r===c&&i===a){return[2,true]}n=t.exec(o)}return[2,false]})})},formatDiscoveryCanvas:function(e,t,n,r,i,o){var a=[];o.forEach(function(e){return a.push(e.name)});return[{type:"divider"},{type:"text",text:"*"+e+"*",style:"muted"},{type:"data-table",items:[{type:"field-value",field:"In component",value:n},{type:"field-value",field:"Current state",value:r},{type:"field-value",field:"Feedback volume",value:i},{type:"field-value",field:"Tags",value:o.length?a.toString().split(",").join(", "):"N/A"}]},{type:"button",label:"Open discovery",style:"secondary",id:"open-discovery-"+c.generate(),action:{type:"url",url:""+(process.env.HARVESTR_CLIENT_URL+t)}}]}}},function(e,t,n){"use strict";var o=this&&this.__makeTemplateObject||function(e,t){if(Object.defineProperty){Object.defineProperty(e,"raw",{value:t})}else{e.raw=t}return e};var a=this&&this.__awaiter||function(o,a,c,s){return new(c||(c=Promise))(function(e,t){function n(e){try{i(s.next(e))}catch(e){t(e)}}function r(e){try{i(s["throw"](e))}catch(e){t(e)}}function i(t){t.done?e(t.value):new c(function(e){e(t.value)}).then(n,r)}i((s=s.apply(o,a||[])).next())})};var c=this&&this.__generator||function(e,n){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,o,a,t;return t={next:c(0),throw:c(1),return:c(2)},typeof Symbol==="function"&&(t[Symbol.iterator]=function(){return this}),t;function c(t){return function(e){return s([t,e])}}function s(t){if(i)throw new TypeError("Generator is already executing.");while(r)try{if(i=1,o&&(a=t[0]&2?o["return"]:t[0]?o["throw"]||((a=o["return"])&&a.call(o),0):o.next)&&!(a=a.call(o,t[1])).done)return a;if(o=0,a)t=[t[0]&2,a.value];switch(t[0]){case 0:case 1:a=t;break;case 4:r.label++;return{value:t[1],done:false};case 5:r.label++;o=t[1];t=[0];continue;case 7:t=r.ops.pop();r.trys.pop();continue;default:if(!(a=r.trys,a=a.length>0&&a[a.length-1])&&(t[0]===6||t[0]===2)){r=0;continue}if(t[0]===3&&(!a||t[1]>a[0]&&t[1]<a[3])){r.label=t[1];break}if(t[0]===6&&r.label<a[1]){r.label=a[1];a=t;break}if(a&&r.label<a[2]){r.label=a[2];r.ops.push(t);break}if(a[2])r.ops.pop();r.trys.pop();continue}t=n.call(e,r)}catch(e){t=[6,e];o=0}finally{i=a=0}if(t[0]&5)throw t[1];return{value:t[0]?t[1]:void 0,done:true}}};var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var s=n(1);var u=r(n(17));t.intercomService={getMessage:function(r,i){return a(this,void 0,void 0,function(){var t,n;return c(this,function(e){switch(e.label){case 0:t=u.default(l||(l=o(["\n fragment IntercomIntMessage on Message {\n id\n clientId\n createdAt\n updatedAt\n tags\n integration_url\n integration_id\n recipient_address\n title\n content\n channel\n read\n archived\n processed\n chunks {\n id\n clientId\n discovery {\n id\n clientId\n title\n discoverystate {\n name\n color\n id\n clientId\n }\n tags {\n name\n color\n id\n clientId\n }\n parent {\n id\n clientId\n title\n }\n chunks {\n id\n clientId\n }\n }\n }\n }\n "],["\n fragment IntercomIntMessage on Message {\n id\n clientId\n createdAt\n updatedAt\n tags\n integration_url\n integration_id\n recipient_address\n title\n content\n channel\n read\n archived\n processed\n chunks {\n id\n clientId\n discovery {\n id\n clientId\n title\n discoverystate {\n name\n color\n id\n clientId\n }\n tags {\n name\n color\n id\n clientId\n }\n parent {\n id\n clientId\n title\n }\n chunks {\n id\n clientId\n }\n }\n }\n }\n "])));return[4,s.messageService.getMessages({where:{integration_id:r},orderBy:"createdAt_DESC"},i).$fragment(t)];case 1:n=e.sent();return[2,n[0]]}})})}};var l},function(e,n,t){"use strict";function r(e){for(var t in e)if(!n.hasOwnProperty(t))n[t]=e[t]}Object.defineProperty(n,"__esModule",{value:true});r(t(2));r(t(13));r(t(14));r(t(15));r(t(7));r(t(8));r(t(18))},function(e,t){e.exports=require("intercom-client")},function(e,t){e.exports=require("q")},function(e,t){e.exports=require("request")},function(e,t,n){"use strict";var y=this&&this.__awaiter||function(o,a,c,s){return new(c||(c=Promise))(function(e,t){function n(e){try{i(s.next(e))}catch(e){t(e)}}function r(e){try{i(s["throw"](e))}catch(e){t(e)}}function i(t){t.done?e(t.value):new c(function(e){e(t.value)}).then(n,r)}i((s=s.apply(o,a||[])).next())})};var _=this&&this.__generator||function(e,n){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,o,a,t;return t={next:c(0),throw:c(1),return:c(2)},typeof Symbol==="function"&&(t[Symbol.iterator]=function(){return this}),t;function c(t){return function(e){return s([t,e])}}function s(t){if(i)throw new TypeError("Generator is already executing.");while(r)try{if(i=1,o&&(a=t[0]&2?o["return"]:t[0]?o["throw"]||((a=o["return"])&&a.call(o),0):o.next)&&!(a=a.call(o,t[1])).done)return a;if(o=0,a)t=[t[0]&2,a.value];switch(t[0]){case 0:case 1:a=t;break;case 4:r.label++;return{value:t[1],done:false};case 5:r.label++;o=t[1];t=[0];continue;case 7:t=r.ops.pop();r.trys.pop();continue;default:if(!(a=r.trys,a=a.length>0&&a[a.length-1])&&(t[0]===6||t[0]===2)){r=0;continue}if(t[0]===3&&(!a||t[1]>a[0]&&t[1]<a[3])){r.label=t[1];break}if(t[0]===6&&r.label<a[1]){r.label=a[1];a=t;break}if(a&&r.label<a[2]){r.label=a[2];r.ops.push(t);break}if(a[2])r.ops.pop();r.trys.pop();continue}t=n.call(e,r)}catch(e){t=[6,e];o=0}finally{i=a=0}if(t[0]&5)throw t[1];return{value:t[0]?t[1]:void 0,done:true}}};var i=this;Object.defineProperty(t,"__esModule",{value:true});var m=n(1);var f=n(0);var b=n(3);var w=n(2);var d=function(e,t){return e.some(function(e){return e.id===t.id})?e:e.concat([t])};var p=function(e){return b.oc(e).conversation_parts.conversation_parts([]).filter(function(e){return e.part_type==="comment"||e.part_type==="assignment"||e.part_type==="note"}).filter(function(e){return e.body})};var T=function(e){return[e.conversation_message].concat(p(e)).filter(function(e){return e.body})};var E=function(n,r){return y(i,void 0,void 0,function(){var t;return _(this,function(e){t={mongoId:n.id.toString(),type:n.part_type==="note"?"NOTE":"MESSAGE",content:n.body||"",submitter:{connect:{id:(r.find(function(e){return e.intercom_id===n.author.id})||{id:""}).id}}};return[2,t]})})};var v=function(a,c,s){return y(i,void 0,void 0,function(){var t,n,r,i,o,o,o;return _(this,function(e){switch(e.label){case 0:i=a.type;switch(i){case"user":return[3,1];case"contact":return[3,1];case"lead":return[3,1];case"admin":return[3,6];case"team":return[3,6]}return[3,11];case 1:return[4,w.intercomApiService.findUser({id:a.id},c).catch(function(e){console.log("could not find Intercom user");return a})];case 2:t=e.sent();if(!t){f.logger.debug("Intercom user not found");return[2,a]}r=b.oc(t).email()?{email:t.email}:{name:t.name};return[4,m.personService.exists(r,s)];case 3:if(!e.sent())return[3,5];return[4,m.personService.getPersons({where:r},s)];case 4:o=e.sent()[0];return[2,o];case 5:n={type:"CUSTOMER",deleted:false,email:t.email,phone:t.phone||undefined,name:t.name||b.oc(t).pseudonym(""),avatar:b.oc(t).avatar.image_url()?{create:{name:t.avatar.name||"",url:t.avatar.image_url}}:undefined};return[3,15];case 6:return[4,w.intercomApiService.findAdmin(a.id,{integration_access_token:b.oc(c).integration_access_token("")}).catch(function(e){console.log("could not find Intercom admin");return a})];case 7:t=e.sent();if(!t){f.logger.debug("Intercom admin not found");return[2,a]}r=b.oc(t).email()?{email:t.email}:{name:b.oc(t).name("Unnammed user")};return[4,m.personService.exists(r,s)];case 8:if(!e.sent())return[3,10];return[4,m.personService.getPersons({where:r},s)];case 9:o=e.sent()[0];return[2,o];case 10:n={deleted:false,email:b.oc(t).email(),type:"CUSTOMER",name:t.name||b.oc(t).pseudonym("Unnammed user")};return[3,15];case 11:return[4,m.personService.exists({email:"operator"},s)];case 12:if(!e.sent())return[3,14];return[4,m.personService.getPersons({where:{email:"operator"}},s)];case 13:o=e.sent()[0];return[2,o];case 14:n={deleted:true,name:"Intercom operator",type:"CUSTOMER",email:"operator",details:"Intercom operator bot which generates auto replies"};return[3,15];case 15:return[2,m.personService.upsertPerson(m.personService.getUpsertWhere({name:n.name,email:n.email||undefined},s),n,{deleted:false},s)]}})})};var S=function(c,s,u,l){return y(i,void 0,void 0,function(){var t,n,r,i,o;var a=this;return _(this,function(e){t=T(c);n=[];n=c.user?d(n,c.user):n;n=s?d(n,s):n;for(r=0,i=t;r<i.length;r++){o=i[r];n=o.author?d(n,o.author):n}n=n.filter(function(e){return e&&e.id});f.logger.verbose("persons length: ",n.length);return[2,Promise.all(n.map(function(n){return y(a,void 0,void 0,function(){var t;return _(this,function(e){switch(e.label){case 0:t={};return[4,v(n,u,l)];case 1:return[2,(t.id=e.sent().id,t.intercom_id=n.id,t)]}})})}))]})})};t.intercomConverterService={convertToOrganization:function(n,e,r){return y(this,void 0,void 0,function(){var t;return _(this,function(e){f.logger.debug("converting the following intercom company: ",n);t={where:{name:n.name},create:{name:n.name||"",integrationSyncs:{create:[{integration_type:"INTERCOM",elementId:n.id,elementType:"company",elementUrl:"https://app.intercom.io/apps/"+n.app_id+"/companies/"+n.id,elementApiUrl:"https://api.intercom.io/companies/"+n.id,elementProjectId:n.app_id,_projectId:r.project_id}]}},update:{}};return[2,m.organizationService.upsertOrganization(t.where,t.create,t.update,r)]})})},convertToMessage:function(d,p,v,h,g){return y(this,void 0,void 0,function(){var t,n,r,i,o,a,c,s,u,l,f;return _(this,function(e){switch(e.label){case 0:t=T(d);return[4,S(d,p,v,g)];case 1:n=e.sent();r=n.find(function(e){return e.intercom_id===p.id});i=n.find(function(e){return e.intercom_id===d.user.id});if(!r)throw new Error("Error in intercom message creation: submitter cannot be empty");o=b.oc(d).tags.type()==="tag.list"?b.oc(d).tags.tags([]).map(function(e){return{name:e.name}}):[];return[4,m.messageLabelService.upsertManyMessageLabels(o,g)];case 2:a=e.sent();s=(c=m.messageService).createMessage;u={clientId:b.oc(d).clientId()||undefined,recipient_address:"Intercom",title:d.conversation_message.subject,content:d.conversation_message.body,labels:{connect:a}};l={};if(!t.length)return[3,4];return[4,Promise.all(t.map(function(e){return E(e,n)}))];case 3:f=e.sent();return[3,5];case 4:f=[];e.label=5;case 5:return[2,s.apply(c,[(u.sub_messages=(l.create=f,l),u.channel="INTERCOM",u.integration_id=d.id.toString(),u.integration_url="https://app.intercom.io/a/apps/"+h+"/inbox/all/conversations/"+d.id.toString(),u.requester={connect:{id:b.oc(i).id(r.id)}},u.submitter={connect:{id:r.id}},u),g])]}})})},updateMessage:function(u,l,f,d){return y(this,void 0,void 0,function(){var t,n,r,i,o,a,c,s;return _(this,function(e){switch(e.label){case 0:t=p(u);return[4,S(u,null,f,d)];case 1:n=e.sent();console.log("PERSONS TADATATA",JSON.stringify(n));console.log("UPDATE",JSON.stringify(t));i=(r=m.messageService).updateMessage;o=[{id:l.id}];a={updated:true,submessageBeforeUpdateId:l.last_submessage_clientId&&!l.updated?l.last_submessage_clientId:undefined};c={};if(!t.length)return[3,3];return[4,Promise.all(t.map(function(e){return E(e,n)}))];case 2:s=e.sent();return[3,4];case 3:s=[];e.label=4;case 4:return[2,i.apply(r,o.concat([(a.sub_messages=(c.create=s,c),a),d]))]}})})},legacyConvertToMessage:function(p,v,h,g){return y(this,void 0,void 0,function(){var t,n,r,i,o,a,c,s,u,l,f,d;return _(this,function(e){switch(e.label){case 0:return[4,w.intercomApiService.getConversation(p.item.id.toString(),{integration_access_token:b.oc(h).integration_access_token("")})];case 1:t=e.sent();n=T(t);return[4,S(t,v,h,g)];case 2:r=e.sent();i=r.find(function(e){return e.intercom_id===v.id});o=r.find(function(e){return e.intercom_id===t.user.id});if(!i)throw new Error("Error in intercom message creation: submitter cannot be empty");a=b.oc(t).tags.type()==="tag.list"?b.oc(t).tags.tags([]).map(function(e){return{name:e.name}}):[];return[4,m.messageLabelService.upsertManyMessageLabels(a,g)];case 3:c=e.sent();u=(s=m.messageService).createMessage;l={recipient_address:"Intercom",title:b.oc(t).conversation_message.subject()?t.conversation_message.subject:"Intercom conversation",content:t.conversation_message.body,labels:{connect:c}};f={};if(!n.length)return[3,5];return[4,Promise.all(n.map(function(e){return E(e,r)}))];case 4:d=e.sent();return[3,6];case 5:d=[];e.label=6;case 6:return[2,u.apply(s,[(l.sub_messages=(f.create=d,f),l.channel="INTERCOM",l.integration_id=p.item.id.toString(),l.integration_url=b.oc(p).item.links.conversation_web(),l.requester={connect:{id:b.oc(o).id(i.id)}},l.submitter={connect:{id:i.id}},l),g])]}})})}}},function(e,t,n){"use strict";var i=this&&this.__awaiter||function(o,a,c,s){return new(c||(c=Promise))(function(e,t){function n(e){try{i(s.next(e))}catch(e){t(e)}}function r(e){try{i(s["throw"](e))}catch(e){t(e)}}function i(t){t.done?e(t.value):new c(function(e){e(t.value)}).then(n,r)}i((s=s.apply(o,a||[])).next())})};var v=this&&this.__generator||function(e,n){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,o,a,t;return t={next:c(0),throw:c(1),return:c(2)},typeof Symbol==="function"&&(t[Symbol.iterator]=function(){return this}),t;function c(t){return function(e){return s([t,e])}}function s(t){if(i)throw new TypeError("Generator is already executing.");while(r)try{if(i=1,o&&(a=t[0]&2?o["return"]:t[0]?o["throw"]||((a=o["return"])&&a.call(o),0):o.next)&&!(a=a.call(o,t[1])).done)return a;if(o=0,a)t=[t[0]&2,a.value];switch(t[0]){case 0:case 1:a=t;break;case 4:r.label++;return{value:t[1],done:false};case 5:r.label++;o=t[1];t=[0];continue;case 7:t=r.ops.pop();r.trys.pop();continue;default:if(!(a=r.trys,a=a.length>0&&a[a.length-1])&&(t[0]===6||t[0]===2)){r=0;continue}if(t[0]===3&&(!a||t[1]>a[0]&&t[1]<a[3])){r.label=t[1];break}if(t[0]===6&&r.label<a[1]){r.label=a[1];a=t;break}if(a&&r.label<a[2]){r.label=a[2];r.ops.push(t);break}if(a[2])r.ops.pop();r.trys.pop();continue}t=n.call(e,r)}catch(e){t=[6,e];o=0}finally{i=a=0}if(t[0]&5)throw t[1];return{value:t[0]?t[1]:void 0,done:true}}};var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(Object.hasOwnProperty.call(e,n))t[n]=e[n];t["default"]=e;return t};Object.defineProperty(t,"__esModule",{value:true});var h=n(1);var g=n(0);var y=r(n(4));var o=n(5);var _=n(2);var a=n(6).Strategy;var c=o.use(new a({clientID:process.env.INTERCOM_LEGACY_OAUTH_CLIENT_ID,clientSecret:process.env.INTERCOM_LEGACY_OAUTH_CLIENT_SECRET},function(e,t,n,r){r()}));t.intercomLegacyOauthService={handleLegacyIntercomOauth:function(n,r){return i(this,void 0,void 0,function(){var t;return v(this,function(e){try{t=n.query.id;c.authenticate("intercom",{state:y.default(JSON.stringify({id:t}))})(n,r)}catch(e){g.logger.error(e)}return[2]})})},handleLegacyIntercomOauthResponse:function(d,p){return i(this,void 0,void 0,function(){var t,n,r,i,o,a,c,s,u,l,f;return v(this,function(e){switch(e.label){case 0:e.trys.push([0,4,,5]);t=d.query.state;n=JSON.parse(y.default.decode(t));r=n.id;i=d.query.code;o={type:"INTEGRATION_INTERCOM",project_id:r};a=process.env.INTERCOM_LEGACY_OAUTH_CLIENT_ID||"";c=process.env.INTERCOM_LEGACY_OAUTH_CLIENT_SECRET||"";return[4,_.intercomApiService.getAccessToken({INTERCOM_OAUTH_CLIENT_ID:a,INTERCOM_OAUTH_CLIENT_SECRET:c,intercom_code:i})];case 1:s=e.sent();g.logger.info("creating the webhook on client's intercom app");u=process.env.HARVESTR_API_URL||"google.com";return[4,_.intercomApiService.legacyCreateWebhookSubscription({service_type:"web",url:u+"/intercom/note/"+o.project_id,topics:["conversation.admin.noted"]},s)];case 2:l=e.sent();if(!l)throw new Error("Webhook creation failed");g.logger.info("webhook created in intercom with id "+l.id);return[4,h.apiTokenService.upsertApiToken({source:"INTERCOM_MENTION"},{source:"INTERCOM_MENTION",integration_access_token:s,integration_webhook_id:l.id,integration_workspace_id:l.app_id,options:{create:{notify_linked:true,notify_state:true,sync_organizations:true}}},{source:"INTERCOM_MENTION",integration_access_token:s,integration_webhook_id:l.id,integration_workspace_id:l.app_id,options:{create:{notify_linked:true,notify_state:true,sync_organizations:true}}},o)];case 3:e.sent();p.status(200).send("<h3>Success! Redirecting...</h3><h4>You can close this window.</h4>");return[3,5];case 4:f=e.sent();g.logger.error(f);p.status(400).send(f);return[3,5];case 5:return[2]}})})}}},function(e,t,n){"use strict";var i=this&&this.__awaiter||function(o,a,c,s){return new(c||(c=Promise))(function(e,t){function n(e){try{i(s.next(e))}catch(e){t(e)}}function r(e){try{i(s["throw"](e))}catch(e){t(e)}}function i(t){t.done?e(t.value):new c(function(e){e(t.value)}).then(n,r)}i((s=s.apply(o,a||[])).next())})};var p=this&&this.__generator||function(e,n){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,o,a,t;return t={next:c(0),throw:c(1),return:c(2)},typeof Symbol==="function"&&(t[Symbol.iterator]=function(){return this}),t;function c(t){return function(e){return s([t,e])}}function s(t){if(i)throw new TypeError("Generator is already executing.");while(r)try{if(i=1,o&&(a=t[0]&2?o["return"]:t[0]?o["throw"]||((a=o["return"])&&a.call(o),0):o.next)&&!(a=a.call(o,t[1])).done)return a;if(o=0,a)t=[t[0]&2,a.value];switch(t[0]){case 0:case 1:a=t;break;case 4:r.label++;return{value:t[1],done:false};case 5:r.label++;o=t[1];t=[0];continue;case 7:t=r.ops.pop();r.trys.pop();continue;default:if(!(a=r.trys,a=a.length>0&&a[a.length-1])&&(t[0]===6||t[0]===2)){r=0;continue}if(t[0]===3&&(!a||t[1]>a[0]&&t[1]<a[3])){r.label=t[1];break}if(t[0]===6&&r.label<a[1]){r.label=a[1];a=t;break}if(a&&r.label<a[2]){r.label=a[2];r.ops.push(t);break}if(a[2])r.ops.pop();r.trys.pop();continue}t=n.call(e,r)}catch(e){t=[6,e];o=0}finally{i=a=0}if(t[0]&5)throw t[1];return{value:t[0]?t[1]:void 0,done:true}}};var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(Object.hasOwnProperty.call(e,n))t[n]=e[n];t["default"]=e;return t};Object.defineProperty(t,"__esModule",{value:true});var v=n(1);var h=n(0);var g=r(n(4));var o=n(5);var y=n(2);var a=n(6).Strategy;var c=o.use(new a({clientID:process.env.INTERCOM_OAUTH_CLIENT_ID,clientSecret:process.env.INTERCOM_OAUTH_CLIENT_SECRET},function(e,t,n,r){r()}));t.intercomOauthService={handleIntercomOauth:function(n,r){return i(this,void 0,void 0,function(){var t;return p(this,function(e){try{t=n.query.id;c.authenticate("intercom",{state:g.default(JSON.stringify({id:t}))})(n,r)}catch(e){h.logger.error(e)}return[2]})})},handleIntercomOauthResponse:function(f,d){return i(this,void 0,void 0,function(){var t,n,r,i,o,a,c,s,u,l;return p(this,function(e){switch(e.label){case 0:e.trys.push([0,4,,5]);t=f.query.state;n=JSON.parse(g.default.decode(t));r=n.id;i=f.query.code;o={type:"INTEGRATION_INTERCOM",project_id:r};a=process.env.INTERCOM_OAUTH_CLIENT_ID||"";c=process.env.INTERCOM_OAUTH_CLIENT_SECRET||"";return[4,y.intercomApiService.getAccessToken({INTERCOM_OAUTH_CLIENT_ID:a,INTERCOM_OAUTH_CLIENT_SECRET:c,intercom_code:i})];case 1:s=e.sent();return[4,y.intercomApiService.getMe({integration_access_token:s})];case 2:u=e.sent();return[4,v.apiTokenService.upsertApiToken({source:"INTERCOM_WIDGET"},{source:"INTERCOM_WIDGET",integration_access_token:s,integration_workspace_id:u.app_id,integration_trigger_id:u.id,options:{create:{notify_linked:true,notify_state:true,sync_organizations:true}}},{source:"INTERCOM_WIDGET",integration_access_token:s,integration_workspace_id:u.app_id,integration_trigger_id:u.id,options:{create:{notify_linked:true,notify_state:true,sync_organizations:true}}},o).catch(function(e){h.logger.error(e);d.status(400).send("This Intercom account is already connected to another Harvestr account, please delete it to proceed.");return})];case 3:e.sent();d.status(200).send("<h3>Success! Redirecting...</h3><h4>You can close this window.</h4>");return[3,5];case 4:l=e.sent();h.logger.error(l);d.status(400).send(l);return[3,5];case 5:return[2]}})})}}},function(e,t){e.exports=require("shortid")},function(e,t){e.exports=require("graphql-tag")},function(e,t,n){"use strict";var v=this&&this.__assign||function(){v=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i))e[i]=t[i]}return e};return v.apply(this,arguments)};var r=this&&this.__awaiter||function(o,a,c,s){return new(c||(c=Promise))(function(e,t){function n(e){try{i(s.next(e))}catch(e){t(e)}}function r(e){try{i(s["throw"](e))}catch(e){t(e)}}function i(t){t.done?e(t.value):new c(function(e){e(t.value)}).then(n,r)}i((s=s.apply(o,a||[])).next())})};var h=this&&this.__generator||function(e,n){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,o,a,t;return t={next:c(0),throw:c(1),return:c(2)},typeof Symbol==="function"&&(t[Symbol.iterator]=function(){return this}),t;function c(t){return function(e){return s([t,e])}}function s(t){if(i)throw new TypeError("Generator is already executing.");while(r)try{if(i=1,o&&(a=t[0]&2?o["return"]:t[0]?o["throw"]||((a=o["return"])&&a.call(o),0):o.next)&&!(a=a.call(o,t[1])).done)return a;if(o=0,a)t=[t[0]&2,a.value];switch(t[0]){case 0:case 1:a=t;break;case 4:r.label++;return{value:t[1],done:false};case 5:r.label++;o=t[1];t=[0];continue;case 7:t=r.ops.pop();r.trys.pop();continue;default:if(!(a=r.trys,a=a.length>0&&a[a.length-1])&&(t[0]===6||t[0]===2)){r=0;continue}if(t[0]===3&&(!a||t[1]>a[0]&&t[1]<a[3])){r.label=t[1];break}if(t[0]===6&&r.label<a[1]){r.label=a[1];a=t;break}if(a&&r.label<a[2]){r.label=a[2];r.ops.push(t);break}if(a[2])r.ops.pop();r.trys.pop();continue}t=n.call(e,r)}catch(e){t=[6,e];o=0}finally{i=a=0}if(t[0]&5)throw t[1];return{value:t[0]?t[1]:void 0,done:true}}};var i=this;Object.defineProperty(t,"__esModule",{value:true});var f=n(7);var g=n(1);var y=n(8);var _=n(0);var m=n(3);var b={canvas:{content:{components:[{type:"text",text:"*Create new Feedback*",align:"left",style:"header"},{type:"button",label:"Send conversation to Harvestr",style:"secondary",id:"send-harvestr",action:{type:"submit"}}]}}};var w={canvas:{content:{components:[{type:"text",text:"You need to add a Harvestr account",align:"left",style:"muted"},{type:"text",text:"Configure your accounts in your [app settings](https://app.harvestr.io/settings/integrations/intercom)",align:"left",style:"muted"}]}}};var d=function(e){return e.discoveries_length?[]:[{type:"divider"},{type:"text",text:"*Sent conversation info*",style:"header"},{type:"data-table",items:[{type:"field-value",field:"Status",value:e.discoveries_length?"Linked to "+e.discoveries_length+" discover"+(e.discoveries_length===1?"y":"ies"):e.isRead?"Conversation was read":"Not read"}]},{type:"spacer",size:"xs"},{type:"button",label:"View in Harvestr",style:"link",id:"view-in-harvestr",action:{type:"url",url:process.env.HARVESTR_CLIENT_URL+"/messages/inbox/"+e.discovery_id}}]};var T=function(e,t,n){var r;console.log("LINK CARDS: ",n);var i=(n||[]).length;var o=i?[{type:"text",text:"*Linked discoveries ("+i+")*",align:"left",style:"header"}]:[];var a=(n||[]).map(function(e){return f.intercomUtilsService.formatDiscoveryCanvas(e.title,e.url,e.parent.title,e.discoverystate.name,e.feedback_number,e.tags)});var c=i?a[0]:[];var s=i>1?i-1:0;var u=i>1?[{type:"divider"},{type:"button",id:"load-more-discoveries",label:"View all discoveries ("+s+" more)",style:"link",action:{type:"submit"}}]:[];var l={canvas:{content:{components:d({isRead:t,discovery_id:e,discoveries_length:(n||[]).length}).concat(o,c,u)},stored_data:{message_id:e,discoveries:(r=[]).concat.apply(r,a)}}};return l};var o=function(d,p){return r(i,void 0,void 0,function(){var t,n,r,i,o,a,c,s,u,l,f;return h(this,function(e){switch(e.label){case 0:t=null;e.label=1;case 1:e.trys.push([1,5,,6]);if(!d)return[3,3];return[4,g.tokenIntercomService.getApiToken(d)];case 2:n=e.sent();return[3,4];case 3:n=null;e.label=4;case 4:t=n;return[3,6];case 5:r=e.sent();console.log("invalid or no intercom token");return[3,6];case 6:if(!t){return[2,w]}i={type:"INTEGRATION_INTERCOM",project_id:t._projectId||""};return[4,y.intercomService.getMessage(p,i)];case 7:o=e.sent();a=[];if(o){c=function(e){if(m.oc(e).discovery()){var t=e.discovery;if(!a.some(function(e){return e.id===t.id})){a.push(v({},t,{url:(process.env.client_domain||"")+"/components/0/list/"+_.toClientId(t).id,feedback_number:m.oc(t).chunks([]).length||0}))}}};for(s=0,u=m.oc(o).chunks([]);s<u.length;s++){l=u[s];c(l)}f=T(o.clientId||"",o.read,a);return[2,f]}return[2,b]}})})};t.intercomCanvasService={conversationReadNotif:d,initCanvas:o}}]));
\No newline at end of file