@shelf/agent-assist-sdk
Version:
SDK for Shelf Agent Assist Express
1 lines • 11 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["agent-assist"]=t():e["agent-assist"]=t()}(this,(function(){return function(){var e={858:function(e,t,n){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=n.nmd(e),s=function(){return function(){"use strict";var e={644:function(e,t,n){function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.r(t),n.d(t,{default:function(){return l}});var a="x-channel-internal-reply",u="x-channel-internal-hello",c=function(){function e(t){!function(e,t){if(!(e instanceof t))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=t,this.port.addEventListener("message",this._handleMessage),this.port.start()}var t,n,r;return t=e,r=[{key:"_debug",value:function(){if(e.debug){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=console).log.apply(t,["DEBUG:"].concat(r))}}},{key:"connectTo",value:function(t,n,r){if(!t)return Promise.reject("Target must be defined.");(function(e){return e&&"function"==typeof e.MessageChannel})(n)&&(r=n,n=void 0);var o=r?new r.MessageChannel:new MessageChannel,i=n||"*";try{if("document"in t){if(n&&"*"!==n&&n!==t.document.location.origin)return Promise.reject("The origins don't match.");t.postMessage(u,i,[o.port2])}else t.postMessage(u,[o.port2])}catch(e){t.postMessage(u,i,[o.port2])}return new Promise((function(t,n){var r=new e(o.port1);r.on("ready",(function(){r.off("ready"),r.off("error"),t(r)})),r.on("error",(function(e){r.off("ready"),r.off("error"),n(e)}))}))}},{key:"waitForConnection",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:self,n=arguments.length>1?arguments[1]:void 0;return new Promise((function(r){t.onmessage=function(o){if(o.data===u){var i=new e(o.ports[0]);if(n&&"*"!==n&&n!==o.origin)return i.send("error","Disallowed origin.");t.onmessage=null,i.send("ready"),r(i)}}}))}}],(n=[{key:"_warn",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];console.log("WARNING:",[].concat(t).map((function(e){return JSON.stringify(e)})).join(" "))}},{key:"_handleMessage",value:function(t){var n=t.data;e._debug("Got a message with data:",n);var r=n.id,o=n.type;return void 0!==r&&o&&"string"==typeof o&&o.trim()?o===a?this._handleReply(n):this._handleNewMessage(n):this._warn("Got an invalid message:",n)}},{key:"_handleReply",value:function(t){var n=t.id;if(!this._pendingMessages.has(n))return e._debug("Ignoring an unexpected reply.");var r=this._pendingMessages.get(n),o=r.resolve,i=r.reject;return t.error?(e._debug("Received an error reply for message",n),e._debug("Error was",t.error),i(t.error)):(e._debug("Received a success reply for message",n),e._debug("Result was",t.result),o(t.result)),this._pendingMessages.delete(n)}},{key:"_handleNewMessage",value:function(e){var t,n=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===(t=c)||void 0===t||t.then((function(e){n.port.postMessage(o(o({},l),{},{result:e}))}),(function(e){n.port.postMessage(o(o({},l),{},{error:e||"Unknown error"}))})).catch((function(e){n._warn("Reply could not be sent:",e),n.port.postMessage(o(o({},l),{},{error:"Reply failed"}))}))}},{key:"on",value:function(e,t){if(this._handlers.has(e))throw new Error("Multiple handlers registered for ".concat(e));this._handlers.set(e,t)}},{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,t){var n=this,r={id:this._messageId++,payload:t,type:e};return new Promise((function(e,t){n._pendingMessages.set(r.id,{resolve:e,reject:t}),n.port.postMessage(r)}))}}])&&i(t.prototype,n),r&&i(t,r),e}();s(c,"debug",!1);var l=c}},t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}return n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(644)}()},"object"==a(t)&&"object"==a(e)?e.exports=s():(o=[],void 0===(i="function"==typeof(r=s)?r.apply(t,o):r)||(e.exports=i))}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e};var r={};return function(){"use strict";n.r(r),n.d(r,{default:function(){return f}});var e=n(858),t=n.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,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,c(r.key),r)}}function u(e,t,n){return(t=c(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e){var t=function(e){if("object"!=i(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==i(t)?t:t+""}var l=function(){return e=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)},n=[{key:"initialize",value:function(e,n){var r=this;return new Promise((function(i,a){var c=n,l=c.shelfDomain,f=c._frameURL,p=c.onMissingToken,d=c.subdomain,y=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(c,o),g=document.createElement("iframe");g.src=f||function(e){var t=e.domain,n=e.subdomain,r=void 0===n?"":n,o=r?"?subdomain=".concat(r):"";return"https://agent-assist.".concat(function(e){return e||"shelf.io"}(t),"/").concat(o)}({domain:l,subdomain:d}),g.onload=function(){t().connectTo(g.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 t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({sdkVersion:r.version},y)})),r.on("session-start",(function(e){r.off("session-start"),i(e)}))})).catch(a)},r._frameEl=g,e.appendChild(g)}))}},{key:"setDebug",value:function(e){t().debug=e}},{key:"close",value:function(){this._channel=null,this._frameEl&&this._frameEl.parentNode&&this._frameEl.parentNode.removeChild(this._frameEl)}},{key:"_post",value:function(e,t){if(this._channel)return this._channel.send(e,t);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:"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,t){return this._channel.on(e,t)}},{key:"off",value:function(e){return this._channel.off(e)}},{key:"version",get:function(){return"3.7.0"}}],null&&a(e.prototype,null),n&&a(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n}();u(l,"_channel",void 0),u(l,"_frameEl",void 0);const f=l}(),r}()}));