UNPKG

@shelf/agent-assist-sdk

Version:
1 lines 10.9 kB
!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports.shelf=n():(e.shelf=e.shelf||{},e.shelf.AgentAssist=n())}(this,function(){return function(){var e={289(e,n,t){var r,o,i,s;function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}e=t.nmd(e),s=function(){return function(){"use strict";var e={644:function(e,n,t){function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach(function(n){s(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function i(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}t.r(n),t.d(n,{default:function(){return l}});var a="x-channel-internal-reply",u="x-channel-internal-hello",c=function(){function e(n){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),s(this,"_handlers",new Map),s(this,"_pendingMessages",new Map),s(this,"_messageId",0),s(this,"port",void 0),this._handleMessage=this._handleMessage.bind(this),this.port=n,this.port.addEventListener("message",this._handleMessage),this.port.start()}var n,t,r;return n=e,r=[{key:"_debug",value:function(){if(e.debug){for(var n,t=arguments.length,r=new Array(t),o=0;o<t;o++)r[o]=arguments[o];return(n=console).log.apply(n,["DEBUG:"].concat(r))}}},{key:"connectTo",value:function(n,t,r){if(!n)return Promise.reject("Target must be defined.");(function(e){return e&&"function"==typeof e.MessageChannel})(t)&&(r=t,t=void 0);var o=r?new r.MessageChannel:new MessageChannel,i=t||"*";try{if("document"in n){if(t&&"*"!==t&&t!==n.document.location.origin)return Promise.reject("The origins don't match.");n.postMessage(u,i,[o.port2])}else n.postMessage(u,[o.port2])}catch(e){n.postMessage(u,i,[o.port2])}return new Promise(function(n,t){var r=new e(o.port1);r.on("ready",function(){r.off("ready"),r.off("error"),n(r)}),r.on("error",function(e){r.off("ready"),r.off("error"),t(e)})})}},{key:"waitForConnection",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:self,t=arguments.length>1?arguments[1]:void 0;return new Promise(function(r){n.onmessage=function(o){if(o.data===u){var i=new e(o.ports[0]);if(t&&"*"!==t&&t!==o.origin)return i.send("error","Disallowed origin.");n.onmessage=null,i.send("ready"),r(i)}}})}}],(t=[{key:"_warn",value:function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];console.log("WARNING:",[].concat(n).map(function(e){return JSON.stringify(e)}).join(" "))}},{key:"_handleMessage",value:function(n){var t=n.data;e._debug("Got a message with data:",t);var r=t.id,o=t.type;return void 0!==r&&o&&"string"==typeof o&&o.trim()?o===a?this._handleReply(t):this._handleNewMessage(t):this._warn("Got an invalid message:",t)}},{key:"_handleReply",value:function(n){var t=n.id;if(!this._pendingMessages.has(t))return e._debug("Ignoring an unexpected reply.");var r=this._pendingMessages.get(t),o=r.resolve,i=r.reject;return n.error?(e._debug("Received an error reply for message",t),e._debug("Error was",n.error),i(n.error)):(e._debug("Received a success reply for message",t),e._debug("Result was",n.result),o(n.result)),this._pendingMessages.delete(t)}},{key:"_handleNewMessage",value:function(e){var n,t=this,r=e.id,i=e.type,s=e.payload,u=this._handlers.get(i),c=null;try{u?c=Promise.resolve(u(s)):this._warn("Received a message of type",i,"that has no handler.")}catch(e){this._warn("Handler function failed:",e),c=Promise.reject(e.message||e.name||"Unknown error")}var l={id:r,type:a};null===(n=c)||void 0===n||n.then(function(e){t.port.postMessage(o(o({},l),{},{result:e}))},function(e){t.port.postMessage(o(o({},l),{},{error:e||"Unknown error"}))}).catch(function(e){t._warn("Reply could not be sent:",e),t.port.postMessage(o(o({},l),{},{error:"Reply failed"}))})}},{key:"on",value:function(e,n){if(this._handlers.has(e))throw new Error("Multiple handlers registered for ".concat(e));this._handlers.set(e,n)}},{key:"off",value:function(e){if(!this._handlers.has(e))return this._warn("WARNING: Tried to unregister handler for",e,"that has no handler.");this._handlers.delete(e)}},{key:"send",value:function(e,n){var t=this,r={id:this._messageId++,payload:n,type:e};return new Promise(function(e,n){t._pendingMessages.set(r.id,{resolve:e,reject:n}),t.port.postMessage(r)})}}])&&i(n.prototype,t),r&&i(n,r),e}();s(c,"debug",!1);var l=c}},n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{}};return e[r](o,o.exports,t),o.exports}return t.d=function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t(644)}()},"object"==a(n)&&"object"==a(e)?e.exports=s():(o=[],void 0===(i="function"==typeof(r=s)?r.apply(n,o):r)||(e.exports=i))}},n={};function t(r){var o=n[r];if(void 0!==o)return o.exports;var i=n[r]={id:r,loaded:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,{a:n}),n},t.d=function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e};var r={};return function(){"use strict";t.d(r,{default:function(){return f}});var e=t(289),n=t.n(e),o=["shelfDomain","_frameURL","onMissingToken","subdomain"];function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function a(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,c(r.key),r)}}function u(e,n,t){return(n=c(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function c(e){var n=function(e){if("object"!=i(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var t=n.call(e,"string");if("object"!=i(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==i(n)?n:n+""}var l=function(){return e=function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e)},t=[{key:"initialize",value:function(e,t){var r=this;return new Promise(function(i,a){var c=t,l=c.shelfDomain,f=c._frameURL,p=c.onMissingToken,d=c.subdomain,y=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==n.indexOf(r))continue;t[r]=e[r]}return t}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],-1===n.indexOf(t)&&{}.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(c,o),h=document.createElement("iframe");h.src=f||function(e){var n=e.domain,t=e.subdomain,r=void 0===t?"":t,o=r?"?subdomain=".concat(r):"";return"https://agent-assist.".concat(function(e){return e||"shelf.io"}(n),"/").concat(o)}({domain:l,subdomain:d}),h.onload=function(){n().connectTo(h.contentWindow).then(function(e){return r._channel=e}).then(function(){r.on("missing-token",p),r.on("initialize",function(){return r.off("initialize"),function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach(function(n){u(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}({sdkVersion:r.version},y)}),r.on("session-start",function(e){r.off("session-start"),i(e)})}).catch(a)},r._frameEl=h,e.appendChild(h)})}},{key:"setDebug",value:function(e){n().debug=e}},{key:"close",value:function(){var e;this._channel=null,null===(e=this._frameEl)||void 0===e||null===(e=e.parentNode)||void 0===e||e.removeChild(this._frameEl)}},{key:"_post",value:function(e,n){if(this._channel)return this._channel.send(e,n);console.warn("Agent Assist is not ready yet")}},{key:"request",value:function(e){return this._post("request",e)}},{key:"trackEvent",value:function(e){return this._post("track-event",e)}},{key:"openTab",value:function(e){return this._post("open-tab",e)}},{key:"setMessages",value:function(e){return this._post("set-messages",{messages:e})}},{key:"sendConversationEnd",value:function(){return this._post("conversation-end")}},{key:"getSuggestions",value:function(e){return e&&e.length?this._post("get-suggestions",{questions:e}):console.warn("Questions could not be empty")}},{key:"getContextSuggestions",value:function(e){return this._post("get-context-suggestions",{context:e})}},{key:"clearSuggestions",value:function(){return this._post("clear-suggestions")}},{key:"updateSession",value:function(e){return this._post("update-session",e)}},{key:"startSession",value:function(e){return this._post("start-session",e)}},{key:"applySearch",value:function(e){return this._post("apply-search",e)}},{key:"displayToastMessage",value:function(e){return this._post("trigger-toast",e)}},{key:"openGemPage",value:function(e){return this._post("open-gem",e)}},{key:"get",value:function(e){return this._post("get",e)}},{key:"on",value:function(e,n){return this._channel.on(e,n)}},{key:"off",value:function(e){return this._channel.off(e)}},{key:"version",get:function(){return"3.8.0"}}],null&&a(e.prototype,null),t&&a(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();u(l,"_channel",void 0),u(l,"_frameEl",void 0);const f=l}(),r.default}()});