@bigcommerce/checkout-sdk 1.700.2 → 1.701.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/extension.js CHANGED
@@ -1,2 +1,2 @@
1
- (()=>{"use strict";var t={483:t=>{t.exports=require("iframe-resizer")},405:t=>{t.exports=require("iframe-resizer/js/iframeResizer.contentWindow")}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r](i,i.exports,n),i.exports}n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var r={};n.r(r),n.d(r,{ExtensionCommandType:()=>_,ExtensionEventType:()=>m,initializeExtensionService:()=>N});var o,i=(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),a=function(){return a=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},a.apply(this,arguments)};const s=function(t,e,n){return e&&n?c(0,e,n):function(t){var e=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e}(t);return Object.getOwnPropertyNames(t.prototype).forEach((function(n){var r=Object.getOwnPropertyDescriptor(t.prototype,n);r&&"constructor"!==n&&Object.defineProperty(e.prototype,n,c(t.prototype,n,r))})),e}(t)};function c(t,e,n){if("function"!=typeof n.value)return n;var r=n.value;return{get:function(){var t=r.bind(this);return Object.defineProperty(this,e,a(a({},n),{value:t})),t},set:function(t){r=t}}}var u=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();const p=function(t){function e(e){var n,r,o=this.constructor,i=t.call(this,e||"An unexpected error has occurred.")||this;return i.name="StandardError",i.type="standard",n=i,r=o.prototype,Object.setPrototypeOf?Object.setPrototypeOf(n,r):n.__proto__=r,"function"==typeof Error.captureStackTrace?Error.captureStackTrace(i,o):i.stack=new Error(i.message).stack,i}return u(e,t),e}(Error);var f=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();const l=function(t){function e(e){var n=t.call(this,e||"Invalid arguments have been provided.")||this;return n.name="InvalidArgumentError",n.type="invalid_argument",n}return f(e,t),e}(p);function h(t){if(!/^(https?:)?\/\//.test(t))throw new l("The provided URL must be absolute.");var e=document.createElement("a");e.href=t;var n=e.port&&-1!==t.indexOf("".concat(e.hostname,":").concat(e.port))?e.port:"";return{hash:e.hash,hostname:e.hostname,href:e.href,origin:"".concat(e.protocol,"//").concat(e.hostname).concat(n?":".concat(n):""),pathname:e.pathname,port:n,protocol:e.protocol,search:e.search}}function d(t,e){return t.type===e}const y=function(){function t(t){var e;this._sourceOrigins=[h(t).origin,(e=h(t),h(0===e.hostname.indexOf("www")?e.href:e.href.replace(e.hostname,"www.".concat(e.hostname)))).origin],this._isListening=!1,this._listeners={}}return t.prototype.listen=function(){this._isListening||(this._isListening=!0,window.addEventListener("message",this._handleMessage))},t.prototype.stopListen=function(){this._isListening&&(this._isListening=!1,window.removeEventListener("message",this._handleMessage))},t.prototype.addListener=function(t,e){var n=this._listeners[t];n||(this._listeners[t]=n=[]),-1===n.indexOf(e)&&n.push(e)},t.prototype.removeListener=function(t,e){var n=this._listeners[t];if(n){var r=n.indexOf(e);r>=0&&n.splice(r,1)}},t.prototype.trigger=function(t,e){var n=this._listeners[t.type];n&&n.forEach((function(n){return e?n(t,e):n(t)}))},t.prototype._handleMessage=function(t){if(-1!==this._sourceOrigins.indexOf(t.origin)&&d(t.data,t.data.type)){var e=t.data,n=e.context,r=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(t);o<r.length;o++)e.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(t,r[o])&&(n[r[o]]=t[r[o]])}return n}(e,["context"]);this.trigger(r,n)}},function(t,e,n,r){var o,i=arguments.length,a=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(i<3?o(a):i>3?o(e,n,a):o(e,n))||a);i>3&&a&&Object.defineProperty(e,n,a)}([s],t.prototype,"_handleMessage",null),t}(),w=require("rxjs"),v=require("rxjs/operators");var b=function(){return b=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},b.apply(this,arguments)};const g=function(){function t(t,e,n){this._targetWindow=e,this._context=n,this._targetOrigin="*"===t?"*":h(t).origin}return t.prototype.post=function(t,e){var n=this,r=this._targetWindow;if(window!==r){if(!r)throw new Error("Unable to post message because target window is not set.");var o=e&&(0,w.fromEvent)(window,"message").pipe((0,v.filter)((function(t){return t.origin===n._targetOrigin&&d(t.data,t.data.type)&&-1!==[e.successType,e.errorType].indexOf(t.data.type)})),(0,v.map)((function(t){if(e.errorType===t.data.type)throw t.data;return t.data})),(0,v.take)(1)).toPromise();return r.postMessage(b(b({},t),{context:this._context}),this._targetOrigin),o}},t.prototype.setTarget=function(t){this._targetWindow=t},t.prototype.setContext=function(t){this._context=t},t}(),E=require("lodash");var _,m,O,x;!function(t){t.ReloadCheckout="EXTENSION:RELOAD_CHECKOUT",t.ShowLoadingIndicator="EXTENSION:SHOW_LOADING_INDICATOR",t.SetIframeStyle="EXTENSION:SET_IFRAME_STYLE",t.GetConsignments="EXTENSION:GET_CONSIGNMENTS"}(_||(_={})),function(t){t.ConsignmentsChanged="EXTENSION:CONSIGNMENTS_CHANGED"}(m||(m={})),function(t){t.Subscribe="EXTENSION_INTERNAL:SUBSCRIBE",t.Unsubscribe="EXTENSION_INTERNAL:UNSUBSCRIBE",t.ResizeIframe="EXTENSION_INTERNAL:RESIZE_IFRAME"}(O||(O={})),function(t){t.ExtensionReady="EXTENSION:READY",t.ExtensionFailed="EXTENSION:FAILED"}(x||(x={}));const I=function(){function t(t,e,n){this._eventListener=t,this._commandPoster=e,this._internalCommandPoster=n,this._commandPoster.setTarget(window.parent),this._internalCommandPoster.setTarget(window.parent)}return t.prototype.initialize=function(t){return e=this,n=void 0,o=function(){var e;return function(t,e){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:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){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=e.call(t,a)}catch(t){i=[6,t],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}(this,(function(n){switch(n.label){case 0:if(!t)throw new Error("Extension Id not found.");this._extensionId=t,this._eventListener.listen(),this._commandPoster.setContext({extensionId:t}),n.label=1;case 1:return n.trys.push([1,3,,4]),[4,this._internalCommandPoster.post({type:O.ResizeIframe,payload:{extensionId:t}},{successType:x.ExtensionReady,errorType:x.ExtensionFailed})];case 2:return n.sent(),[3,4];case 3:if(e=n.sent(),this._isExtensionFailedEvent(e))throw new Error("Extension failed to load within 60 seconds; please reload and try again.");return[3,4];case 4:return[2]}}))},new((r=void 0)||(r=Promise))((function(t,i){function a(t){try{c(o.next(t))}catch(t){i(t)}}function s(t){try{c(o.throw(t))}catch(t){i(t)}}function c(e){var n;e.done?t(e.value):(n=e.value,n instanceof r?n:new r((function(t){t(n)}))).then(a,s)}c((o=o.apply(e,n||[])).next())}));var e,n,r,o},t.prototype.post=function(t){if(!Object.values(_).includes(t.type))throw new Error("".concat(t.type," is not supported."));this._commandPoster.post(t)},t.prototype.addListener=function(t,e){var n=this;if(void 0===e&&(e=E.noop),!this._extensionId)throw new Error("Extension is not initialized.");var r=this._extensionId;if(!Object.values(m).includes(t))throw new Error("".concat(t," is not supported."));return this._internalCommandPoster.post({type:O.Subscribe,payload:{extensionId:r,eventType:t}}),this._eventListener.addListener(t,e),function(){n._internalCommandPoster.post({type:O.Unsubscribe,payload:{extensionId:r,eventType:t}}),n._eventListener.removeListener(t,e)}},t.prototype._isExtensionFailedEvent=function(t){return t.type===x.ExtensionFailed},t}();var S=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{c(r.next(t))}catch(t){i(t)}}function s(t){try{c(r.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}c((r=r.apply(t,e||[])).next())}))},T=function(t,e){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:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){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=e.call(t,a)}catch(t){i=[6,t],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};function N(t){return S(this,void 0,void 0,(function(){var e,r,o,i,a;return T(this,(function(s){switch(s.label){case 0:return e=t.extensionId,r=t.parentOrigin,o=t.taggedElementId,i=t.fixedHeight,n(405),[4,(a=new I(new y(r),new g(r),new g(r))).initialize(e)];case 1:return s.sent(),function(t,e){if(!function(t){return"parentIFrame"in t}(window))throw new Error("iFramerResizer window not found.");if(e)window.parentIFrame.size(e);else if(window.parentIFrame.autoResize(!0),t){var n=document.getElementById(t);if(!n)throw new Error("Element not found.");n.setAttribute("data-iframe-height",""),window.parentIFrame.setHeightCalculationMethod("taggedElement")}else window.parentIFrame.setHeightCalculationMethod("bodyOffset")}(o,i),[2,a]}}))}))}module.exports=r})();
1
+ (()=>{"use strict";var t={483:t=>{t.exports=require("iframe-resizer")},405:t=>{t.exports=require("iframe-resizer/js/iframeResizer.contentWindow")}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r](i,i.exports,n),i.exports}n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var r={};n.r(r),n.d(r,{ExtensionCommandType:()=>m,ExtensionEventType:()=>b,initializeExtensionService:()=>C});var o,i=(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=function(){return s=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},s.apply(this,arguments)};const a=function(t,e,n){return e&&n?c(0,e,n):function(t){var e=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e}(t);return Object.getOwnPropertyNames(t.prototype).forEach((function(n){var r=Object.getOwnPropertyDescriptor(t.prototype,n);r&&"constructor"!==n&&Object.defineProperty(e.prototype,n,c(t.prototype,n,r))})),e}(t)};function c(t,e,n){if("function"!=typeof n.value)return n;var r=n.value;return{get:function(){var t=r.bind(this);return Object.defineProperty(this,e,s(s({},n),{value:t})),t},set:function(t){r=t}}}var u=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();const p=function(t){function e(e){var n,r,o=this.constructor,i=t.call(this,e||"An unexpected error has occurred.")||this;return i.name="StandardError",i.type="standard",n=i,r=o.prototype,Object.setPrototypeOf?Object.setPrototypeOf(n,r):n.__proto__=r,"function"==typeof Error.captureStackTrace?Error.captureStackTrace(i,o):i.stack=new Error(i.message).stack,i}return u(e,t),e}(Error);var f=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();const l=function(t){function e(e){var n=t.call(this,e||"Invalid arguments have been provided.")||this;return n.name="InvalidArgumentError",n.type="invalid_argument",n}return f(e,t),e}(p);function h(t){if(!/^(https?:)?\/\//.test(t))throw new l("The provided URL must be absolute.");var e=document.createElement("a");e.href=t;var n=e.port&&-1!==t.indexOf("".concat(e.hostname,":").concat(e.port))?e.port:"";return{hash:e.hash,hostname:e.hostname,href:e.href,origin:"".concat(e.protocol,"//").concat(e.hostname).concat(n?":".concat(n):""),pathname:e.pathname,port:n,protocol:e.protocol,search:e.search}}function d(t,e){return t.type===e}const y=function(){function t(t){var e;this._sourceOrigins=[h(t).origin,(e=h(t),h(0===e.hostname.indexOf("www")?e.href:e.href.replace(e.hostname,"www.".concat(e.hostname)))).origin],this._isListening=!1,this._listeners={}}return t.prototype.listen=function(){this._isListening||(this._isListening=!0,window.addEventListener("message",this._handleMessage))},t.prototype.stopListen=function(){this._isListening&&(this._isListening=!1,window.removeEventListener("message",this._handleMessage))},t.prototype.addListener=function(t,e){var n=this._listeners[t];n||(this._listeners[t]=n=[]),-1===n.indexOf(e)&&n.push(e)},t.prototype.removeListener=function(t,e){var n=this._listeners[t];if(n){var r=n.indexOf(e);r>=0&&n.splice(r,1)}},t.prototype.trigger=function(t,e){var n=this._listeners[t.type];n&&n.forEach((function(n){return e?n(t,e):n(t)}))},t.prototype._handleMessage=function(t){if(-1!==this._sourceOrigins.indexOf(t.origin)&&d(t.data,t.data.type)){var e=t.data,n=e.context,r=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(t);o<r.length;o++)e.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(t,r[o])&&(n[r[o]]=t[r[o]])}return n}(e,["context"]);this.trigger(r,n)}},function(t,e,n,r){var o,i=arguments.length,s=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(i<3?o(s):i>3?o(e,n,s):o(e,n))||s);i>3&&s&&Object.defineProperty(e,n,s)}([a],t.prototype,"_handleMessage",null),t}(),v=require("rxjs"),w=require("rxjs/operators");var g=function(){return g=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},g.apply(this,arguments)};const E=function(){function t(t,e,n){this._targetWindow=e,this._context=n,this._targetOrigin="*"===t?"*":h(t).origin}return t.prototype.post=function(t,e){var n=this,r=this._targetWindow;if(window!==r){if(!r)throw new Error("Unable to post message because target window is not set.");var o=e&&(0,v.fromEvent)(window,"message").pipe((0,w.filter)((function(t){return t.origin===n._targetOrigin&&d(t.data,t.data.type)&&-1!==[e.successType,e.errorType].indexOf(t.data.type)})),(0,w.map)((function(t){if(e.errorType===t.data.type)throw t.data;return t.data})),(0,w.take)(1)).toPromise();return r.postMessage(g(g({},t),{context:this._context}),this._targetOrigin),o}},t.prototype.setTarget=function(t){this._targetWindow=t},t.prototype.setContext=function(t){this._context=t},t}(),_=require("lodash");var m,b,O,x,I;!function(t){t.ReloadCheckout="EXTENSION:RELOAD_CHECKOUT",t.ShowLoadingIndicator="EXTENSION:SHOW_LOADING_INDICATOR",t.SetIframeStyle="EXTENSION:SET_IFRAME_STYLE"}(m||(m={})),function(t){t.ConsignmentsChanged="EXTENSION:CONSIGNMENTS_CHANGED"}(b||(b={})),function(t){t.Subscribe="EXTENSION_INTERNAL:SUBSCRIBE",t.Unsubscribe="EXTENSION_INTERNAL:UNSUBSCRIBE",t.ResizeIframe="EXTENSION_INTERNAL:RESIZE_IFRAME"}(O||(O={})),function(t){t.ExtensionReady="EXTENSION:READY",t.ExtensionFailed="EXTENSION:FAILED"}(x||(x={})),function(t){t.GetConsignments="EXTENSION:GET_CONSIGNMENTS"}(I||(I={}));var S=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function s(t){try{c(r.next(t))}catch(t){i(t)}}function a(t){try{c(r.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}c((r=r.apply(t,e||[])).next())}))},T=function(t,e){var n,r,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)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 s.label++,{value:i[1],done:!1};case 5:s.label++,r=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!((o=(o=s.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=e.call(t,s)}catch(t){i=[6,t],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}};const N=function(){function t(t,e,n,r){this._messageListener=t,this._eventListener=e,this._messagePoster=n,this._internalCommandPoster=r,this._messagePoster.setTarget(window.parent),this._internalCommandPoster.setTarget(window.parent)}return t.prototype.initialize=function(t){return S(this,void 0,void 0,(function(){var e;return T(this,(function(n){switch(n.label){case 0:if(!t)throw new Error("Extension Id not found.");this._extensionId=t,this._messageListener.listen(),this._eventListener.listen(),this._messagePoster.setContext({extensionId:t}),n.label=1;case 1:return n.trys.push([1,3,,4]),[4,this._internalCommandPoster.post({type:O.ResizeIframe,payload:{extensionId:t}},{successType:x.ExtensionReady,errorType:x.ExtensionFailed})];case 2:return n.sent(),[3,4];case 3:if(e=n.sent(),this._isExtensionFailedEvent(e))throw new Error("Extension failed to load within 60 seconds; please reload and try again.");return[3,4];case 4:return[2]}}))}))},t.prototype.post=function(t){if(!this._isCommandOrQueryType(t.type))throw new Error("".concat(t.type," is not supported."));this._messagePoster.post(t)},t.prototype.addListener=function(t,e){var n=this;if(void 0===e&&(e=_.noop),!this._extensionId)throw new Error("Extension is not initialized.");var r=this._extensionId;if(!Object.values(b).includes(t))throw new Error("".concat(t," is not supported."));return this._internalCommandPoster.post({type:O.Subscribe,payload:{extensionId:r,eventType:t}}),this._eventListener.addListener(t,e),function(){n._internalCommandPoster.post({type:O.Unsubscribe,payload:{extensionId:r,eventType:t}}),n._eventListener.removeListener(t,e)}},t.prototype.getConsignments=function(t){return void 0===t&&(t=!0),S(this,void 0,void 0,(function(){var e=this;return T(this,(function(n){return[2,new Promise((function(n){var r=function(t){e._messageListener.removeListener("EXTENSION:GET_CONSIGNMENTS",r),n(t.payload.consignments)};e._messageListener.addListener("EXTENSION:GET_CONSIGNMENTS",r),e.post({type:I.GetConsignments,payload:{useCache:t}})}))]}))}))},t.prototype._isExtensionFailedEvent=function(t){return t.type===x.ExtensionFailed},t.prototype._isCommandOrQueryType=function(t){return Object.values(m).includes(t)||Object.values(I).includes(t)},t}();var j=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function s(t){try{c(r.next(t))}catch(t){i(t)}}function a(t){try{c(r.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}c((r=r.apply(t,e||[])).next())}))},P=function(t,e){var n,r,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)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 s.label++,{value:i[1],done:!1};case 5:s.label++,r=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!((o=(o=s.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=e.call(t,s)}catch(t){i=[6,t],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}};function C(t){return j(this,void 0,void 0,(function(){var e,r,o,i,s;return P(this,(function(a){switch(a.label){case 0:return e=t.extensionId,r=t.parentOrigin,o=t.taggedElementId,i=t.fixedHeight,n(405),[4,(s=new N(new y(r),new y(r),new E(r),new E(r))).initialize(e)];case 1:return a.sent(),function(t,e){if(!function(t){return"parentIFrame"in t}(window))throw new Error("iFramerResizer window not found.");if(e)window.parentIFrame.size(e);else if(window.parentIFrame.autoResize(!0),t){var n=document.getElementById(t);if(!n)throw new Error("Element not found.");n.setAttribute("data-iframe-height",""),window.parentIFrame.setHeightCalculationMethod("taggedElement")}else window.parentIFrame.setHeightCalculationMethod("bodyOffset")}(o,i),[2,s]}}))}))}module.exports=r})();
2
2
  //# sourceMappingURL=extension.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extension.js","mappings":"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","sources":["webpack://@bigcommerce/checkout-sdk/external commonjs \"iframe-resizer\"","webpack://@bigcommerce/checkout-sdk/external commonjs \"iframe-resizer/js/iframeResizer.contentWindow\"","webpack://@bigcommerce/checkout-sdk/webpack/bootstrap","webpack://@bigcommerce/checkout-sdk/webpack/runtime/define property getters","webpack://@bigcommerce/checkout-sdk/webpack/runtime/hasOwnProperty shorthand","webpack://@bigcommerce/checkout-sdk/webpack/runtime/make namespace object","webpack://@bigcommerce/checkout-sdk/./packages/utility/src/bind-decorator/bind-decorator.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/error/errors/standard-error.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/utility/set-prototype-of.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/error/errors/invalid-argument-error.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/url/parse-url.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/iframe/is-iframe-event.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/iframe/iframe-event-listener.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/url/append-www.ts","webpack://@bigcommerce/checkout-sdk/external commonjs \"rxjs\"","webpack://@bigcommerce/checkout-sdk/external commonjs \"rxjs/operators\"","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/iframe/iframe-event-poster.ts","webpack://@bigcommerce/checkout-sdk/external commonjs \"lodash\"","webpack://@bigcommerce/checkout-sdk/./packages/core/src/extension/extension-commands.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/extension/extension-events.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/extension/extension-internal-commands.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/extension/extension-internal-events.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/extension/extension-service.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/extension/initialize-extension-service.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/iframe/iframe-resizer.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/extension/iframe-resizer-setup.ts"],"sourcesContent":["module.exports = require(\"iframe-resizer\");","module.exports = require(\"iframe-resizer/js/iframeResizer.contentWindow\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Decorates a class or a method by binding all its prototype methods or itself\n * to the calling instance respectively.\n */\nfunction bindDecorator<T extends Method>(\n target: object,\n key: string,\n descriptor: TypedPropertyDescriptor<T>,\n): TypedPropertyDescriptor<T>;\nfunction bindDecorator<T extends Constructor<object>>(target: T): T;\n\nfunction bindDecorator(target: any, key?: any, descriptor?: any): any {\n if (!key || !descriptor) {\n return bindClassDecorator(target);\n }\n\n return bindMethodDecorator(target, key, descriptor);\n}\n\nexport default bindDecorator;\n\n/**\n * Decorates a class by binding all its prototype methods to the calling\n * instance.\n */\nexport function bindClassDecorator<T extends Constructor<object>>(target: T): T {\n const decoratedTarget = class extends target {};\n\n Object.getOwnPropertyNames(target.prototype).forEach((key) => {\n const descriptor = Object.getOwnPropertyDescriptor(target.prototype, key);\n\n if (!descriptor || key === 'constructor') {\n return;\n }\n\n Object.defineProperty(\n decoratedTarget.prototype,\n key,\n bindMethodDecorator(target.prototype, key, descriptor),\n );\n });\n\n return decoratedTarget;\n}\n\n/**\n * Decorates a method by binding it to the calling instance.\n */\nexport function bindMethodDecorator<T extends Method>(\n _: object,\n key: string,\n descriptor: TypedPropertyDescriptor<T>,\n): TypedPropertyDescriptor<T> {\n if (typeof descriptor.value !== 'function') {\n return descriptor;\n }\n\n let method: T = descriptor.value;\n\n return {\n get() {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const boundMethod = method.bind(this) as T;\n\n Object.defineProperty(this, key, {\n ...descriptor,\n value: boundMethod,\n });\n\n return boundMethod;\n },\n set(value) {\n method = value;\n },\n };\n}\n\nexport type Constructor<T> = new (...args: any[]) => T;\nexport type Method = (...args: any[]) => any;\n","import { setPrototypeOf } from '../../utility';\n\nimport CustomError from './custom-error';\n\n/**\n * This error type should not be constructed directly. It is a base class for\n * all custom errors thrown in this library.\n */\nexport default abstract class StandardError extends Error implements CustomError {\n name = 'StandardError';\n type = 'standard';\n\n constructor(message?: string) {\n super(message || 'An unexpected error has occurred.');\n\n setPrototypeOf(this, new.target.prototype);\n\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, new.target);\n } else {\n this.stack = new Error(this.message).stack;\n }\n }\n}\n","export default function setPrototypeOf(object: any, prototype: object) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(object, prototype);\n } else {\n object.__proto__ = prototype;\n }\n\n return object;\n}\n","import StandardError from './standard-error';\n\n/**\n * This error should be thrown when a method is unable to proceed because the\n * caller has not provided all the arguments according to their requirements,\n * i.e.: if an argument is missing or it is not the expected data type.\n */\nexport default class InvalidArgumentError extends StandardError {\n constructor(message?: string) {\n super(message || 'Invalid arguments have been provided.');\n\n this.name = 'InvalidArgumentError';\n this.type = 'invalid_argument';\n }\n}\n","import { InvalidArgumentError } from '../error/errors';\n\nimport Url from './url';\n\nexport default function parseUrl(url: string): Url {\n if (!/^(https?:)?\\/\\//.test(url)) {\n throw new InvalidArgumentError('The provided URL must be absolute.');\n }\n\n // new URL() is not supported in IE11, use anchor tag instead\n const anchor = document.createElement('a');\n\n anchor.href = url;\n\n // IE11 returns 80 or 443 for the port number depending on the URL scheme,\n // even if the port number is not specified in the URL.\n const port =\n anchor.port && url.indexOf(`${anchor.hostname}:${anchor.port}`) !== -1 ? anchor.port : '';\n\n return {\n hash: anchor.hash,\n hostname: anchor.hostname,\n href: anchor.href,\n origin: `${anchor.protocol}//${anchor.hostname}${port ? `:${port}` : ''}`,\n pathname: anchor.pathname,\n port,\n protocol: anchor.protocol,\n search: anchor.search,\n };\n}\n","import IframeEvent from './iframe-event';\n\nexport default function isIframeEvent<TEvent extends IframeEvent<TType>, TType extends string>(\n object: any,\n type: TType,\n): object is TEvent {\n return object.type === type;\n}\n","import { bindDecorator as bind } from '@bigcommerce/checkout-sdk/utility';\n\nimport { appendWww, parseUrl } from '../url';\n\nimport { IframeEventMap } from './iframe-event';\nimport isIframeEvent from './is-iframe-event';\n\nexport default class IframeEventListener<\n TEventMap extends IframeEventMap<keyof TEventMap>,\n TContext = undefined,\n> {\n private _isListening: boolean;\n private _listeners: EventListeners<TEventMap, TContext>;\n private _sourceOrigins: string[];\n\n constructor(sourceOrigin: string) {\n this._sourceOrigins = [\n parseUrl(sourceOrigin).origin,\n appendWww(parseUrl(sourceOrigin)).origin,\n ];\n this._isListening = false;\n this._listeners = {};\n }\n\n listen(): void {\n if (this._isListening) {\n return;\n }\n\n this._isListening = true;\n\n window.addEventListener('message', this._handleMessage);\n }\n\n stopListen(): void {\n if (!this._isListening) {\n return;\n }\n\n this._isListening = false;\n\n window.removeEventListener('message', this._handleMessage);\n }\n\n addListener<TType extends keyof TEventMap>(\n type: TType,\n listener: (event: TEventMap[TType], context?: TContext) => void,\n ): void {\n let listeners = this._listeners[type];\n\n if (!listeners) {\n this._listeners[type] = listeners = [];\n }\n\n if (listeners.indexOf(listener) === -1) {\n listeners.push(listener);\n }\n }\n\n removeListener<TType extends keyof TEventMap>(\n type: TType,\n listener: (event: TEventMap[TType], context?: TContext) => void,\n ): void {\n const listeners = this._listeners[type];\n\n if (!listeners) {\n return;\n }\n\n const index = listeners.indexOf(listener);\n\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n }\n\n trigger<TType extends keyof TEventMap>(event: TEventMap[TType], context?: TContext): void {\n const listeners = this._listeners[event.type];\n\n if (!listeners) {\n return;\n }\n\n listeners.forEach((listener) => (context ? listener(event, context) : listener(event)));\n }\n\n @bind\n private _handleMessage(messageEvent: MessageEvent): void {\n if (\n this._sourceOrigins.indexOf(messageEvent.origin) === -1 ||\n !isIframeEvent(messageEvent.data as TEventMap[keyof TEventMap], messageEvent.data.type)\n ) {\n return;\n }\n\n const { context, ...event } = messageEvent.data;\n\n this.trigger(event, context);\n }\n}\n\ntype EventListeners<TEventMap, TContext = undefined> = {\n [key in keyof TEventMap]?: Array<(event: TEventMap[key], context?: TContext) => void>;\n};\n","import parseUrl from './parse-url';\nimport Url from './url';\n\nexport default function appendWww(url: Url): Url {\n return parseUrl(\n url.hostname.indexOf('www') === 0\n ? url.href\n : url.href.replace(url.hostname, `www.${url.hostname}`),\n );\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"rxjs\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"rxjs/operators\");","import { fromEvent } from 'rxjs';\nimport { filter, map, take } from 'rxjs/operators';\n\nimport { parseUrl } from '../url';\n\nimport IframeEvent from './iframe-event';\nimport isIframeEvent from './is-iframe-event';\n\nexport interface IframeEventPostOptions<\n TSuccessEvent extends IframeEvent,\n TErrorEvent extends IframeEvent,\n> {\n errorType?: TErrorEvent['type'];\n successType?: TSuccessEvent['type'];\n}\n\nexport default class IframeEventPoster<TEvent, TContext = undefined> {\n private _targetOrigin: string;\n\n constructor(targetOrigin: string, private _targetWindow?: Window, private _context?: TContext) {\n this._targetOrigin = targetOrigin === '*' ? '*' : parseUrl(targetOrigin).origin;\n }\n\n post(event: TEvent): void;\n post<\n TSuccessEvent extends IframeEvent = IframeEvent,\n TErrorEvent extends IframeEvent = IframeEvent,\n >(\n event: TEvent,\n options: IframeEventPostOptions<TSuccessEvent, TErrorEvent>,\n ): Promise<TSuccessEvent>;\n post<\n TSuccessEvent extends IframeEvent = IframeEvent,\n TErrorEvent extends IframeEvent = IframeEvent,\n >(\n event: TEvent,\n options?: IframeEventPostOptions<TSuccessEvent, TErrorEvent>,\n ): Promise<TSuccessEvent> | void {\n const targetWindow = this._targetWindow;\n\n if (window === targetWindow) {\n return;\n }\n\n if (!targetWindow) {\n throw new Error('Unable to post message because target window is not set.');\n }\n\n const result =\n options &&\n fromEvent<MessageEvent>(window, 'message')\n .pipe(\n filter(\n (event) =>\n event.origin === this._targetOrigin &&\n isIframeEvent(event.data, event.data.type) &&\n [options.successType, options.errorType].indexOf(event.data.type) !==\n -1,\n ),\n map((event) => {\n if (options.errorType === event.data.type) {\n throw event.data;\n }\n\n return event.data;\n }),\n take(1),\n )\n .toPromise();\n\n targetWindow.postMessage({ ...event, context: this._context }, this._targetOrigin);\n\n return result;\n }\n\n setTarget(window: Window) {\n this._targetWindow = window;\n }\n\n setContext(context: TContext) {\n this._context = context;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash\");","export type ExtensionCommand =\n | ReloadCheckoutCommand\n | ShowLoadingIndicatorCommand\n | SetIframeStyleCommand\n | GetConsignmentsCommand;\n\nexport enum ExtensionCommandType {\n ReloadCheckout = 'EXTENSION:RELOAD_CHECKOUT',\n ShowLoadingIndicator = 'EXTENSION:SHOW_LOADING_INDICATOR',\n SetIframeStyle = 'EXTENSION:SET_IFRAME_STYLE',\n GetConsignments = 'EXTENSION:GET_CONSIGNMENTS',\n}\n\nexport interface ExtensionCommandContext {\n extensionId: string;\n}\n\nexport interface ReloadCheckoutCommand {\n type: ExtensionCommandType.ReloadCheckout;\n}\n\nexport interface ShowLoadingIndicatorCommand {\n type: ExtensionCommandType.ShowLoadingIndicator;\n payload: {\n show: boolean;\n };\n}\n\nexport interface SetIframeStyleCommand {\n type: ExtensionCommandType.SetIframeStyle;\n payload: {\n style: {\n [key: string]: string | number | null;\n };\n };\n}\n\nexport interface GetConsignmentsCommand {\n type: ExtensionCommandType.GetConsignments;\n}\n\nexport interface ExtensionCommandMap {\n [ExtensionCommandType.ReloadCheckout]: ReloadCheckoutCommand;\n [ExtensionCommandType.ShowLoadingIndicator]: ShowLoadingIndicatorCommand;\n [ExtensionCommandType.SetIframeStyle]: SetIframeStyleCommand;\n [ExtensionCommandType.GetConsignments]: GetConsignmentsCommand;\n}\n","import { Consignment } from '../shipping';\n\nexport enum ExtensionEventType {\n ConsignmentsChanged = 'EXTENSION:CONSIGNMENTS_CHANGED',\n}\n\nexport interface ConsignmentsChangedEvent {\n type: ExtensionEventType.ConsignmentsChanged;\n payload: {\n consignments: Consignment[];\n previousConsignments: Consignment[];\n };\n}\n\nexport type ExtensionEvent = ConsignmentsChangedEvent;\n\nexport interface ExtensionEventMap {\n [ExtensionEventType.ConsignmentsChanged]: ConsignmentsChangedEvent;\n}\n","import { ExtensionEventType } from './extension-events';\n\nexport enum ExtensionInternalCommandType {\n Subscribe = 'EXTENSION_INTERNAL:SUBSCRIBE',\n Unsubscribe = 'EXTENSION_INTERNAL:UNSUBSCRIBE',\n ResizeIframe = 'EXTENSION_INTERNAL:RESIZE_IFRAME',\n}\n\nexport interface ExtensionSubscribeCommand {\n type: ExtensionInternalCommandType.Subscribe;\n payload: {\n extensionId: string;\n eventType: ExtensionEventType;\n };\n}\n\nexport interface ExtensionUnsubscribeCommand {\n type: ExtensionInternalCommandType.Unsubscribe;\n payload: {\n extensionId: string;\n eventType: ExtensionEventType;\n };\n}\n\nexport interface ExtensionResizeIframeCommand {\n type: ExtensionInternalCommandType.ResizeIframe;\n payload: {\n extensionId: string;\n };\n}\n\nexport interface ExtensionInternalCommandMap {\n [ExtensionInternalCommandType.Subscribe]: ExtensionSubscribeCommand;\n [ExtensionInternalCommandType.Unsubscribe]: ExtensionUnsubscribeCommand;\n [ExtensionInternalCommandType.ResizeIframe]: ExtensionResizeIframeCommand;\n}\n\nexport type ExtensionInternalCommand =\n | ExtensionSubscribeCommand\n | ExtensionUnsubscribeCommand\n | ExtensionResizeIframeCommand;\n","export enum ExtensionInternalEventType {\n ExtensionReady = 'EXTENSION:READY',\n ExtensionFailed = 'EXTENSION:FAILED',\n}\n\nexport interface ExtensionReadyEvent {\n type: ExtensionInternalEventType.ExtensionReady;\n}\n\nexport interface ExtensionFailedEvent {\n type: ExtensionInternalEventType.ExtensionFailed;\n}\n\nexport type ExtensionInternalEvent = ExtensionReadyEvent | ExtensionFailedEvent;\n","import { noop } from 'lodash';\n\nimport { IframeEventListener, IframeEventPoster } from '../common/iframe';\n\nimport {\n ExtensionCommand,\n ExtensionCommandContext,\n ExtensionCommandType,\n} from './extension-commands';\nimport { ExtensionEventMap, ExtensionEventType } from './extension-events';\nimport {\n ExtensionInternalCommand,\n ExtensionInternalCommandType,\n} from './extension-internal-commands';\nimport { ExtensionInternalEventType } from './extension-internal-events';\n\nexport default class ExtensionService {\n private _extensionId?: string;\n\n constructor(\n private _eventListener: IframeEventListener<ExtensionEventMap>,\n private _commandPoster: IframeEventPoster<ExtensionCommand, ExtensionCommandContext>,\n private _internalCommandPoster: IframeEventPoster<ExtensionInternalCommand>,\n ) {\n this._commandPoster.setTarget(window.parent);\n this._internalCommandPoster.setTarget(window.parent);\n }\n\n async initialize(extensionId: string): Promise<void> {\n if (!extensionId) {\n throw new Error('Extension Id not found.');\n }\n\n this._extensionId = extensionId;\n\n this._eventListener.listen();\n this._commandPoster.setContext({ extensionId });\n\n try {\n await this._internalCommandPoster.post(\n {\n type: ExtensionInternalCommandType.ResizeIframe,\n payload: { extensionId },\n },\n {\n successType: ExtensionInternalEventType.ExtensionReady,\n errorType: ExtensionInternalEventType.ExtensionFailed,\n },\n );\n } catch (event) {\n if (this._isExtensionFailedEvent(event)) {\n throw new Error(\n 'Extension failed to load within 60 seconds; please reload and try again.',\n );\n }\n }\n }\n\n post(command: ExtensionCommand): void {\n if (!Object.values(ExtensionCommandType).includes(command.type)) {\n throw new Error(`${command.type} is not supported.`);\n }\n\n this._commandPoster.post(command);\n }\n\n addListener(eventType: ExtensionEventType, callback: () => void = noop): () => void {\n if (!this._extensionId) {\n throw new Error('Extension is not initialized.');\n }\n\n const extensionId = this._extensionId;\n\n if (!Object.values(ExtensionEventType).includes(eventType)) {\n throw new Error(`${eventType} is not supported.`);\n }\n\n this._internalCommandPoster.post({\n type: ExtensionInternalCommandType.Subscribe,\n payload: { extensionId, eventType },\n });\n\n this._eventListener.addListener(eventType, callback);\n\n return () => {\n this._internalCommandPoster.post({\n type: ExtensionInternalCommandType.Unsubscribe,\n payload: { extensionId, eventType },\n });\n\n this._eventListener.removeListener(eventType, callback);\n };\n }\n\n private _isExtensionFailedEvent(\n event: any,\n ): event is ExtensionInternalEventType.ExtensionFailed {\n return event.type === ExtensionInternalEventType.ExtensionFailed;\n }\n}\n","import {\n IframeEventListener,\n IframeEventPoster,\n setupContentWindowForIframeResizer,\n} from '../common/iframe';\n\nimport { ExtensionCommand, ExtensionCommandContext } from './extension-commands';\nimport { ExtensionEventMap } from './extension-events';\nimport { ExtensionInternalCommand } from './extension-internal-commands';\nimport ExtensionService from './extension-service';\nimport { iframeResizerSetup } from './iframe-resizer-setup';\n\nexport interface InitializeExtensionServiceOptions {\n extensionId: string;\n parentOrigin: string;\n taggedElementId?: string;\n fixedHeight?: number;\n}\n\nexport default async function initializeExtensionService(\n options: InitializeExtensionServiceOptions,\n): Promise<ExtensionService> {\n const { extensionId, parentOrigin, taggedElementId, fixedHeight } = options;\n\n setupContentWindowForIframeResizer();\n\n const extension = new ExtensionService(\n new IframeEventListener<ExtensionEventMap>(parentOrigin),\n new IframeEventPoster<ExtensionCommand, ExtensionCommandContext>(parentOrigin),\n new IframeEventPoster<ExtensionInternalCommand>(parentOrigin),\n );\n\n await extension.initialize(extensionId);\n\n iframeResizerSetup(taggedElementId, fixedHeight);\n\n return extension;\n}\n","import { IFrameComponent, IFrameOptions } from 'iframe-resizer';\n\nexport {\n HeightCalculationMethod,\n IFrameComponent,\n IFrameMessageData,\n IFrameObject,\n IFrameOptions,\n IFramePage,\n IFramePageOptions,\n IFrameResizedData,\n IFrameScrollData,\n PageInfo,\n WidthCalculationMethod,\n} from 'iframe-resizer';\n\n// The reason why we are wrapping the original `iframeResizer` function imported\n// from the package is because the package sets up event listeners (window\n// resize etc...) as soon as the package is imported. Therefore, to defer the\n// side effect from happening until the function is actually being used, we are\n// importing the package inside this function. To minimise the chance of\n// importing the original package inadvertently, we are also re-exporting all of\n// its public interfaces. The re-exports do not cause any side effect because\n// they are plain TypeScript interfaces; meaning they are only used for type\n// checks rather than for code output.\nexport function iframeResizer(\n options: IFrameOptions,\n target: string | HTMLElement,\n): IFrameComponent[] {\n /* eslint-disable @typescript-eslint/no-var-requires */\n const { iframeResizer: originalIframeResizer } = require('iframe-resizer');\n\n return originalIframeResizer(options, target);\n}\n\n// We also need to wrap the original `iframeResizer.contentWindow` because\n// similarly the package sets up event listeners as soon as the package gets\n// imported. Another reason is that if it is imported at the top level using a\n// regular import statement, it will be stripped out by Webpack as it is\n// considered as \"unused\", unless we explicitly mark it as a package that\n// produces side effects.\nexport function setupContentWindowForIframeResizer(): void {\n require('iframe-resizer/js/iframeResizer.contentWindow');\n}\n","export interface IframeResizerWindow extends Window {\n parentIFrame: {\n autoResize: (isEnabled: boolean) => void;\n setHeightCalculationMethod: (id: string) => void;\n size: (height: number) => void;\n };\n}\n\nexport function isIframeResizerWindow(window: Window): window is IframeResizerWindow {\n return 'parentIFrame' in window;\n}\n\nexport function iframeResizerSetup(\n taggedElementId: string | undefined,\n fixedHeight: number | undefined,\n): void {\n if (!isIframeResizerWindow(window)) {\n throw new Error('iFramerResizer window not found.');\n }\n\n if (fixedHeight) {\n window.parentIFrame.size(fixedHeight);\n } else {\n window.parentIFrame.autoResize(true);\n\n if (taggedElementId) {\n const element = document.getElementById(taggedElementId);\n\n if (!element) {\n throw new Error(`Element not found.`);\n }\n\n element.setAttribute('data-iframe-height', '');\n window.parentIFrame.setHeightCalculationMethod('taggedElement');\n } else {\n window.parentIFrame.setHeightCalculationMethod('bodyOffset');\n }\n }\n}\n"],"names":["module","exports","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","target","descriptor","bindMethodDecorator","decoratedTarget","getOwnPropertyNames","forEach","getOwnPropertyDescriptor","bindClassDecorator","_","method","boundMethod","bind","this","set","message","object","name","type","setPrototypeOf","__proto__","Error","captureStackTrace","stack","parseUrl","url","test","anchor","document","createElement","href","port","indexOf","hostname","hash","origin","protocol","pathname","search","isIframeEvent","sourceOrigin","_sourceOrigins","replace","_isListening","_listeners","listen","window","addEventListener","_handleMessage","stopListen","removeEventListener","addListener","listener","listeners","push","removeListener","index","splice","trigger","event","context","messageEvent","data","targetOrigin","_targetWindow","_context","_targetOrigin","post","options","targetWindow","result","fromEvent","pipe","filter","successType","errorType","map","take","toPromise","postMessage","setTarget","setContext","ExtensionCommandType","ExtensionEventType","ExtensionInternalCommandType","ExtensionInternalEventType","_eventListener","_commandPoster","_internalCommandPoster","parent","initialize","extensionId","_extensionId","ResizeIframe","payload","ExtensionReady","ExtensionFailed","_isExtensionFailedEvent","command","values","includes","eventType","callback","Subscribe","Unsubscribe","initializeExtensionService","parentOrigin","taggedElementId","fixedHeight","extension","isIframeResizerWindow","parentIFrame","size","autoResize","element","getElementById","setAttribute","setHeightCalculationMethod","iframeResizerSetup"],"sourceRoot":""}
1
+ {"version":3,"file":"extension.js","mappings":"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","sources":["webpack://@bigcommerce/checkout-sdk/external commonjs \"iframe-resizer\"","webpack://@bigcommerce/checkout-sdk/external commonjs \"iframe-resizer/js/iframeResizer.contentWindow\"","webpack://@bigcommerce/checkout-sdk/webpack/bootstrap","webpack://@bigcommerce/checkout-sdk/webpack/runtime/define property getters","webpack://@bigcommerce/checkout-sdk/webpack/runtime/hasOwnProperty shorthand","webpack://@bigcommerce/checkout-sdk/webpack/runtime/make namespace object","webpack://@bigcommerce/checkout-sdk/./packages/utility/src/bind-decorator/bind-decorator.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/error/errors/standard-error.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/utility/set-prototype-of.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/error/errors/invalid-argument-error.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/url/parse-url.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/iframe/is-iframe-event.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/iframe/iframe-event-listener.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/url/append-www.ts","webpack://@bigcommerce/checkout-sdk/external commonjs \"rxjs\"","webpack://@bigcommerce/checkout-sdk/external commonjs \"rxjs/operators\"","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/iframe/iframe-event-poster.ts","webpack://@bigcommerce/checkout-sdk/external commonjs \"lodash\"","webpack://@bigcommerce/checkout-sdk/./packages/core/src/extension/extension-commands.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/extension/extension-events.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/extension/extension-internal-commands.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/extension/extension-internal-events.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/extension/extension-queries.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/extension/extension-service.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/extension/initialize-extension-service.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/common/iframe/iframe-resizer.ts","webpack://@bigcommerce/checkout-sdk/./packages/core/src/extension/iframe-resizer-setup.ts"],"sourcesContent":["module.exports = require(\"iframe-resizer\");","module.exports = require(\"iframe-resizer/js/iframeResizer.contentWindow\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Decorates a class or a method by binding all its prototype methods or itself\n * to the calling instance respectively.\n */\nfunction bindDecorator<T extends Method>(\n target: object,\n key: string,\n descriptor: TypedPropertyDescriptor<T>,\n): TypedPropertyDescriptor<T>;\nfunction bindDecorator<T extends Constructor<object>>(target: T): T;\n\nfunction bindDecorator(target: any, key?: any, descriptor?: any): any {\n if (!key || !descriptor) {\n return bindClassDecorator(target);\n }\n\n return bindMethodDecorator(target, key, descriptor);\n}\n\nexport default bindDecorator;\n\n/**\n * Decorates a class by binding all its prototype methods to the calling\n * instance.\n */\nexport function bindClassDecorator<T extends Constructor<object>>(target: T): T {\n const decoratedTarget = class extends target {};\n\n Object.getOwnPropertyNames(target.prototype).forEach((key) => {\n const descriptor = Object.getOwnPropertyDescriptor(target.prototype, key);\n\n if (!descriptor || key === 'constructor') {\n return;\n }\n\n Object.defineProperty(\n decoratedTarget.prototype,\n key,\n bindMethodDecorator(target.prototype, key, descriptor),\n );\n });\n\n return decoratedTarget;\n}\n\n/**\n * Decorates a method by binding it to the calling instance.\n */\nexport function bindMethodDecorator<T extends Method>(\n _: object,\n key: string,\n descriptor: TypedPropertyDescriptor<T>,\n): TypedPropertyDescriptor<T> {\n if (typeof descriptor.value !== 'function') {\n return descriptor;\n }\n\n let method: T = descriptor.value;\n\n return {\n get() {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const boundMethod = method.bind(this) as T;\n\n Object.defineProperty(this, key, {\n ...descriptor,\n value: boundMethod,\n });\n\n return boundMethod;\n },\n set(value) {\n method = value;\n },\n };\n}\n\nexport type Constructor<T> = new (...args: any[]) => T;\nexport type Method = (...args: any[]) => any;\n","import { setPrototypeOf } from '../../utility';\n\nimport CustomError from './custom-error';\n\n/**\n * This error type should not be constructed directly. It is a base class for\n * all custom errors thrown in this library.\n */\nexport default abstract class StandardError extends Error implements CustomError {\n name = 'StandardError';\n type = 'standard';\n\n constructor(message?: string) {\n super(message || 'An unexpected error has occurred.');\n\n setPrototypeOf(this, new.target.prototype);\n\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, new.target);\n } else {\n this.stack = new Error(this.message).stack;\n }\n }\n}\n","export default function setPrototypeOf(object: any, prototype: object) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(object, prototype);\n } else {\n object.__proto__ = prototype;\n }\n\n return object;\n}\n","import StandardError from './standard-error';\n\n/**\n * This error should be thrown when a method is unable to proceed because the\n * caller has not provided all the arguments according to their requirements,\n * i.e.: if an argument is missing or it is not the expected data type.\n */\nexport default class InvalidArgumentError extends StandardError {\n constructor(message?: string) {\n super(message || 'Invalid arguments have been provided.');\n\n this.name = 'InvalidArgumentError';\n this.type = 'invalid_argument';\n }\n}\n","import { InvalidArgumentError } from '../error/errors';\n\nimport Url from './url';\n\nexport default function parseUrl(url: string): Url {\n if (!/^(https?:)?\\/\\//.test(url)) {\n throw new InvalidArgumentError('The provided URL must be absolute.');\n }\n\n // new URL() is not supported in IE11, use anchor tag instead\n const anchor = document.createElement('a');\n\n anchor.href = url;\n\n // IE11 returns 80 or 443 for the port number depending on the URL scheme,\n // even if the port number is not specified in the URL.\n const port =\n anchor.port && url.indexOf(`${anchor.hostname}:${anchor.port}`) !== -1 ? anchor.port : '';\n\n return {\n hash: anchor.hash,\n hostname: anchor.hostname,\n href: anchor.href,\n origin: `${anchor.protocol}//${anchor.hostname}${port ? `:${port}` : ''}`,\n pathname: anchor.pathname,\n port,\n protocol: anchor.protocol,\n search: anchor.search,\n };\n}\n","import IframeEvent from './iframe-event';\n\nexport default function isIframeEvent<TEvent extends IframeEvent<TType>, TType extends string>(\n object: any,\n type: TType,\n): object is TEvent {\n return object.type === type;\n}\n","import { bindDecorator as bind } from '@bigcommerce/checkout-sdk/utility';\n\nimport { appendWww, parseUrl } from '../url';\n\nimport { IframeEventMap } from './iframe-event';\nimport isIframeEvent from './is-iframe-event';\n\nexport default class IframeEventListener<\n TEventMap extends IframeEventMap<keyof TEventMap>,\n TContext = undefined,\n> {\n private _isListening: boolean;\n private _listeners: EventListeners<TEventMap, TContext>;\n private _sourceOrigins: string[];\n\n constructor(sourceOrigin: string) {\n this._sourceOrigins = [\n parseUrl(sourceOrigin).origin,\n appendWww(parseUrl(sourceOrigin)).origin,\n ];\n this._isListening = false;\n this._listeners = {};\n }\n\n listen(): void {\n if (this._isListening) {\n return;\n }\n\n this._isListening = true;\n\n window.addEventListener('message', this._handleMessage);\n }\n\n stopListen(): void {\n if (!this._isListening) {\n return;\n }\n\n this._isListening = false;\n\n window.removeEventListener('message', this._handleMessage);\n }\n\n addListener<TType extends keyof TEventMap>(\n type: TType,\n listener: (event: TEventMap[TType], context?: TContext) => void,\n ): void {\n let listeners = this._listeners[type];\n\n if (!listeners) {\n this._listeners[type] = listeners = [];\n }\n\n if (listeners.indexOf(listener) === -1) {\n listeners.push(listener);\n }\n }\n\n removeListener<TType extends keyof TEventMap>(\n type: TType,\n listener: (event: TEventMap[TType], context?: TContext) => void,\n ): void {\n const listeners = this._listeners[type];\n\n if (!listeners) {\n return;\n }\n\n const index = listeners.indexOf(listener);\n\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n }\n\n trigger<TType extends keyof TEventMap>(event: TEventMap[TType], context?: TContext): void {\n const listeners = this._listeners[event.type];\n\n if (!listeners) {\n return;\n }\n\n listeners.forEach((listener) => (context ? listener(event, context) : listener(event)));\n }\n\n @bind\n private _handleMessage(messageEvent: MessageEvent): void {\n if (\n this._sourceOrigins.indexOf(messageEvent.origin) === -1 ||\n !isIframeEvent(messageEvent.data as TEventMap[keyof TEventMap], messageEvent.data.type)\n ) {\n return;\n }\n\n const { context, ...event } = messageEvent.data;\n\n this.trigger(event, context);\n }\n}\n\ntype EventListeners<TEventMap, TContext = undefined> = {\n [key in keyof TEventMap]?: Array<(event: TEventMap[key], context?: TContext) => void>;\n};\n","import parseUrl from './parse-url';\nimport Url from './url';\n\nexport default function appendWww(url: Url): Url {\n return parseUrl(\n url.hostname.indexOf('www') === 0\n ? url.href\n : url.href.replace(url.hostname, `www.${url.hostname}`),\n );\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"rxjs\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"rxjs/operators\");","import { fromEvent } from 'rxjs';\nimport { filter, map, take } from 'rxjs/operators';\n\nimport { parseUrl } from '../url';\n\nimport IframeEvent from './iframe-event';\nimport isIframeEvent from './is-iframe-event';\n\nexport interface IframeEventPostOptions<\n TSuccessEvent extends IframeEvent,\n TErrorEvent extends IframeEvent,\n> {\n errorType?: TErrorEvent['type'];\n successType?: TSuccessEvent['type'];\n}\n\nexport default class IframeEventPoster<TEvent, TContext = undefined> {\n private _targetOrigin: string;\n\n constructor(targetOrigin: string, private _targetWindow?: Window, private _context?: TContext) {\n this._targetOrigin = targetOrigin === '*' ? '*' : parseUrl(targetOrigin).origin;\n }\n\n post(event: TEvent): void;\n post<\n TSuccessEvent extends IframeEvent = IframeEvent,\n TErrorEvent extends IframeEvent = IframeEvent,\n >(\n event: TEvent,\n options: IframeEventPostOptions<TSuccessEvent, TErrorEvent>,\n ): Promise<TSuccessEvent>;\n post<\n TSuccessEvent extends IframeEvent = IframeEvent,\n TErrorEvent extends IframeEvent = IframeEvent,\n >(\n event: TEvent,\n options?: IframeEventPostOptions<TSuccessEvent, TErrorEvent>,\n ): Promise<TSuccessEvent> | void {\n const targetWindow = this._targetWindow;\n\n if (window === targetWindow) {\n return;\n }\n\n if (!targetWindow) {\n throw new Error('Unable to post message because target window is not set.');\n }\n\n const result =\n options &&\n fromEvent<MessageEvent>(window, 'message')\n .pipe(\n filter(\n (event) =>\n event.origin === this._targetOrigin &&\n isIframeEvent(event.data, event.data.type) &&\n [options.successType, options.errorType].indexOf(event.data.type) !==\n -1,\n ),\n map((event) => {\n if (options.errorType === event.data.type) {\n throw event.data;\n }\n\n return event.data;\n }),\n take(1),\n )\n .toPromise();\n\n targetWindow.postMessage({ ...event, context: this._context }, this._targetOrigin);\n\n return result;\n }\n\n setTarget(window: Window) {\n this._targetWindow = window;\n }\n\n setContext(context: TContext) {\n this._context = context;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash\");","export type ExtensionCommand =\n | ReloadCheckoutCommand\n | ShowLoadingIndicatorCommand\n | SetIframeStyleCommand;\n\nexport enum ExtensionCommandType {\n ReloadCheckout = 'EXTENSION:RELOAD_CHECKOUT',\n ShowLoadingIndicator = 'EXTENSION:SHOW_LOADING_INDICATOR',\n SetIframeStyle = 'EXTENSION:SET_IFRAME_STYLE',\n}\n\nexport interface ReloadCheckoutCommand {\n type: ExtensionCommandType.ReloadCheckout;\n}\n\nexport interface ShowLoadingIndicatorCommand {\n type: ExtensionCommandType.ShowLoadingIndicator;\n payload: {\n show: boolean;\n };\n}\n\nexport interface SetIframeStyleCommand {\n type: ExtensionCommandType.SetIframeStyle;\n payload: {\n style: {\n [key: string]: string | number | null;\n };\n };\n}\n\nexport interface ExtensionCommandMap {\n [ExtensionCommandType.ReloadCheckout]: ReloadCheckoutCommand;\n [ExtensionCommandType.ShowLoadingIndicator]: ShowLoadingIndicatorCommand;\n [ExtensionCommandType.SetIframeStyle]: SetIframeStyleCommand;\n}\n","import { Consignment } from '../shipping';\n\nexport enum ExtensionEventType {\n ConsignmentsChanged = 'EXTENSION:CONSIGNMENTS_CHANGED',\n}\n\nexport interface ConsignmentsChangedEvent {\n type: ExtensionEventType.ConsignmentsChanged;\n payload: {\n consignments: Consignment[];\n previousConsignments: Consignment[];\n };\n}\n\nexport type ExtensionEvent = ConsignmentsChangedEvent;\n\nexport interface ExtensionEventMap {\n [ExtensionEventType.ConsignmentsChanged]: ConsignmentsChangedEvent;\n}\n","import { ExtensionEventType } from './extension-events';\n\nexport enum ExtensionInternalCommandType {\n Subscribe = 'EXTENSION_INTERNAL:SUBSCRIBE',\n Unsubscribe = 'EXTENSION_INTERNAL:UNSUBSCRIBE',\n ResizeIframe = 'EXTENSION_INTERNAL:RESIZE_IFRAME',\n}\n\nexport interface ExtensionSubscribeCommand {\n type: ExtensionInternalCommandType.Subscribe;\n payload: {\n extensionId: string;\n eventType: ExtensionEventType;\n };\n}\n\nexport interface ExtensionUnsubscribeCommand {\n type: ExtensionInternalCommandType.Unsubscribe;\n payload: {\n extensionId: string;\n eventType: ExtensionEventType;\n };\n}\n\nexport interface ExtensionResizeIframeCommand {\n type: ExtensionInternalCommandType.ResizeIframe;\n payload: {\n extensionId: string;\n };\n}\n\nexport interface ExtensionInternalCommandMap {\n [ExtensionInternalCommandType.Subscribe]: ExtensionSubscribeCommand;\n [ExtensionInternalCommandType.Unsubscribe]: ExtensionUnsubscribeCommand;\n [ExtensionInternalCommandType.ResizeIframe]: ExtensionResizeIframeCommand;\n}\n\nexport type ExtensionInternalCommand =\n | ExtensionSubscribeCommand\n | ExtensionUnsubscribeCommand\n | ExtensionResizeIframeCommand;\n","export enum ExtensionInternalEventType {\n ExtensionReady = 'EXTENSION:READY',\n ExtensionFailed = 'EXTENSION:FAILED',\n}\n\nexport interface ExtensionReadyEvent {\n type: ExtensionInternalEventType.ExtensionReady;\n}\n\nexport interface ExtensionFailedEvent {\n type: ExtensionInternalEventType.ExtensionFailed;\n}\n\nexport type ExtensionInternalEvent = ExtensionReadyEvent | ExtensionFailedEvent;\n","export type ExtensionQuery = GetConsignmentsQuery;\n\nexport enum ExtensionQueryType {\n GetConsignments = 'EXTENSION:GET_CONSIGNMENTS',\n}\n\nexport interface GetConsignmentsQuery {\n type: ExtensionQueryType.GetConsignments;\n payload?: {\n useCache?: boolean;\n };\n}\n\nexport interface ExtensionQueryMap {\n [ExtensionQueryType.GetConsignments]: GetConsignmentsQuery;\n}\n","import { noop } from 'lodash';\n\nimport { Consignment } from '@bigcommerce/checkout-sdk/payment-integration-api';\n\nimport { IframeEventListener, IframeEventPoster } from '../common/iframe';\n\nimport { ExtensionCommandType } from './extension-commands';\nimport { ExtensionEventMap, ExtensionEventType } from './extension-events';\nimport {\n ExtensionInternalCommand,\n ExtensionInternalCommandType,\n} from './extension-internal-commands';\nimport { ExtensionInternalEventType } from './extension-internal-events';\nimport {\n ExtensionCommandOrQuery,\n ExtensionCommandOrQueryContext,\n ExtensionMessageMap,\n ExtensionMessageType,\n GetConsignmentsMessage,\n} from './extension-message';\nimport { ExtensionQueryType } from './extension-queries';\n\nexport default class ExtensionService {\n private _extensionId?: string;\n\n constructor(\n private _messageListener: IframeEventListener<ExtensionMessageMap>,\n private _eventListener: IframeEventListener<ExtensionEventMap>,\n private _messagePoster: IframeEventPoster<\n ExtensionCommandOrQuery,\n ExtensionCommandOrQueryContext\n >,\n private _internalCommandPoster: IframeEventPoster<ExtensionInternalCommand>,\n ) {\n this._messagePoster.setTarget(window.parent);\n this._internalCommandPoster.setTarget(window.parent);\n }\n\n async initialize(extensionId: string): Promise<void> {\n if (!extensionId) {\n throw new Error('Extension Id not found.');\n }\n\n this._extensionId = extensionId;\n\n this._messageListener.listen();\n this._eventListener.listen();\n this._messagePoster.setContext({ extensionId });\n\n try {\n await this._internalCommandPoster.post(\n {\n type: ExtensionInternalCommandType.ResizeIframe,\n payload: { extensionId },\n },\n {\n successType: ExtensionInternalEventType.ExtensionReady,\n errorType: ExtensionInternalEventType.ExtensionFailed,\n },\n );\n } catch (event) {\n if (this._isExtensionFailedEvent(event)) {\n throw new Error(\n 'Extension failed to load within 60 seconds; please reload and try again.',\n );\n }\n }\n }\n\n post(command: ExtensionCommandOrQuery): void {\n if (!this._isCommandOrQueryType(command.type)) {\n throw new Error(`${command.type} is not supported.`);\n }\n\n this._messagePoster.post(command);\n }\n\n addListener(eventType: ExtensionEventType, callback: () => void = noop): () => void {\n if (!this._extensionId) {\n throw new Error('Extension is not initialized.');\n }\n\n const extensionId = this._extensionId;\n\n if (!Object.values(ExtensionEventType).includes(eventType)) {\n throw new Error(`${eventType} is not supported.`);\n }\n\n this._internalCommandPoster.post({\n type: ExtensionInternalCommandType.Subscribe,\n payload: { extensionId, eventType },\n });\n\n this._eventListener.addListener(eventType, callback);\n\n return () => {\n this._internalCommandPoster.post({\n type: ExtensionInternalCommandType.Unsubscribe,\n payload: { extensionId, eventType },\n });\n\n this._eventListener.removeListener(eventType, callback);\n };\n }\n\n async getConsignments(useCache = true): Promise<Consignment[]> {\n return new Promise((resolve) => {\n const callback = (event: GetConsignmentsMessage) => {\n this._messageListener.removeListener(\n ExtensionMessageType.GetConsignments,\n callback,\n );\n\n resolve(event.payload.consignments);\n };\n\n this._messageListener.addListener(ExtensionMessageType.GetConsignments, callback);\n\n this.post({ type: ExtensionQueryType.GetConsignments, payload: { useCache } });\n });\n }\n\n private _isExtensionFailedEvent(\n event: any,\n ): event is ExtensionInternalEventType.ExtensionFailed {\n return event.type === ExtensionInternalEventType.ExtensionFailed;\n }\n\n private _isCommandOrQueryType(type: any): type is ExtensionCommandOrQuery['type'] {\n return (\n Object.values(ExtensionCommandType).includes(type) ||\n Object.values(ExtensionQueryType).includes(type)\n );\n }\n}\n","import {\n IframeEventListener,\n IframeEventPoster,\n setupContentWindowForIframeResizer,\n} from '../common/iframe';\n\nimport { ExtensionCommand } from './extension-commands';\nimport { ExtensionEventMap } from './extension-events';\nimport { ExtensionInternalCommand } from './extension-internal-commands';\nimport { ExtensionCommandOrQueryContext, ExtensionMessageMap } from './extension-message';\nimport ExtensionService from './extension-service';\nimport { iframeResizerSetup } from './iframe-resizer-setup';\n\nexport interface InitializeExtensionServiceOptions {\n extensionId: string;\n parentOrigin: string;\n taggedElementId?: string;\n fixedHeight?: number;\n}\n\nexport default async function initializeExtensionService(\n options: InitializeExtensionServiceOptions,\n): Promise<ExtensionService> {\n const { extensionId, parentOrigin, taggedElementId, fixedHeight } = options;\n\n setupContentWindowForIframeResizer();\n\n const extension = new ExtensionService(\n new IframeEventListener<ExtensionMessageMap>(parentOrigin),\n new IframeEventListener<ExtensionEventMap>(parentOrigin),\n new IframeEventPoster<ExtensionCommand, ExtensionCommandOrQueryContext>(parentOrigin),\n new IframeEventPoster<ExtensionInternalCommand>(parentOrigin),\n );\n\n await extension.initialize(extensionId);\n\n iframeResizerSetup(taggedElementId, fixedHeight);\n\n return extension;\n}\n","import { IFrameComponent, IFrameOptions } from 'iframe-resizer';\n\nexport {\n HeightCalculationMethod,\n IFrameComponent,\n IFrameMessageData,\n IFrameObject,\n IFrameOptions,\n IFramePage,\n IFramePageOptions,\n IFrameResizedData,\n IFrameScrollData,\n PageInfo,\n WidthCalculationMethod,\n} from 'iframe-resizer';\n\n// The reason why we are wrapping the original `iframeResizer` function imported\n// from the package is because the package sets up event listeners (window\n// resize etc...) as soon as the package is imported. Therefore, to defer the\n// side effect from happening until the function is actually being used, we are\n// importing the package inside this function. To minimise the chance of\n// importing the original package inadvertently, we are also re-exporting all of\n// its public interfaces. The re-exports do not cause any side effect because\n// they are plain TypeScript interfaces; meaning they are only used for type\n// checks rather than for code output.\nexport function iframeResizer(\n options: IFrameOptions,\n target: string | HTMLElement,\n): IFrameComponent[] {\n /* eslint-disable @typescript-eslint/no-var-requires */\n const { iframeResizer: originalIframeResizer } = require('iframe-resizer');\n\n return originalIframeResizer(options, target);\n}\n\n// We also need to wrap the original `iframeResizer.contentWindow` because\n// similarly the package sets up event listeners as soon as the package gets\n// imported. Another reason is that if it is imported at the top level using a\n// regular import statement, it will be stripped out by Webpack as it is\n// considered as \"unused\", unless we explicitly mark it as a package that\n// produces side effects.\nexport function setupContentWindowForIframeResizer(): void {\n require('iframe-resizer/js/iframeResizer.contentWindow');\n}\n","export interface IframeResizerWindow extends Window {\n parentIFrame: {\n autoResize: (isEnabled: boolean) => void;\n setHeightCalculationMethod: (id: string) => void;\n size: (height: number) => void;\n };\n}\n\nexport function isIframeResizerWindow(window: Window): window is IframeResizerWindow {\n return 'parentIFrame' in window;\n}\n\nexport function iframeResizerSetup(\n taggedElementId: string | undefined,\n fixedHeight: number | undefined,\n): void {\n if (!isIframeResizerWindow(window)) {\n throw new Error('iFramerResizer window not found.');\n }\n\n if (fixedHeight) {\n window.parentIFrame.size(fixedHeight);\n } else {\n window.parentIFrame.autoResize(true);\n\n if (taggedElementId) {\n const element = document.getElementById(taggedElementId);\n\n if (!element) {\n throw new Error(`Element not found.`);\n }\n\n element.setAttribute('data-iframe-height', '');\n window.parentIFrame.setHeightCalculationMethod('taggedElement');\n } else {\n window.parentIFrame.setHeightCalculationMethod('bodyOffset');\n }\n }\n}\n"],"names":["module","exports","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","target","descriptor","bindMethodDecorator","decoratedTarget","getOwnPropertyNames","forEach","getOwnPropertyDescriptor","bindClassDecorator","_","method","boundMethod","bind","this","set","message","object","name","type","setPrototypeOf","__proto__","Error","captureStackTrace","stack","parseUrl","url","test","anchor","document","createElement","href","port","indexOf","hostname","hash","origin","protocol","pathname","search","isIframeEvent","sourceOrigin","_sourceOrigins","replace","_isListening","_listeners","listen","window","addEventListener","_handleMessage","stopListen","removeEventListener","addListener","listener","listeners","push","removeListener","index","splice","trigger","event","context","messageEvent","data","targetOrigin","_targetWindow","_context","_targetOrigin","post","options","targetWindow","result","fromEvent","pipe","filter","successType","errorType","map","take","toPromise","postMessage","setTarget","setContext","ExtensionCommandType","ExtensionEventType","ExtensionInternalCommandType","ExtensionInternalEventType","ExtensionQueryType","_messageListener","_eventListener","_messagePoster","_internalCommandPoster","parent","initialize","extensionId","_extensionId","ResizeIframe","payload","ExtensionReady","ExtensionFailed","_isExtensionFailedEvent","command","_isCommandOrQueryType","eventType","callback","values","includes","Subscribe","Unsubscribe","getConsignments","useCache","Promise","resolve","consignments","GetConsignments","initializeExtensionService","parentOrigin","taggedElementId","fixedHeight","extension","isIframeResizerWindow","parentIFrame","size","autoResize","element","getElementById","setAttribute","setHeightCalculationMethod","iframeResizerSetup"],"sourceRoot":""}