@pitcher/js-api 1.0.0 → 1.1.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/README.md CHANGED
@@ -2,9 +2,30 @@
2
2
 
3
3
  This is the JavaScript API to interact with the data layer of the NG platform.
4
4
 
5
- ## Installation
6
-
7
5
  ## Usage
8
6
 
7
+ ### In the browser
8
+
9
+ ```html
10
+ <!doctype html>
11
+ <html>
12
+ <head>
13
+ <title>My app</title>
14
+ <script src="https://unpkg.com/@pitcher/js-api"></script>
15
+ </head>
16
+ <body>
17
+ <script>
18
+ const api = pitcher.usePitcherApi()
19
+ const ui = pitcher.useUi()
20
+ const admin = pitcher.useAdmin()
21
+
22
+ api.getEnv() // soon to be snake_case as well
23
+ ui.select_content()
24
+ admin.get_env()
25
+ </script>
26
+ </body>
27
+ </html>
28
+ ```
29
+
9
30
  For more details, please visit the [documentation](https://pitcherag.github.io/canvas-ui).
10
31
 
package/js-api.umd.min.js CHANGED
@@ -1,2 +1,18 @@
1
- (function(o,A){typeof exports=="object"&&typeof module<"u"?A(exports):typeof define=="function"&&define.amd?define(["exports"],A):(o=typeof globalThis<"u"?globalThis:o||self,A(o.pitcher={}))})(this,function(o){"use strict";function A(e={}){return this.API.request("open",e)}function Ae(){return this.API.request("get_env")}function he(e){return this.API.request("update_my_user",e)}function Ee(){return this.API.request("get_languages")}function pe(e){return o.highLevelApi.API.request("get_events",e)}function be(e){return o.highLevelApi.API.request("create_event",e)}function Ie(e){return o.highLevelApi.API.request("update_event",e)}function Se(e){return o.highLevelApi.API.request("delete_event",e)}function me(e){return this.API.request("get_canvases",e)}function ve(e){return this.API.request("create_canvas",e)}function ye(e){return this.API.request("delete_canvas",e)}function Pe(e){return this.API.request("update_canvas",e)}function xe(e){return this.API.request("get_canvas",e)}function Te(e){return this.API.request("share_canvas",e)}function Re(e){const t={...e};return t.type&&(t.type=Array.isArray(t.type)?t.type:[t.type]),t.content_type&&(t.content_type=Array.isArray(t.content_type)?t.content_type:[t.content_type]),this.API.request("get_files",t)}function Ue(e){return this.API.request("download_file",e)}function Ce(e){return this.API.request("get_app_config",e)}function Oe(e){return this.API.request("get_file",e)}function we(e){return this.API.request("delete_file",e)}function Me(e){return this.API.request("create_file",e)}function qe(){return this.API.request("select_device_file")}function Le(e){return this.API.request("search",e)}function De(e){return this.API.request("get_users",e)}function $e(e){return this.API.request("getService",e)}function Ne(e){return this.API.request("refresh_service_token",e)}function He(){return this.API.request("get_connections")}function Fe(e){return this.API.request("connection_login",e)}function je(e){return this.API.request("connection_logout",e)}function Ge(e){return this.API.request("fetch_document_info",e)}function ke(e){return this.API.request("render_page_as_image",e)}function Ve(e){return this.API.request("toast",e)}function Ye(e){return o.highLevelApi.API.request("query",e)}function ze(e={id:"root"}){return this.API.request("get_folder",e)}function We(e){return this.API.request("create_folder",e)}function Ze(e){return this.API.request("update_folder",e)}function Qe(e){return this.API.request("delete_folder",e)}function Je(e){return this.API.request("move_folder_items",e)}function Be(e){return this.API.request("get_favorites",e)}function Xe(e){return this.API.request("create_favorite",e)}function Ke(e){return this.API.request("delete_favorite",e)}function et(e){return e.type||(e.type="native"),o.highLevelApi.API.request("notify",e)}function tt(e){return o.highLevelApi.API.request("track",e)}function nt(e){return this.API.request("get_instance_metadata_templates",e)}const rt=Object.freeze(Object.defineProperty({__proto__:null,connectionLogin:Fe,connectionLogout:je,createCanvas:ve,createEvent:be,createFavorite:Xe,createFile:Me,createFolder:We,deleteCanvas:ye,deleteEvent:Se,deleteFavorite:Ke,deleteFile:we,deleteFolder:Qe,downloadFile:Ue,fetchDocumentInfo:Ge,getAppConfig:Ce,getCanvas:xe,getCanvases:me,getConnections:He,getEnv:Ae,getEvents:pe,getFavorites:Be,getFile:Oe,getFiles:Re,getFolder:ze,getInstanceMetadataTemplates:nt,getLanguages:Ee,getService:$e,getUsers:De,moveFolderItems:Je,notify:et,open:A,query:Ye,refreshServiceToken:Ne,renderPageAsImage:ke,search:Le,selectDeviceFile:qe,shareCanvas:Te,toast:Ve,track:tt,updateCanvas:Pe,updateEvent:Ie,updateFolder:Ze,updateMyUser:he},Symbol.toStringTag,{value:"Module"}));class x{listeners={};on(t,n){this.listeners[t]=(this.listeners[t]??[]).concat(n)}off(t,n){this.listeners[t]=(this.listeners[t]??[]).filter(r=>r!==n)}emit(t,n){(this.listeners[t]??[]).forEach(r=>r(n))}}let p;const ut=new Uint8Array(16);function ot(){if(!p&&(p=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!p))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return p(ut)}const i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));function st(e,t=0){return i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]}const T={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function I(e,t,n){if(T.randomUUID&&!t&&!e)return T.randomUUID();e=e||{};const r=e.random||(e.rng||ot)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,t){n=n||0;for(let u=0;u<16;++u)t[n+u]=r[u];return t}return st(r)}class it extends Error{}function at(e,t){if(!e)throw new it(t)}var ct=typeof global=="object"&&global&&global.Object===Object&&global;const dt=ct;var ft=typeof self=="object"&&self&&self.Object===Object&&self,lt=dt||ft||Function("return this")(),_t=lt.Symbol;const _=_t;var R=Object.prototype,gt=R.hasOwnProperty,At=R.toString,h=_?_.toStringTag:void 0;function ht(e){var t=gt.call(e,h),n=e[h];try{e[h]=void 0;var r=!0}catch{}var u=At.call(e);return r&&(t?e[h]=n:delete e[h]),u}var Et=Object.prototype,pt=Et.toString;function bt(e){return pt.call(e)}var It="[object Null]",St="[object Undefined]",U=_?_.toStringTag:void 0;function mt(e){return e==null?e===void 0?St:It:U&&U in Object(e)?ht(e):bt(e)}function vt(e){return e!=null&&typeof e=="object"}var yt="[object Symbol]";function Pt(e){return typeof e=="symbol"||vt(e)&&mt(e)==yt}function xt(e,t){for(var n=-1,r=e==null?0:e.length,u=Array(r);++n<r;)u[n]=t(e[n],n,e);return u}var Tt=Array.isArray;const Rt=Tt;var Ut=1/0,C=_?_.prototype:void 0,O=C?C.toString:void 0;function w(e){if(typeof e=="string")return e;if(Rt(e))return xt(e,w)+"";if(Pt(e))return O?O.call(e):"";var t=e+"";return t=="0"&&1/e==-Ut?"-0":t}function b(e){return e==null?"":w(e)}function Ct(e,t,n){var r=-1,u=e.length;t<0&&(t=-t>u?0:u+t),n=n>u?u:n,n<0&&(n+=u),u=t>n?0:n-t>>>0,t>>>=0;for(var s=Array(u);++r<u;)s[r]=e[r+t];return s}function Ot(e,t,n){var r=e.length;return n=n===void 0?r:n,!t&&n>=r?e:Ct(e,t,n)}var wt="\\ud800-\\udfff",Mt="\\u0300-\\u036f",qt="\\ufe20-\\ufe2f",Lt="\\u20d0-\\u20ff",Dt=Mt+qt+Lt,$t="\\ufe0e\\ufe0f",Nt="\\u200d",Ht=RegExp("["+Nt+wt+Dt+$t+"]");function M(e){return Ht.test(e)}function Ft(e){return e.split("")}var q="\\ud800-\\udfff",jt="\\u0300-\\u036f",Gt="\\ufe20-\\ufe2f",kt="\\u20d0-\\u20ff",Vt=jt+Gt+kt,Yt="\\ufe0e\\ufe0f",zt="["+q+"]",S="["+Vt+"]",m="\\ud83c[\\udffb-\\udfff]",Wt="(?:"+S+"|"+m+")",L="[^"+q+"]",D="(?:\\ud83c[\\udde6-\\uddff]){2}",$="[\\ud800-\\udbff][\\udc00-\\udfff]",Zt="\\u200d",N=Wt+"?",H="["+Yt+"]?",Qt="(?:"+Zt+"(?:"+[L,D,$].join("|")+")"+H+N+")*",Jt=H+N+Qt,Bt="(?:"+[L+S+"?",S,D,$,zt].join("|")+")",Xt=RegExp(m+"(?="+m+")|"+Bt+Jt,"g");function Kt(e){return e.match(Xt)||[]}function en(e){return M(e)?Kt(e):Ft(e)}function tn(e){return function(t){t=b(t);var n=M(t)?en(t):void 0,r=n?n[0]:t.charAt(0),u=n?Ot(n,1).join(""):t.slice(1);return r[e]()+u}}var nn=tn("toUpperCase");const rn=nn;function un(e){return rn(b(e).toLowerCase())}function on(e,t,n,r){var u=-1,s=e==null?0:e.length;for(r&&s&&(n=e[++u]);++u<s;)n=t(n,e[u],u,e);return n}function sn(e){return function(t){return e?.[t]}}var an={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},cn=sn(an);const dn=cn;var fn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ln="\\u0300-\\u036f",_n="\\ufe20-\\ufe2f",gn="\\u20d0-\\u20ff",An=ln+_n+gn,hn="["+An+"]",En=RegExp(hn,"g");function pn(e){return e=b(e),e&&e.replace(fn,dn).replace(En,"")}var bn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function In(e){return e.match(bn)||[]}var Sn=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function mn(e){return Sn.test(e)}var F="\\ud800-\\udfff",vn="\\u0300-\\u036f",yn="\\ufe20-\\ufe2f",Pn="\\u20d0-\\u20ff",xn=vn+yn+Pn,j="\\u2700-\\u27bf",G="a-z\\xdf-\\xf6\\xf8-\\xff",Tn="\\xac\\xb1\\xd7\\xf7",Rn="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Un="\\u2000-\\u206f",Cn=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",k="A-Z\\xc0-\\xd6\\xd8-\\xde",On="\\ufe0e\\ufe0f",V=Tn+Rn+Un+Cn,Y="['’]",z="["+V+"]",wn="["+xn+"]",W="\\d+",Mn="["+j+"]",Z="["+G+"]",Q="[^"+F+V+W+j+G+k+"]",qn="\\ud83c[\\udffb-\\udfff]",Ln="(?:"+wn+"|"+qn+")",Dn="[^"+F+"]",J="(?:\\ud83c[\\udde6-\\uddff]){2}",B="[\\ud800-\\udbff][\\udc00-\\udfff]",g="["+k+"]",$n="\\u200d",X="(?:"+Z+"|"+Q+")",Nn="(?:"+g+"|"+Q+")",K="(?:"+Y+"(?:d|ll|m|re|s|t|ve))?",ee="(?:"+Y+"(?:D|LL|M|RE|S|T|VE))?",te=Ln+"?",ne="["+On+"]?",Hn="(?:"+$n+"(?:"+[Dn,J,B].join("|")+")"+ne+te+")*",Fn="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",jn="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Gn=ne+te+Hn,kn="(?:"+[Mn,J,B].join("|")+")"+Gn,Vn=RegExp([g+"?"+Z+"+"+K+"(?="+[z,g,"$"].join("|")+")",Nn+"+"+ee+"(?="+[z,g+X,"$"].join("|")+")",g+"?"+X+"+"+K,g+"+"+ee,jn,Fn,W,kn].join("|"),"g");function Yn(e){return e.match(Vn)||[]}function zn(e,t,n){return e=b(e),t=n?void 0:t,t===void 0?mn(e)?Yn(e):In(e):e.match(t)||[]}var Wn="['’]",Zn=RegExp(Wn,"g");function re(e){return function(t){return on(zn(pn(t).replace(Zn,"")),e,"")}}var Qn=re(function(e,t,n){return t=t.toLowerCase(),e+(n?un(t):t)});const Jn=Qn;var Bn=re(function(e,t,n){return e+(n?"_":"")+t.toLowerCase()});const Xn=Bn,ue=["id__in","modified_at__gtr","created_at__gtr","end_at__lt","start_at__gt","account__id","end_at__gt","end_at__range","start_at__lt","start_at__range","external_objects__connection_id","external_objects__content_type","external_objects__external_content_type","external_objects__external_object_id"],oe=["context"],E=(e,t=ue,n=oe)=>Array.isArray(e)?e.map(r=>E(r,t,n)):e!=null&&e.constructor===Object?Object.keys(e).reduce((r,u)=>{const s=t.includes(u)||n.includes(u)?u:Jn(u),a=n.includes(u)?e[u]:E(e[u],t,n);return{...r,[s]:a}},{}):e,v=(e,t=ue,n=oe)=>Array.isArray(e)?e.map(r=>v(r,t,n)):e!=null&&e.constructor===Object?Object.keys(e).reduce((r,u)=>{const s=t.includes(u)||n.includes(u)?u:Xn(u),a=n.includes(u)?e[u]:v(e[u],t,n);return{...r,[s]:a}},{}):e;class Kn extends x{constructor(t){super(),this.callbacks={},this.options=t??{casing:"snake",logLevel:"off"},typeof window<"u"&&(window.addEventListener("message",n=>{this.options.logLevel==="debug"&&console.log("message received",n),n.data.type==="PITCHER_RESPONSE"?(at(n.data.request.id,"event id is required"),this.handleCallbackMessage(n.data.request.id,n.data)):n.data.type==="PITCHER_EVENT"&&this.handleEventMessage(this.options.casing==="camel"?E(n.data.event):n.data.event)}),this.request("subscribe"))}callbacks;options;handleCallbackMessage(t,n){this.callbacks[t]&&(this.callbacks[t].callback(n),this.options.logLevel&&["info","debug"].includes(this.options.logLevel)&&console.log(`It took ${Date.now()-this.callbacks[t].dispatched_at} ms for the event ${this.callbacks[t].type}`),delete this.callbacks[t])}handleEventMessage(t){this.emit("event",t)}request(t,n=null){return new Promise((r,u)=>{const s=I(),a=l=>{if(this.options.logLevel==="debug"&&console.log(`Callback ${s} response:`,l),l.response.status==="ok")r(this.options.casing==="camel"?E(l.response.body):l.response.body);else if(l.response.status==="error")u(this.options.casing==="camel"?E(l.response.body):l.response.body);else throw new Error("unsupported response status")},c=v(n);this.callbacks[s]={dispatched_at:Date.now(),type:t,payload:c??{},callback:a},typeof window<"u"&&window.top&&window.top.postMessage({type:"PITCHER_REQUEST",request:{type:t,id:s,body:c}},"*")})}}function er(e){const t=new Kn(e),n=new x;return t.on("event",r=>{n.emit(r.type,r.body)}),{API:t,...rt,on:(r,u)=>n.on(r,u),off:(r,u)=>n.off(r,u),quitInstance:()=>t.request("quit_instance"),getRequestTypes:()=>t.request("get_request_types"),broadcast:r=>t.request("broadcast",r),subscribe:()=>t.request("subscribe"),unsubscribe:()=>t.request("unsubscribe")}}const se="UI_MESSAGE",y={UI_REQUEST:"UI_REQUEST",UI_RESPONSE:"UI_RESPONSE"},ie={SFDC_QUERY:"sfdc_query",SFDC_ENTITY:"sfdc_entity"},tr={CANVAS_UPDATED:"canvas_updated",FILE_UPDATED:"file_updated"};function nr(e,t,n={timeout:1e4}){return new Promise((r,u)=>{const s=I(),a=c=>{c.data.type===y.UI_RESPONSE&&c.data.id===s&&(window.removeEventListener("message",a),r(c.data.body))};window.addEventListener("message",a),window.parent.postMessage({type:y.UI_REQUEST,id:s,body:{type:e,data:t}},"*"),n.timeout&&setTimeout(()=>{window.removeEventListener("message",a),u(new Error(`UI did not respond in the timeframe of ${n.timeout}ms. Check the handler on the UI side.`))},n.timeout)})}const d={};function rr(e){if(e.data.type!==se)return;const t=d[e.data.body.type];t&&t.forEach(n=>n(e.data.body.data))}function ur(e,t){d[e]||(d[e]=[]),d[e]?.push(t)}function or(e,t){d[e]&&(d[e]=d[e]?.filter(n=>n!==t))}window.addEventListener("message",rr);function sr(e,t){return nr(ie.SFDC_QUERY,e,t)}const ir=Object.freeze(Object.defineProperty({__proto__:null,sfdc_query:sr},Symbol.toStringTag,{value:"Module"})),ae="ADMIN_MESSAGE",ar={ENV_CHANGED:"env_changed"},P={ADMIN_REQUEST:"ADMIN_REQUEST",ADMIN_RESPONSE:"ADMIN_RESPONSE"},ce={GET_ENV:"get_env"};function cr(e,t,n={timeout:1e4}){return new Promise((r,u)=>{const s=I(),a=c=>{c.data.type===P.ADMIN_RESPONSE&&c.data.id===s&&(window.removeEventListener("message",a),r(c.data.body))};window.addEventListener("message",a),window.parent.postMessage({type:P.ADMIN_REQUEST,id:s,body:{type:e,data:t??{}}},"*"),n.timeout&&setTimeout(()=>{window.removeEventListener("message",a),u(new Error(`Admin did not respond in the timeframe of ${n.timeout}ms. Check the handler on the Admin side.`))},n.timeout)})}const f={};function dr(e,t){f[e]||(f[e]=[]),f[e]?.push(t)}function fr(e,t){f[e]&&(f[e]=f[e]?.filter(n=>n!==t))}window.addEventListener("message",function(t){if(t.data.type!==ae)return;const n=f[t.data.body.type];n&&n.forEach(r=>r(t.data.body.data))});function lr(){return cr(ce.GET_ENV)}const _r=Object.freeze(Object.defineProperty({__proto__:null,get_env:lr},Symbol.toStringTag,{value:"Module"})),gr="PITCHER_EVENT";var de=(e=>(e.REQUEST="PITCHER_REQUEST",e.RESPONSE="PITCHER_RESPONSE",e))(de||{}),fe=(e=>(e.OK="ok",e.ERROR="error",e))(fe||{}),le=(e=>(e.ENV_CHANGED="env_changed",e.PHOTOS_CAPTURED="photos_captured",e.FILE_DOWNLOADED="file_downloaded",e.FILE_UPLOAD_PROGRESS="file_upload_progress",e.UPDATE_LOCATION="update_location",e.CANVAS_UPDATED="canvas_updated",e))(le||{}),_e=(e=>(e.UI_SHOW_MODAL="ui:show-modal",e.UI_HIDE_MODAL="ui:hide-modal",e.FAVORITES_CHANGED="favorites:changed",e.FILE_DOWNLOAD="file:download",e))(_e||{}),ge=(e=>(e.OPEN_CANVAS="open_canvas",e.START_CALL="start_call",e))(ge||{});o.highLevelApi=void 0;function Ar(e){return o.highLevelApi||(o.highLevelApi=er(e)),o.highLevelApi}const hr={...ir,on:ur,off:or};function Er(){return hr}const pr={..._r,on:dr,off:fr};function br(){return pr}o.ADMIN_API_METHOD_TYPES=ce,o.ADMIN_API_TYPES=P,o.ADMIN_MESSAGE=ae,o.ADMIN_MESSAGE_TYPES=ar,o.PITCHER_EVENT=gr,o.PitcherBroadcastedEventName=_e,o.PitcherEventName=le,o.PitcherExternalEventName=ge,o.PitcherMessageType=de,o.PitcherResponseStatus=fe,o.UI_API_METHOD_TYPES=ie,o.UI_API_TYPES=y,o.UI_MESSAGE=se,o.UI_MESSAGE_TYPES=tr,o.useAdmin=br,o.usePitcherApi=Ar,o.useUi=Er,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
1
+ (function(x,re){typeof exports=="object"&&typeof module<"u"?re(exports):typeof define=="function"&&define.amd?define(["exports"],re):(x=typeof globalThis<"u"?globalThis:x||self,re(x.pitcher={}))})(this,function(x){"use strict";function re(t={}){return this.API.request("open",t)}function lt(){return this.API.request("get_env")}function ht(t){return this.API.request("update_my_user",t)}function vt(){return this.API.request("get_languages")}function gt(t){return x.highLevelApi.API.request("get_events",t)}function pt(t){return x.highLevelApi.API.request("create_event",t)}function wt(t){return x.highLevelApi.API.request("update_event",t)}function mt(t){return x.highLevelApi.API.request("delete_event",t)}function yt(t){return this.API.request("get_canvases",t)}function Et(t){return this.API.request("create_canvas",t)}function At(t){return this.API.request("delete_canvas",t)}function bt(t){return this.API.request("update_canvas",t)}function St(t){return this.API.request("get_canvas",t)}function xt(t){return this.API.request("share_canvas",t)}function Pt(t){const a={...t};return a.type&&(a.type=Array.isArray(a.type)?a.type:[a.type]),a.content_type&&(a.content_type=Array.isArray(a.content_type)?a.content_type:[a.content_type]),this.API.request("get_files",a)}function It(t){return this.API.request("download_file",t)}function _t(t){return this.API.request("get_app_config",t)}function Wt(t){return this.API.request("get_file",t)}function Ot(t){return this.API.request("delete_file",t)}function Rt(t){return this.API.request("create_file",t)}function Tt(){return this.API.request("select_device_file")}function Ct(t){return this.API.request("search",t)}function Dt(t){return this.API.request("get_users",t)}function Mt(t){return this.API.request("getService",t)}function Nt(t){return this.API.request("refresh_service_token",t)}function Lt(){return this.API.request("get_connections")}function jt(t){return this.API.request("connection_login",t)}function zt(t){return this.API.request("connection_logout",t)}function Ut(t){return this.API.request("fetch_document_info",t)}function qt(t){return this.API.request("render_page_as_image",t)}function Ft(t){return this.API.request("toast",t)}function $t(t){return x.highLevelApi.API.request("query",t)}function Ht(t={id:"root"}){return this.API.request("get_folder",t)}function Gt(t){return this.API.request("create_folder",t)}function Vt(t){return this.API.request("update_folder",t)}function kt(t){return this.API.request("delete_folder",t)}function Zt(t){return this.API.request("move_folder_items",t)}function Jt(t){return this.API.request("get_favorites",t)}function Yt(t){return this.API.request("create_favorite",t)}function Bt(t){return this.API.request("delete_favorite",t)}function Qt(t){return t.type||(t.type="native"),x.highLevelApi.API.request("notify",t)}function Xt(t){return x.highLevelApi.API.request("track",t)}function Kt(t){return this.API.request("get_instance_metadata_templates",t)}const er=Object.freeze(Object.defineProperty({__proto__:null,connectionLogin:jt,connectionLogout:zt,createCanvas:Et,createEvent:pt,createFavorite:Yt,createFile:Rt,createFolder:Gt,deleteCanvas:At,deleteEvent:mt,deleteFavorite:Bt,deleteFile:Ot,deleteFolder:kt,downloadFile:It,fetchDocumentInfo:Ut,getAppConfig:_t,getCanvas:St,getCanvases:yt,getConnections:Lt,getEnv:lt,getEvents:gt,getFavorites:Jt,getFile:Wt,getFiles:Pt,getFolder:Ht,getInstanceMetadataTemplates:Kt,getLanguages:vt,getService:Mt,getUsers:Dt,moveFolderItems:Zt,notify:Qt,open:re,query:$t,refreshServiceToken:Nt,renderPageAsImage:qt,search:Ct,selectDeviceFile:Tt,shareCanvas:xt,toast:Ft,track:Xt,updateCanvas:bt,updateEvent:wt,updateFolder:Vt,updateMyUser:ht},Symbol.toStringTag,{value:"Module"}));class Fe{listeners={};on(a,l){this.listeners[a]=(this.listeners[a]??[]).concat(l)}off(a,l){this.listeners[a]=(this.listeners[a]??[]).filter(w=>w!==l)}emit(a,l){(this.listeners[a]??[]).forEach(w=>w(l))}}let ge;const nr=new Uint8Array(16);function tr(){if(!ge&&(ge=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!ge))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return ge(nr)}const N=[];for(let t=0;t<256;++t)N.push((t+256).toString(16).slice(1));function rr(t,a=0){return N[t[a+0]]+N[t[a+1]]+N[t[a+2]]+N[t[a+3]]+"-"+N[t[a+4]]+N[t[a+5]]+"-"+N[t[a+6]]+N[t[a+7]]+"-"+N[t[a+8]]+N[t[a+9]]+"-"+N[t[a+10]]+N[t[a+11]]+N[t[a+12]]+N[t[a+13]]+N[t[a+14]]+N[t[a+15]]}const $e={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function He(t,a,l){if($e.randomUUID&&!a&&!t)return $e.randomUUID();t=t||{};const w=t.random||(t.rng||tr)();if(w[6]=w[6]&15|64,w[8]=w[8]&63|128,a){l=l||0;for(let v=0;v<16;++v)a[l+v]=w[v];return a}return rr(w)}class or extends Error{}function ir(t,a){if(!t)throw new or(a)}var ur=typeof global=="object"&&global&&global.Object===Object&&global;const ar=ur;var sr=typeof self=="object"&&self&&self.Object===Object&&self,cr=ar||sr||Function("return this")(),fr=cr.Symbol;const ee=fr;var Ge=Object.prototype,dr=Ge.hasOwnProperty,lr=Ge.toString,oe=ee?ee.toStringTag:void 0;function hr(t){var a=dr.call(t,oe),l=t[oe];try{t[oe]=void 0;var w=!0}catch{}var v=lr.call(t);return w&&(a?t[oe]=l:delete t[oe]),v}var vr=Object.prototype,gr=vr.toString;function pr(t){return gr.call(t)}var wr="[object Null]",mr="[object Undefined]",Ve=ee?ee.toStringTag:void 0;function yr(t){return t==null?t===void 0?mr:wr:Ve&&Ve in Object(t)?hr(t):pr(t)}function Er(t){return t!=null&&typeof t=="object"}var Ar="[object Symbol]";function br(t){return typeof t=="symbol"||Er(t)&&yr(t)==Ar}function Sr(t,a){for(var l=-1,w=t==null?0:t.length,v=Array(w);++l<w;)v[l]=a(t[l],l,t);return v}var xr=Array.isArray;const Pr=xr;var Ir=1/0,ke=ee?ee.prototype:void 0,Ze=ke?ke.toString:void 0;function Je(t){if(typeof t=="string")return t;if(Pr(t))return Sr(t,Je)+"";if(br(t))return Ze?Ze.call(t):"";var a=t+"";return a=="0"&&1/t==-Ir?"-0":a}function pe(t){return t==null?"":Je(t)}function _r(t,a,l){var w=-1,v=t.length;a<0&&(a=-a>v?0:v+a),l=l>v?v:l,l<0&&(l+=v),v=a>l?0:l-a>>>0,a>>>=0;for(var y=Array(v);++w<v;)y[w]=t[w+a];return y}function Wr(t,a,l){var w=t.length;return l=l===void 0?w:l,!a&&l>=w?t:_r(t,a,l)}var Or="\\ud800-\\udfff",Rr="\\u0300-\\u036f",Tr="\\ufe20-\\ufe2f",Cr="\\u20d0-\\u20ff",Dr=Rr+Tr+Cr,Mr="\\ufe0e\\ufe0f",Nr="\\u200d",Lr=RegExp("["+Nr+Or+Dr+Mr+"]");function Ye(t){return Lr.test(t)}function jr(t){return t.split("")}var Be="\\ud800-\\udfff",zr="\\u0300-\\u036f",Ur="\\ufe20-\\ufe2f",qr="\\u20d0-\\u20ff",Fr=zr+Ur+qr,$r="\\ufe0e\\ufe0f",Hr="["+Be+"]",Ie="["+Fr+"]",_e="\\ud83c[\\udffb-\\udfff]",Gr="(?:"+Ie+"|"+_e+")",Qe="[^"+Be+"]",Xe="(?:\\ud83c[\\udde6-\\uddff]){2}",Ke="[\\ud800-\\udbff][\\udc00-\\udfff]",Vr="\\u200d",en=Gr+"?",nn="["+$r+"]?",kr="(?:"+Vr+"(?:"+[Qe,Xe,Ke].join("|")+")"+nn+en+")*",Zr=nn+en+kr,Jr="(?:"+[Qe+Ie+"?",Ie,Xe,Ke,Hr].join("|")+")",Yr=RegExp(_e+"(?="+_e+")|"+Jr+Zr,"g");function Br(t){return t.match(Yr)||[]}function Qr(t){return Ye(t)?Br(t):jr(t)}function Xr(t){return function(a){a=pe(a);var l=Ye(a)?Qr(a):void 0,w=l?l[0]:a.charAt(0),v=l?Wr(l,1).join(""):a.slice(1);return w[t]()+v}}var Kr=Xr("toUpperCase");const eo=Kr;function no(t){return eo(pe(t).toLowerCase())}function to(t,a,l,w){var v=-1,y=t==null?0:t.length;for(w&&y&&(l=t[++v]);++v<y;)l=a(l,t[v],v,t);return l}function ro(t){return function(a){return t?.[a]}}var oo={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},io=ro(oo);const uo=io;var ao=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,so="\\u0300-\\u036f",co="\\ufe20-\\ufe2f",fo="\\u20d0-\\u20ff",lo=so+co+fo,ho="["+lo+"]",vo=RegExp(ho,"g");function go(t){return t=pe(t),t&&t.replace(ao,uo).replace(vo,"")}var po=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function wo(t){return t.match(po)||[]}var mo=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function yo(t){return mo.test(t)}var tn="\\ud800-\\udfff",Eo="\\u0300-\\u036f",Ao="\\ufe20-\\ufe2f",bo="\\u20d0-\\u20ff",So=Eo+Ao+bo,rn="\\u2700-\\u27bf",on="a-z\\xdf-\\xf6\\xf8-\\xff",xo="\\xac\\xb1\\xd7\\xf7",Po="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Io="\\u2000-\\u206f",_o=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",un="A-Z\\xc0-\\xd6\\xd8-\\xde",Wo="\\ufe0e\\ufe0f",an=xo+Po+Io+_o,sn="['’]",cn="["+an+"]",Oo="["+So+"]",fn="\\d+",Ro="["+rn+"]",dn="["+on+"]",ln="[^"+tn+an+fn+rn+on+un+"]",To="\\ud83c[\\udffb-\\udfff]",Co="(?:"+Oo+"|"+To+")",Do="[^"+tn+"]",hn="(?:\\ud83c[\\udde6-\\uddff]){2}",vn="[\\ud800-\\udbff][\\udc00-\\udfff]",ne="["+un+"]",Mo="\\u200d",gn="(?:"+dn+"|"+ln+")",No="(?:"+ne+"|"+ln+")",pn="(?:"+sn+"(?:d|ll|m|re|s|t|ve))?",wn="(?:"+sn+"(?:D|LL|M|RE|S|T|VE))?",mn=Co+"?",yn="["+Wo+"]?",Lo="(?:"+Mo+"(?:"+[Do,hn,vn].join("|")+")"+yn+mn+")*",jo="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",zo="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Uo=yn+mn+Lo,qo="(?:"+[Ro,hn,vn].join("|")+")"+Uo,Fo=RegExp([ne+"?"+dn+"+"+pn+"(?="+[cn,ne,"$"].join("|")+")",No+"+"+wn+"(?="+[cn,ne+gn,"$"].join("|")+")",ne+"?"+gn+"+"+pn,ne+"+"+wn,zo,jo,fn,qo].join("|"),"g");function $o(t){return t.match(Fo)||[]}function Ho(t,a,l){return t=pe(t),a=l?void 0:a,a===void 0?yo(t)?$o(t):wo(t):t.match(a)||[]}var Go="['’]",Vo=RegExp(Go,"g");function En(t){return function(a){return to(Ho(go(a).replace(Vo,"")),t,"")}}var ko=En(function(t,a,l){return a=a.toLowerCase(),t+(l?no(a):a)});const Zo=ko;var Jo=En(function(t,a,l){return t+(l?"_":"")+a.toLowerCase()});const Yo=Jo,An=["id__in","modified_at__gtr","created_at__gtr","end_at__lt","start_at__gt","account__id","end_at__gt","end_at__range","start_at__lt","start_at__range","external_objects__connection_id","external_objects__content_type","external_objects__external_content_type","external_objects__external_object_id"],bn=["context"],ie=(t,a=An,l=bn)=>Array.isArray(t)?t.map(w=>ie(w,a,l)):t!=null&&t.constructor===Object?Object.keys(t).reduce((w,v)=>{const y=a.includes(v)||l.includes(v)?v:Zo(v),S=l.includes(v)?t[v]:ie(t[v],a,l);return{...w,[y]:S}},{}):t,We=(t,a=An,l=bn)=>Array.isArray(t)?t.map(w=>We(w,a,l)):t!=null&&t.constructor===Object?Object.keys(t).reduce((w,v)=>{const y=a.includes(v)||l.includes(v)?v:Yo(v),S=l.includes(v)?t[v]:We(t[v],a,l);return{...w,[y]:S}},{}):t;class Bo extends Fe{constructor(a){super(),this.callbacks={},this.options=a??{casing:"snake",logLevel:"off"},typeof window<"u"&&(window.addEventListener("message",l=>{this.options.logLevel==="debug"&&console.log("message received",l),l.data.type==="PITCHER_RESPONSE"?(ir(l.data.request.id,"event id is required"),this.handleCallbackMessage(l.data.request.id,l.data)):l.data.type==="PITCHER_EVENT"&&this.handleEventMessage(this.options.casing==="camel"?ie(l.data.event):l.data.event)}),this.request("subscribe"))}callbacks;options;handleCallbackMessage(a,l){this.callbacks[a]&&(this.callbacks[a].callback(l),this.options.logLevel&&["info","debug"].includes(this.options.logLevel)&&console.log(`It took ${Date.now()-this.callbacks[a].dispatched_at} ms for the event ${this.callbacks[a].type}`),delete this.callbacks[a])}handleEventMessage(a){this.emit("event",a)}request(a,l=null){return new Promise((w,v)=>{const y=He(),S=U=>{if(this.options.logLevel==="debug"&&console.log(`Callback ${y} response:`,U),U.response.status==="ok")w(this.options.casing==="camel"?ie(U.response.body):U.response.body);else if(U.response.status==="error")v(this.options.casing==="camel"?ie(U.response.body):U.response.body);else throw new Error("unsupported response status")},L=We(l);this.callbacks[y]={dispatched_at:Date.now(),type:a,payload:L??{},callback:S},typeof window<"u"&&window.top&&window.top.postMessage({type:"PITCHER_REQUEST",request:{type:a,id:y,body:L}},"*")})}}function Qo(t){const a=new Bo(t),l=new Fe;return a.on("event",w=>{l.emit(w.type,w.body)}),{API:a,...er,on:(w,v)=>l.on(w,v),off:(w,v)=>l.off(w,v),quitInstance:()=>a.request("quit_instance"),getRequestTypes:()=>a.request("get_request_types"),broadcast:w=>a.request("broadcast",w),subscribe:()=>a.request("subscribe"),unsubscribe:()=>a.request("unsubscribe")}}var Xo=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ko(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Sn={exports:{}},xn={exports:{}};(function(t,a){(function(l,w){t.exports=w()})(typeof self<"u"?self:Xo,function(){return function(l){var w={};function v(y){if(w[y])return w[y].exports;var S=w[y]={i:y,l:!1,exports:{}};return l[y].call(S.exports,S,S.exports,v),S.l=!0,S.exports}return v.m=l,v.c=w,v.d=function(y,S,L){v.o(y,S)||Object.defineProperty(y,S,{enumerable:!0,get:L})},v.r=function(y){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(y,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(y,"__esModule",{value:!0})},v.t=function(y,S){if(1&S&&(y=v(y)),8&S||4&S&&typeof y=="object"&&y&&y.__esModule)return y;var L=Object.create(null);if(v.r(L),Object.defineProperty(L,"default",{enumerable:!0,value:y}),2&S&&typeof y!="string")for(var U in y)v.d(L,U,function(we){return y[we]}.bind(null,U));return L},v.n=function(y){var S=y&&y.__esModule?function(){return y.default}:function(){return y};return v.d(S,"a",S),S},v.o=function(y,S){return{}.hasOwnProperty.call(y,S)},v.p="",v(v.s=0)}([function(l,w,v){v.r(w),v.d(w,"Promise",function(){return I}),v.d(w,"TYPES",function(){return Ui}),v.d(w,"ProxyWindow",function(){return $}),v.d(w,"setup",function(){return dt}),v.d(w,"destroy",function(){return zi}),v.d(w,"serializeMessage",function(){return Mi}),v.d(w,"deserializeMessage",function(){return Ni}),v.d(w,"createProxyWindow",function(){return Li}),v.d(w,"toProxyWindow",function(){return ji}),v.d(w,"on",function(){return k}),v.d(w,"once",function(){return Di}),v.d(w,"send",function(){return Z}),v.d(w,"markWindowKnown",function(){return Kn}),v.d(w,"cleanUpWindow",function(){return qi}),v.d(w,"bridge",function(){});function y(e){return{}.toString.call(e)==="[object RegExp]"}var S=`Call was rejected by callee.\r
2
+ `;function L(e){return e===void 0&&(e=window),e.location.protocol}function U(e){if(e===void 0&&(e=window),e.mockDomain){var r=e.mockDomain.split("//")[0];if(r)return r}return L(e)}function we(e){return e===void 0&&(e=window),U(e)==="about:"}function Y(e){if(e===void 0&&(e=window),e)try{if(e.parent&&e.parent!==e)return e.parent}catch{}}function Mn(e){if(e===void 0&&(e=window),e&&!Y(e))try{return e.opener}catch{}}function me(e){try{return!0}catch{}return!1}function ye(e){e===void 0&&(e=window);var r=e.location;if(!r)throw new Error("Can not read window location");var n=L(e);if(!n)throw new Error("Can not read window protocol");if(n==="file:")return"file://";if(n==="about:"){var o=Y(e);return o&&me()?ye(o):"about://"}var i=r.host;if(!i)throw new Error("Can not read window host");return n+"//"+i}function j(e){e===void 0&&(e=window);var r=ye(e);return r&&e.mockDomain&&e.mockDomain.indexOf("mock:")===0?e.mockDomain:r}function B(e){if(!function(r){try{if(r===window)return!0}catch{}try{var n=Object.getOwnPropertyDescriptor(r,"location");if(n&&n.enumerable===!1)return!1}catch{}try{if(we(r)&&me())return!0}catch{}try{if(function(o){return o===void 0&&(o=window),U(o)==="mock:"}(r)&&me())return!0}catch{}try{if(ye(r)===ye(window))return!0}catch{}return!1}(e))return!1;try{if(e===window||we(e)&&me()||j(window)===j(e))return!0}catch{}return!1}function Ee(e){if(!B(e))throw new Error("Expected window to be same domain");return e}function Nn(e,r){if(!e||!r)return!1;var n=Y(r);return n?n===e:function(o){var i=[];try{for(;o.parent!==o;)i.push(o.parent),o=o.parent}catch{}return i}(r).indexOf(e)!==-1}function Ln(e){var r=[],n;try{n=e.frames}catch{n=e}var o;try{o=n.length}catch{}if(o===0)return r;if(o){for(var i=0;i<o;i++){var u=void 0;try{u=n[i]}catch{continue}r.push(u)}return r}for(var s=0;s<100;s++){var d=void 0;try{d=n[s]}catch{return r}if(!d)return r;r.push(d)}return r}var mi=[],yi=[];function H(e,r){r===void 0&&(r=!0);try{if(e===window)return!1}catch{return!0}try{if(!e)return!0}catch{return!0}try{if(e.closed)return!0}catch(i){return!i||i.message!==S}if(r&&B(e))try{if(e.mockclosed)return!0}catch{}try{if(!e.parent||!e.top)return!0}catch{}var n=function(i,u){for(var s=0;s<i.length;s++)try{if(i[s]===u)return s}catch{}return-1}(mi,e);if(n!==-1){var o=yi[n];if(o&&function(i){if(!i.contentWindow||!i.parentNode)return!0;var u=i.ownerDocument;if(u&&u.documentElement&&!u.documentElement.contains(i)){for(var s=i;s.parentNode&&s.parentNode!==s;)s=s.parentNode;if(!s.host||!u.documentElement.contains(s.host))return!0}return!1}(o))return!0}return!1}function jn(e){return e===void 0&&(e=window),Mn(e=e||window)||Y(e)||void 0}function te(e,r){if(typeof e=="string"){if(typeof r=="string")return e==="*"||r===e;if(y(r)||Array.isArray(r))return!1}return y(e)?y(r)?e.toString()===r.toString():!Array.isArray(r)&&!!r.match(e):!!Array.isArray(e)&&(Array.isArray(r)?JSON.stringify(e)===JSON.stringify(r):!y(r)&&e.some(function(n){return te(n,r)}))}function Ae(e){try{if(e===window)return!0}catch(r){if(r&&r.message===S)return!0}try{if({}.toString.call(e)==="[object Window]")return!0}catch(r){if(r&&r.message===S)return!0}try{if(window.Window&&e instanceof window.Window)return!0}catch(r){if(r&&r.message===S)return!0}try{if(e&&e.self===e)return!0}catch(r){if(r&&r.message===S)return!0}try{if(e&&e.parent===e)return!0}catch(r){if(r&&r.message===S)return!0}try{if(e&&e.top===e)return!0}catch(r){if(r&&r.message===S)return!0}try{if(e&&e.__cross_domain_utils_window_check__==="__unlikely_value__")return!1}catch{return!0}try{if("postMessage"in e&&"self"in e&&"location"in e)return!0}catch{}return!1}function zn(e){if(B(e))return Ee(e).frameElement;for(var r=0,n=document.querySelectorAll("iframe");r<n.length;r++){var o=n[r];if(o&&o.contentWindow&&o.contentWindow===e)return o}}function Ei(e){if(function(n){return n===void 0&&(n=window),!!Y(n)}(e)){var r=zn(e);if(r&&r.parentElement){r.parentElement.removeChild(r);return}}try{e.close()}catch{}}function Q(e){try{if(!e)return!1;if(typeof Promise<"u"&&e instanceof Promise)return!0;if(typeof window<"u"&&typeof window.Window=="function"&&e instanceof window.Window||typeof window<"u"&&typeof window.constructor=="function"&&e instanceof window.constructor)return!1;var r={}.toString;if(r){var n=r.call(e);if(n==="[object Window]"||n==="[object global]"||n==="[object DOMWindow]")return!1}if(typeof e.then=="function")return!0}catch{return!1}return!1}var Un=[],ue=[],Re=0,ae;function qn(){if(!Re&&ae){var e=ae;ae=null,e.resolve()}}function Te(){Re+=1}function se(){Re-=1,qn()}var I=function(){function e(n){var o=this;if(this.resolved=void 0,this.rejected=void 0,this.errorHandled=void 0,this.value=void 0,this.error=void 0,this.handlers=void 0,this.dispatching=void 0,this.stack=void 0,this.resolved=!1,this.rejected=!1,this.errorHandled=!1,this.handlers=[],n){var i,u,s=!1,d=!1,f=!1;Te();try{n(function(c){f?o.resolve(c):(s=!0,i=c)},function(c){f?o.reject(c):(d=!0,u=c)})}catch(c){se(),this.reject(c);return}se(),f=!0,s?this.resolve(i):d&&this.reject(u)}}var r=e.prototype;return r.resolve=function(n){if(this.resolved||this.rejected)return this;if(Q(n))throw new Error("Can not resolve promise with another promise");return this.resolved=!0,this.value=n,this.dispatch(),this},r.reject=function(n){var o=this;if(this.resolved||this.rejected)return this;if(Q(n))throw new Error("Can not reject promise with another promise");if(!n){var i=n&&typeof n.toString=="function"?n.toString():{}.toString.call(n);n=new Error("Expected reject to be called with Error, got "+i)}return this.rejected=!0,this.error=n,this.errorHandled||setTimeout(function(){o.errorHandled||function(u,s){if(Un.indexOf(u)===-1){Un.push(u),setTimeout(function(){throw u},1);for(var d=0;d<ue.length;d++)ue[d](u,s)}}(n,o)},1),this.dispatch(),this},r.asyncReject=function(n){return this.errorHandled=!0,this.reject(n),this},r.dispatch=function(){var n=this.resolved,o=this.rejected,i=this.handlers;if(!this.dispatching&&(n||o)){this.dispatching=!0,Te();for(var u=function(m,b){return m.then(function(E){b.resolve(E)},function(E){b.reject(E)})},s=0;s<i.length;s++){var d=i[s],f=d.onSuccess,c=d.onError,p=d.promise,h=void 0;if(n)try{h=f?f(this.value):this.value}catch(m){p.reject(m);continue}else if(o){if(!c){p.reject(this.error);continue}try{h=c(this.error)}catch(m){p.reject(m);continue}}if(h instanceof e&&(h.resolved||h.rejected)){var g=h;g.resolved?p.resolve(g.value):p.reject(g.error),g.errorHandled=!0}else Q(h)?h instanceof e&&(h.resolved||h.rejected)?h.resolved?p.resolve(h.value):p.reject(h.error):u(h,p):p.resolve(h)}i.length=0,this.dispatching=!1,se()}},r.then=function(n,o){if(n&&typeof n!="function"&&!n.call)throw new Error("Promise.then expected a function for success handler");if(o&&typeof o!="function"&&!o.call)throw new Error("Promise.then expected a function for error handler");var i=new e;return this.handlers.push({promise:i,onSuccess:n,onError:o}),this.errorHandled=!0,this.dispatch(),i},r.catch=function(n){return this.then(void 0,n)},r.finally=function(n){if(n&&typeof n!="function"&&!n.call)throw new Error("Promise.finally expected a function");return this.then(function(o){return e.try(n).then(function(){return o})},function(o){return e.try(n).then(function(){throw o})})},r.timeout=function(n,o){var i=this;if(this.resolved||this.rejected)return this;var u=setTimeout(function(){i.resolved||i.rejected||i.reject(o||new Error("Promise timed out after "+n+"ms"))},n);return this.then(function(s){return clearTimeout(u),s})},r.toPromise=function(){if(typeof Promise>"u")throw new TypeError("Could not find Promise");return Promise.resolve(this)},r.lazy=function(){return this.errorHandled=!0,this},e.resolve=function(n){return n instanceof e?n:Q(n)?new e(function(o,i){return n.then(o,i)}):new e().resolve(n)},e.reject=function(n){return new e().reject(n)},e.asyncReject=function(n){return new e().asyncReject(n)},e.all=function(n){var o=new e,i=n.length,u=[].slice();if(!i)return o.resolve(u),o;for(var s=function(c,p,h){return p.then(function(g){u[c]=g,(i-=1)==0&&o.resolve(u)},function(g){h.reject(g)})},d=0;d<n.length;d++){var f=n[d];if(f instanceof e){if(f.resolved){u[d]=f.value,i-=1;continue}}else if(!Q(f)){u[d]=f,i-=1;continue}s(d,e.resolve(f),o)}return i===0&&o.resolve(u),o},e.hash=function(n){var o={},i=[],u=function(d){if(n.hasOwnProperty(d)){var f=n[d];Q(f)?i.push(f.then(function(c){o[d]=c})):o[d]=f}};for(var s in n)u(s);return e.all(i).then(function(){return o})},e.map=function(n,o){return e.all(n.map(o))},e.onPossiblyUnhandledException=function(n){return function(o){return ue.push(o),{cancel:function(){ue.splice(ue.indexOf(o),1)}}}(n)},e.try=function(n,o,i){if(n&&typeof n!="function"&&!n.call)throw new Error("Promise.try expected a function");var u;Te();try{u=n.apply(o,i||[])}catch(s){return se(),e.reject(s)}return se(),e.resolve(u)},e.delay=function(n){return new e(function(o){setTimeout(o,n)})},e.isPromise=function(n){return!!(n&&n instanceof e)||Q(n)},e.flush=function(){return function(n){var o=ae=ae||new n;return qn(),o}(e)},e}();function be(e,r){for(var n=0;n<e.length;n++)try{if(e[n]===r)return n}catch{}return-1}var Ce=function(){function e(){if(this.name=void 0,this.weakmap=void 0,this.keys=void 0,this.values=void 0,this.name="__weakmap_"+(1e9*Math.random()>>>0)+"__",function(){if(typeof WeakMap>"u"||Object.freeze===void 0)return!1;try{var n=new WeakMap,o={};return Object.freeze(o),n.set(o,"__testvalue__"),n.get(o)==="__testvalue__"}catch{return!1}}())try{this.weakmap=new WeakMap}catch{}this.keys=[],this.values=[]}var r=e.prototype;return r._cleanupClosedWindows=function(){for(var n=this.weakmap,o=this.keys,i=0;i<o.length;i++){var u=o[i];if(Ae(u)&&H(u)){if(n)try{n.delete(u)}catch{}o.splice(i,1),this.values.splice(i,1),i-=1}}},r.isSafeToReadWrite=function(n){return!Ae(n)},r.set=function(n,o){if(!n)throw new Error("WeakMap expected key");var i=this.weakmap;if(i)try{i.set(n,o)}catch{delete this.weakmap}if(this.isSafeToReadWrite(n))try{var u=this.name,s=n[u];s&&s[0]===n?s[1]=o:Object.defineProperty(n,u,{value:[n,o],writable:!0});return}catch{}this._cleanupClosedWindows();var d=this.keys,f=this.values,c=be(d,n);c===-1?(d.push(n),f.push(o)):f[c]=o},r.get=function(n){if(!n)throw new Error("WeakMap expected key");var o=this.weakmap;if(o)try{if(o.has(n))return o.get(n)}catch{delete this.weakmap}if(this.isSafeToReadWrite(n))try{var i=n[this.name];return i&&i[0]===n?i[1]:void 0}catch{}this._cleanupClosedWindows();var u=be(this.keys,n);if(u!==-1)return this.values[u]},r.delete=function(n){if(!n)throw new Error("WeakMap expected key");var o=this.weakmap;if(o)try{o.delete(n)}catch{delete this.weakmap}if(this.isSafeToReadWrite(n))try{var i=n[this.name];i&&i[0]===n&&(i[0]=i[1]=void 0)}catch{}this._cleanupClosedWindows();var u=this.keys,s=be(u,n);s!==-1&&(u.splice(s,1),this.values.splice(s,1))},r.has=function(n){if(!n)throw new Error("WeakMap expected key");var o=this.weakmap;if(o)try{if(o.has(n))return!0}catch{delete this.weakmap}if(this.isSafeToReadWrite(n))try{var i=n[this.name];return!(!i||i[0]!==n)}catch{}return this._cleanupClosedWindows(),be(this.keys,n)!==-1},r.getOrSet=function(n,o){if(this.has(n))return this.get(n);var i=o();return this.set(n,i),i},e}();function Fn(e){return e.name||e.__name__||e.displayName||"anonymous"}function $n(e,r){try{delete e.name,e.name=r}catch{}return e.__name__=e.displayName=r,e}function V(){var e="0123456789abcdef";return"uid_"+"xxxxxxxxxx".replace(/./g,function(){return e.charAt(Math.floor(Math.random()*e.length))})+"_"+function(r){if(typeof btoa=="function")return btoa(encodeURIComponent(r).replace(/%([0-9A-F]{2})/g,function(n,o){return String.fromCharCode(parseInt(o,16))})).replace(/[=]/g,"");if(typeof Buffer<"u")return Buffer.from(r,"utf8").toString("base64").replace(/[=]/g,"");throw new Error("Can not find window.btoa or Buffer")}(new Date().toISOString().slice(11,19).replace("T",".")).replace(/[^a-zA-Z0-9]/g,"").toLowerCase()}var Se;function Hn(e){try{return JSON.stringify([].slice.call(e),function(r,n){return typeof n=="function"?"memoize["+function(o){if(Se=Se||new Ce,o==null||typeof o!="object"&&typeof o!="function")throw new Error("Invalid object");var i=Se.get(o);return i||(i=typeof o+":"+V(),Se.set(o,i)),i}(n)+"]":typeof window<"u"&&n instanceof window.Element||n!==null&&typeof n=="object"&&n.nodeType===1&&typeof n.style=="object"&&typeof n.ownerDocument=="object"?{}:n})}catch{throw new Error("Arguments not serializable -- can not be used to memoize")}}function Ai(){return{}}var ce=0,Gn=0;function fe(e,r){r===void 0&&(r={});var n=r.thisNamespace,o=n!==void 0&&n,i=r.time,u,s,d=ce;ce+=1;var f=function(){for(var c=arguments.length,p=new Array(c),h=0;h<c;h++)p[h]=arguments[h];d<Gn&&(u=null,s=null,d=ce,ce+=1);var g;g=o?(s=s||new Ce).getOrSet(this,Ai):u=u||{};var m;try{m=Hn(p)}catch{return e.apply(this,arguments)}var b=g[m];if(b&&i&&Date.now()-b.time<i&&(delete g[m],b=null),b)return b.value;var E=Date.now(),A=e.apply(this,arguments);return g[m]={time:E,value:A},A};return f.reset=function(){u=null,s=null},$n(f,(r.name||Fn(e))+"::memoized")}fe.clear=function(){Gn=ce};function bi(e){var r={};function n(){for(var o=arguments,i=this,u=arguments.length,s=new Array(u),d=0;d<u;d++)s[d]=arguments[d];var f=Hn(s);return r.hasOwnProperty(f)||(r[f]=I.try(function(){return e.apply(i,o)}).finally(function(){delete r[f]})),r[f]}return n.reset=function(){r={}},$n(n,Fn(e)+"::promiseMemoized")}function X(){}function de(e,r){if(r===void 0&&(r=1),r>=3)return"stringifyError stack overflow";try{if(!e)return"<unknown error: "+{}.toString.call(e)+">";if(typeof e=="string")return e;if(e instanceof Error){var n=e&&e.stack,o=e&&e.message;if(n&&o)return n.indexOf(o)!==-1?n:o+`
3
+ `+n;if(n)return n;if(o)return o}return e&&e.toString&&typeof e.toString=="function"?e.toString():{}.toString.call(e)}catch(i){return"Error while stringifying error: "+de(i,r+1)}}function Vn(e){return typeof e=="string"?e:e&&e.toString&&typeof e.toString=="function"?e.toString():{}.toString.call(e)}fe(function(e){if(Object.values)return Object.values(e);var r=[];for(var n in e)e.hasOwnProperty(n)&&r.push(e[n]);return r});function De(e){return{}.toString.call(e)==="[object RegExp]"}function le(e,r,n){if(e.hasOwnProperty(r))return e[r];var o=n();return e[r]=o,o}function kn(){var e=document.body;if(!e)throw new Error("Body element not found");return e}function Zn(){return!!document.body&&document.readyState==="complete"}function Jn(){return!!document.body&&document.readyState==="interactive"}fe(function(){return new I(function(e){if(Zn()||Jn())return e();var r=setInterval(function(){if(Zn()||Jn())return clearInterval(r),e()},10)})});var xe=typeof document<"u"?document.currentScript:null,Si=fe(function(){if(xe||(xe=function(){try{var e=function(){try{throw new Error("_")}catch(s){return s.stack||""}}(),r=/.*at [^(]*\((.*):(.+):(.+)\)$/gi.exec(e),n=r&&r[1];if(!n)return;for(var o=0,i=[].slice.call(document.getElementsByTagName("script")).reverse();o<i.length;o++){var u=i[o];if(u.src&&u.src===n)return u}}catch{}}()))return xe;throw new Error("Can not determine current script")}),xi=V();fe(function(){var e;try{e=Si()}catch{return xi}var r=e.getAttribute("data-uid");if(r&&typeof r=="string"||(r=e.getAttribute("data-uid-auto"))&&typeof r=="string")return r;if(e.src){var n=function(o){for(var i="",u=0;u<o.length;u++){var s=o[u].charCodeAt(0)*u;o[u+1]&&(s+=o[u+1].charCodeAt(0)*(u-1)),i+=String.fromCharCode(97+Math.abs(s)%26)}return i}(JSON.stringify({src:e.src,dataset:e.dataset}));r="uid_"+n.slice(n.length-30)}else r=V();return e.setAttribute("data-uid-auto",r),r});function he(e){e===void 0&&(e=window);var r="__post_robot_10_0_46__";return e!==window?e[r]:e[r]=e[r]||{}}var Yn=function(){return{}};function D(e,r){return e===void 0&&(e="store"),r===void 0&&(r=Yn),le(he(),e,function(){var n=r();return{has:function(o){return n.hasOwnProperty(o)},get:function(o,i){return n.hasOwnProperty(o)?n[o]:i},set:function(o,i){return n[o]=i,i},del:function(o){delete n[o]},getOrSet:function(o,i){return le(n,o,i)},reset:function(){n=r()},keys:function(){return Object.keys(n)}}})}var Pi=function(){};function Pe(){var e=he();return e.WINDOW_WILDCARD=e.WINDOW_WILDCARD||new Pi,e.WINDOW_WILDCARD}function z(e,r){return e===void 0&&(e="store"),r===void 0&&(r=Yn),D("windowStore").getOrSet(e,function(){var n=new Ce,o=function(i){return n.getOrSet(i,r)};return{has:function(i){return o(i).hasOwnProperty(e)},get:function(i,u){var s=o(i);return s.hasOwnProperty(e)?s[e]:u},set:function(i,u){return o(i)[e]=u,u},del:function(i){delete o(i)[e]},getOrSet:function(i,u){return le(o(i),e,u)}}})}function Bn(){return D("instance").getOrSet("instanceID",V)}function Qn(e,r){var n=r.domain,o=z("helloPromises"),i=o.get(e);i&&i.resolve({domain:n});var u=I.resolve({domain:n});return o.set(e,u),u}function Me(e,r){return(0,r.send)(e,"postrobot_hello",{instanceID:Bn()},{domain:"*",timeout:-1}).then(function(n){var o=n.origin,i=n.data.instanceID;return Qn(e,{domain:o}),{win:e,domain:o,instanceID:i}})}function Xn(e,r){var n=r.send;return z("windowInstanceIDPromises").getOrSet(e,function(){return Me(e,{send:n}).then(function(o){return o.instanceID})})}function Kn(e){z("knownWindows").set(e,!0)}function Ne(e){return typeof e=="object"&&e!==null&&typeof e.__type__=="string"}function et(e){return e===void 0?"undefined":e===null?"null":Array.isArray(e)?"array":typeof e=="function"?"function":typeof e=="object"?e instanceof Error?"error":typeof e.then=="function"?"promise":{}.toString.call(e)==="[object RegExp]"?"regex":{}.toString.call(e)==="[object Date]"?"date":"object":typeof e=="string"?"string":typeof e=="number"?"number":typeof e=="boolean"?"boolean":void 0}function K(e,r){return{__type__:e,__val__:r}}var q,Ii=((q={}).function=function(){},q.error=function(e){return K("error",{message:e.message,stack:e.stack,code:e.code,data:e.data})},q.promise=function(){},q.regex=function(e){return K("regex",e.source)},q.date=function(e){return K("date",e.toJSON())},q.array=function(e){return e},q.object=function(e){return e},q.string=function(e){return e},q.number=function(e){return e},q.boolean=function(e){return e},q.null=function(e){return e},q[void 0]=function(e){return K("undefined",e)},q),_i={},F,Wi=((F={}).function=function(){throw new Error("Function serialization is not implemented; nothing to deserialize")},F.error=function(e){var r=e.stack,n=e.code,o=e.data,i=new Error(e.message);return i.code=n,o&&(i.data=o),i.stack=r+`
4
+
5
+ `+i.stack,i},F.promise=function(){throw new Error("Promise serialization is not implemented; nothing to deserialize")},F.regex=function(e){return new RegExp(e)},F.date=function(e){return new Date(e)},F.array=function(e){return e},F.object=function(e){return e},F.string=function(e){return e},F.number=function(e){return e},F.boolean=function(e){return e},F.null=function(e){return e},F[void 0]=function(){},F),Oi={};new I(function(e){if(window.document&&window.document.body)return e(window.document.body);var r=setInterval(function(){if(window.document&&window.document.body)return clearInterval(r),e(window.document.body)},10)});function Le(){for(var e=D("idToProxyWindow"),r=0,n=e.keys();r<n.length;r++){var o=n[r];e.get(o).shouldClean()&&e.del(o)}}function nt(e,r){var n=r.send,o=r.id,i=o===void 0?V():o,u=e.then(function(f){if(B(f))return Ee(f).name}),s=e.then(function(f){if(H(f))throw new Error("Window is closed, can not determine type");return Mn(f)?"popup":"iframe"});u.catch(X),s.catch(X);var d=function(){return e.then(function(f){if(!H(f))return B(f)?Ee(f).name:u})};return{id:i,getType:function(){return s},getInstanceID:bi(function(){return e.then(function(f){return Xn(f,{send:n})})}),close:function(){return e.then(Ei)},getName:d,focus:function(){return e.then(function(f){f.focus()})},isClosed:function(){return e.then(function(f){return H(f)})},setLocation:function(f,c){return c===void 0&&(c={}),e.then(function(p){var h=window.location.protocol+"//"+window.location.host,g=c.method,m=g===void 0?"get":g,b=c.body;if(f.indexOf("/")===0)f=""+h+f;else if(!f.match(/^https?:\/\//)&&f.indexOf(h)!==0)throw new Error("Expected url to be http or https url, or absolute path, got "+JSON.stringify(f));if(m==="post")return d().then(function(E){if(!E)throw new Error("Can not post to window without target name");(function(A){var _=A.url,C=A.target,O=A.body,W=A.method,M=W===void 0?"post":W,P=document.createElement("form");if(P.setAttribute("target",C),P.setAttribute("method",M),P.setAttribute("action",_),P.style.display="none",O)for(var R=0,G=Object.keys(O);R<G.length;R++){var T,ve=G[R],qe=document.createElement("input");qe.setAttribute("name",ve),qe.setAttribute("value",(T=O[ve])==null?void 0:T.toString()),P.appendChild(qe)}kn().appendChild(P),P.submit(),kn().removeChild(P)})({url:f,target:E,method:m,body:b})});if(m!=="get")throw new Error("Unsupported method: "+m);if(B(p))try{if(p.location&&typeof p.location.replace=="function"){p.location.replace(f);return}}catch{}p.location=f})},setName:function(f){return e.then(function(c){var p=B(c),h=zn(c);if(!p)throw new Error("Can not set name for cross-domain window: "+f);Ee(c).name=f,h&&h.setAttribute("name",f),u=I.resolve(f)})}}}var $=function(){function e(n){var o=n.send,i=n.win,u=n.serializedWindow;this.id=void 0,this.isProxyWindow=!0,this.serializedWindow=void 0,this.actualWindow=void 0,this.actualWindowPromise=void 0,this.send=void 0,this.name=void 0,this.actualWindowPromise=new I,this.serializedWindow=u||nt(this.actualWindowPromise,{send:o}),D("idToProxyWindow").set(this.getID(),this),i&&this.setWindow(i,{send:o})}var r=e.prototype;return r.getID=function(){return this.serializedWindow.id},r.getType=function(){return this.serializedWindow.getType()},r.isPopup=function(){return this.getType().then(function(n){return n==="popup"})},r.setLocation=function(n,o){var i=this;return this.serializedWindow.setLocation(n,o).then(function(){return i})},r.getName=function(){return this.serializedWindow.getName()},r.setName=function(n){var o=this;return this.serializedWindow.setName(n).then(function(){return o})},r.close=function(){var n=this;return this.serializedWindow.close().then(function(){return n})},r.focus=function(){var n=this,o=this.isPopup(),i=this.getName(),u=I.hash({isPopup:o,name:i}).then(function(d){var f=d.name;d.isPopup&&f&&window.open("",f,"noopener")}),s=this.serializedWindow.focus();return I.all([u,s]).then(function(){return n})},r.isClosed=function(){return this.serializedWindow.isClosed()},r.getWindow=function(){return this.actualWindow},r.setWindow=function(n,o){var i=o.send;this.actualWindow=n,this.actualWindowPromise.resolve(this.actualWindow),this.serializedWindow=nt(this.actualWindowPromise,{send:i,id:this.getID()}),z("winToProxyWindow").set(n,this)},r.awaitWindow=function(){return this.actualWindowPromise},r.matchWindow=function(n,o){var i=this,u=o.send;return I.try(function(){return i.actualWindow?n===i.actualWindow:I.hash({proxyInstanceID:i.getInstanceID(),knownWindowInstanceID:Xn(n,{send:u})}).then(function(s){var d=s.proxyInstanceID===s.knownWindowInstanceID;return d&&i.setWindow(n,{send:u}),d})})},r.unwrap=function(){return this.actualWindow||this},r.getInstanceID=function(){return this.serializedWindow.getInstanceID()},r.shouldClean=function(){return!!(this.actualWindow&&H(this.actualWindow))},r.serialize=function(){return this.serializedWindow},e.unwrap=function(n){return e.isProxyWindow(n)?n.unwrap():n},e.serialize=function(n,o){var i=o.send;return Le(),e.toProxyWindow(n,{send:i}).serialize()},e.deserialize=function(n,o){var i=o.send;return Le(),D("idToProxyWindow").get(n.id)||new e({serializedWindow:n,send:i})},e.isProxyWindow=function(n){return!!(n&&!Ae(n)&&n.isProxyWindow)},e.toProxyWindow=function(n,o){var i=o.send;if(Le(),e.isProxyWindow(n))return n;var u=n;return z("winToProxyWindow").get(u)||new e({win:u,send:i})},e}();function je(e,r,n,o,i){var u=z("methodStore"),s=D("proxyWindowMethods");$.isProxyWindow(o)?s.set(e,{val:r,name:n,domain:i,source:o}):(s.del(e),u.getOrSet(o,function(){return{}})[e]={domain:i,name:n,val:r,source:o})}function tt(e,r){var n=z("methodStore"),o=D("proxyWindowMethods");return n.getOrSet(e,function(){return{}})[r]||o.get(r)}function rt(e,r,n,o,i){s=(u={on:i.on,send:i.send}).on,d=u.send,D("builtinListeners").getOrSet("functionCalls",function(){return s("postrobot_method",{domain:"*"},function(p){var h=p.source,g=p.origin,m=p.data,b=m.id,E=m.name,A=tt(h,b);if(!A)throw new Error("Could not find method '"+E+"' with id: "+m.id+" in "+j(window));var _=A.source,C=A.domain,O=A.val;return I.try(function(){if(!te(C,g))throw new Error("Method '"+m.name+"' domain "+JSON.stringify(De(A.domain)?A.domain.source:A.domain)+" does not match origin "+g+" in "+j(window));if($.isProxyWindow(_))return _.matchWindow(h,{send:d}).then(function(W){if(!W)throw new Error("Method call '"+m.name+"' failed - proxy window does not match source in "+j(window))})}).then(function(){return O.apply({source:h,origin:g},m.args)},function(W){return I.try(function(){if(O.onError)return O.onError(W)}).then(function(){throw W.stack&&(W.stack="Remote call to "+E+"("+function(M){return M===void 0&&(M=[]),(P=M,[].slice.call(P)).map(function(R){return typeof R=="string"?"'"+R+"'":R===void 0?"undefined":R===null?"null":typeof R=="boolean"?R.toString():Array.isArray(R)?"[ ... ]":typeof R=="object"?"{ ... }":typeof R=="function"?"() => { ... }":"<"+typeof R+">"}).join(", ");var P}(m.args)+`) failed
6
+
7
+ `+W.stack),W})}).then(function(W){return{result:W,id:b,name:E}})})});var u,s,d,f=n.__id__||V();e=$.unwrap(e);var c=n.__name__||n.name||o;return typeof c=="string"&&typeof c.indexOf=="function"&&c.indexOf("anonymous::")===0&&(c=c.replace("anonymous::",o+"::")),$.isProxyWindow(e)?(je(f,n,c,e,r),e.awaitWindow().then(function(p){je(f,n,c,p,r)})):je(f,n,c,e,r),K("cross_domain_function",{id:f,name:c})}function ot(e,r,n,o){var i,u=o.on,s=o.send;return function(d,f){f===void 0&&(f=_i);var c=JSON.stringify(d,function(p){var h=this[p];if(Ne(this))return h;var g=et(h);if(!g)return h;var m=f[g]||Ii[g];return m?m(h,p):h});return c===void 0?"undefined":c}(n,((i={}).promise=function(d,f){return function(c,p,h,g,m){return K("cross_domain_zalgo_promise",{then:rt(c,p,function(b,E){return h.then(b,E)},g,{on:m.on,send:m.send})})}(e,r,d,f,{on:u,send:s})},i.function=function(d,f){return rt(e,r,d,f,{on:u,send:s})},i.object=function(d){return Ae(d)||$.isProxyWindow(d)?K("cross_domain_window",$.serialize(d,{send:s})):d},i))}function it(e,r,n,o){var i,u=o.send;return function(s,d){if(d===void 0&&(d=Oi),s!=="undefined")return JSON.parse(s,function(f,c){if(Ne(this))return c;var p,h;if(Ne(c)?(p=c.__type__,h=c.__val__):(p=et(c),h=c),!p)return h;var g=d[p]||Wi[p];return g?g(h,f):h})}(n,((i={}).cross_domain_zalgo_promise=function(s){return function(d,f,c){return new I(c.then)}(0,0,s)},i.cross_domain_function=function(s){return function(d,f,c,p){var h=c.id,g=c.name,m=p.send,b=function(A){A===void 0&&(A={});function _(){var C=arguments;return $.toProxyWindow(d,{send:m}).awaitWindow().then(function(O){var W=tt(O,h);if(W&&W.val!==_)return W.val.apply({source:window,origin:j()},C);var M=[].slice.call(C);return A.fireAndForget?m(O,"postrobot_method",{id:h,name:g,args:M},{domain:f,fireAndForget:!0}):m(O,"postrobot_method",{id:h,name:g,args:M},{domain:f,fireAndForget:!1}).then(function(P){return P.data.result})}).catch(function(O){throw O})}return _.__name__=g,_.__origin__=f,_.__source__=d,_.__id__=h,_.origin=f,_},E=b();return E.fireAndForget=b({fireAndForget:!0}),E}(e,r,s,{send:u})},i.cross_domain_window=function(s){return $.deserialize(s,{send:u})},i))}var ze={};ze.postrobot_post_message=function(e,r,n){n.indexOf("file:")===0&&(n="*"),e.postMessage(r,n)};function Ue(e,r,n,o){var i=o.on,u=o.send;return I.try(function(){var s=z().getOrSet(e,function(){return{}});return s.buffer=s.buffer||[],s.buffer.push(n),s.flush=s.flush||I.flush().then(function(){if(H(e))throw new Error("Window is closed");var d=ot(e,r,((f={}).__post_robot_10_0_46__=s.buffer||[],f),{on:i,send:u}),f;delete s.buffer;for(var c=Object.keys(ze),p=[],h=0;h<c.length;h++){var g=c[h];try{ze[g](e,d,r)}catch(m){p.push(m)}}if(p.length===c.length)throw new Error(`All post-robot messaging strategies failed:
8
+
9
+ `+p.map(function(m,b){return b+". "+de(m)}).join(`
10
+
11
+ `))}),s.flush.then(function(){delete s.flush})}).then(X)}function ut(e){return D("responseListeners").get(e)}function at(e){D("responseListeners").del(e)}function st(e){return D("erroredResponseListeners").has(e)}function ct(e){var r=e.name,n=e.win,o=e.domain,i=z("requestListeners");if(n==="*"&&(n=null),o==="*"&&(o=null),!r)throw new Error("Name required to get request listener");for(var u=0,s=[n,Pe()];u<s.length;u++){var d=s[u];if(d){var f=i.get(d);if(f){var c=f[r];if(c){if(o&&typeof o=="string"){if(c[o])return c[o];if(c.__domain_regex__)for(var p=0,h=c.__domain_regex__;p<h.length;p++){var g=h[p],m=g.listener;if(te(g.regex,o))return m}}if(c["*"])return c["*"]}}}}}function Ri(e,r,n,o){var i=o.on,u=o.send,s=ct({name:n.name,win:e,domain:r}),d=n.name==="postrobot_method"&&n.data&&typeof n.data.name=="string"?n.data.name+"()":n.name;function f(c,p,h){return I.flush().then(function(){if(!n.fireAndForget&&!H(e))try{return Ue(e,r,{id:V(),origin:j(window),type:"postrobot_message_response",hash:n.hash,name:n.name,ack:c,data:p,error:h},{on:i,send:u})}catch(g){throw new Error("Send response message failed for "+d+" in "+j()+`
12
+
13
+ `+de(g))}})}return I.all([I.flush().then(function(){if(!n.fireAndForget&&!H(e))try{return Ue(e,r,{id:V(),origin:j(window),type:"postrobot_message_ack",hash:n.hash,name:n.name},{on:i,send:u})}catch(c){throw new Error("Send ack message failed for "+d+" in "+j()+`
14
+
15
+ `+de(c))}}),I.try(function(){if(!s)throw new Error("No handler found for post message: "+n.name+" from "+r+" in "+window.location.protocol+"//"+window.location.host+window.location.pathname);return s.handler({source:e,origin:r,data:n.data})}).then(function(c){return f("success",c)},function(c){return f("error",null,c)})]).then(X).catch(function(c){if(s&&s.handleError)return s.handleError(c);throw c})}function Ti(e,r,n){if(!st(n.hash)){var o=ut(n.hash);if(!o)throw new Error("No handler found for post message ack for message: "+n.name+" from "+r+" in "+window.location.protocol+"//"+window.location.host+window.location.pathname);try{if(!te(o.domain,r))throw new Error("Ack origin "+r+" does not match domain "+o.domain.toString());if(e!==o.win)throw new Error("Ack source does not match registered window")}catch(i){o.promise.reject(i)}o.ack=!0}}function Ci(e,r,n){if(!st(n.hash)){var o=ut(n.hash);if(!o)throw new Error("No handler found for post message response for message: "+n.name+" from "+r+" in "+window.location.protocol+"//"+window.location.host+window.location.pathname);if(!te(o.domain,r))throw new Error("Response origin "+r+" does not match domain "+(i=o.domain,Array.isArray(i)?"("+i.join(" | ")+")":y(i)?"RegExp("+i.toString()+")":i.toString()));var i;if(e!==o.win)throw new Error("Response source does not match registered window");at(n.hash),n.ack==="error"?o.promise.reject(n.error):n.ack==="success"&&o.promise.resolve({source:e,origin:r,data:n.data})}}function ft(e,r){var n=r.on,o=r.send,i=D("receivedMessages");try{if(!window||window.closed||!e.source)return}catch{return}var u=e.source,s=e.origin,d=function(p,h,g,m){var b=m.on,E=m.send,A;try{A=it(h,g,p,{on:b,send:E})}catch{return}if(A&&typeof A=="object"&&A!==null){var _=A.__post_robot_10_0_46__;if(Array.isArray(_))return _}}(e.data,u,s,{on:n,send:o});if(d){Kn(u);for(var f=0;f<d.length;f++){var c=d[f];if(i.has(c.id)||(i.set(c.id,!0),H(u)&&!c.fireAndForget))return;c.origin.indexOf("file:")===0&&(s="file://");try{c.type==="postrobot_message_request"?Ri(u,s,c,{on:n,send:o}):c.type==="postrobot_message_response"?Ci(u,s,c):c.type==="postrobot_message_ack"&&Ti(u,s,c)}catch(p){setTimeout(function(){throw p},0)}}}}function k(e,r,n){if(!e)throw new Error("Expected name");if(typeof(r=r||{})=="function"&&(n=r,r={}),!n)throw new Error("Expected handler");var o=function i(u,s){var d=u.name,f=u.win,c=u.domain,p=z("requestListeners");if(!d||typeof d!="string")throw new Error("Name required to add request listener");if(f&&f!=="*"&&$.isProxyWindow(f)){var h=f.awaitWindow().then(function(T){return i({name:d,win:T,domain:c},s)});return{cancel:function(){h.then(function(T){return T.cancel()},X)}}}var g=f;if(Array.isArray(g)){for(var m=[],b=0,E=g;b<E.length;b++)m.push(i({name:d,domain:c,win:E[b]},s));return{cancel:function(){for(var T=0;T<m.length;T++)m[T].cancel()}}}if(Array.isArray(c)){for(var A=[],_=0,C=c;_<C.length;_++)A.push(i({name:d,win:g,domain:C[_]},s));return{cancel:function(){for(var T=0;T<A.length;T++)A[T].cancel()}}}var O=ct({name:d,win:g,domain:c});g&&g!=="*"||(g=Pe());var W=(c=c||"*").toString();if(O)throw g&&c?new Error("Request listener already exists for "+d+" on domain "+c.toString()+" for "+(g===Pe()?"wildcard":"specified")+" window"):g?new Error("Request listener already exists for "+d+" for "+(g===Pe()?"wildcard":"specified")+" window"):c?new Error("Request listener already exists for "+d+" on domain "+c.toString()):new Error("Request listener already exists for "+d);var M=p.getOrSet(g,function(){return{}}),P=le(M,d,function(){return{}}),R,G;return De(c)?(R=le(P,"__domain_regex__",function(){return[]})).push(G={regex:c,listener:s}):P[W]=s,{cancel:function(){delete P[W],G&&(R.splice(R.indexOf(G,1)),R.length||delete P.__domain_regex__),Object.keys(P).length||delete M[d],g&&!Object.keys(M).length&&p.del(g)}}}({name:e,win:r.window,domain:r.domain||"*"},{handler:n||r.handler,handleError:r.errorHandler||function(i){throw i}});return{cancel:function(){o.cancel()}}}function Di(e,r,n){typeof(r=r||{})=="function"&&(n=r,r={});var o=new I,i;return r.errorHandler=function(u){i.cancel(),o.reject(u)},i=k(e,r,function(u){if(i.cancel(),o.resolve(u),n)return n(u)}),o.cancel=i.cancel,o}var Z=function e(r,n,o,i){var u=(i=i||{}).domain||"*",s=i.timeout||-1,d=i.timeout||5e3,f=i.fireAndForget||!1;return $.toProxyWindow(r,{send:e}).awaitWindow().then(function(c){return I.try(function(){if(function(p,h,g){if(!p)throw new Error("Expected name");if(g&&typeof g!="string"&&!Array.isArray(g)&&!De(g))throw new TypeError("Can not send "+p+". Expected domain "+JSON.stringify(g)+" to be a string, array, or regex");if(H(h))throw new Error("Can not send "+p+". Target window is closed")}(n,c,u),function(p,h){var g=jn(h);if(g)return g===p;if(h===p||function(E){E===void 0&&(E=window);try{if(E.top)return E.top}catch{}if(Y(E)===E)return E;try{if(Nn(window,E)&&window.top)return window.top}catch{}try{if(Nn(E,window)&&window.top)return window.top}catch{}for(var A=0,_=function O(W){for(var M=[],P=0,R=Ln(W);P<R.length;P++){var G=R[P];M.push(G);for(var T=0,ve=O(G);T<ve.length;T++)M.push(ve[T])}return M}(E);A<_.length;A++){var C=_[A];try{if(C.top)return C.top}catch{}if(Y(C)===C)return C}}(h)===h)return!1;for(var m=0,b=Ln(p);m<b.length;m++)if(b[m]===h)return!0;return!1}(window,c))return function(p,h,g){h===void 0&&(h=5e3),g===void 0&&(g="Window");var m=function(b){return z("helloPromises").getOrSet(b,function(){return new I})}(p);return h!==-1&&(m=m.timeout(h,new Error(g+" did not load after "+h+"ms"))),m}(c,d)}).then(function(p){return function(h,g,m,b){var E=b.send;return I.try(function(){return typeof g=="string"?g:I.try(function(){return m||Me(h,{send:E}).then(function(A){return A.domain})}).then(function(A){if(!te(g,g))throw new Error("Domain "+Vn(g)+" does not match "+Vn(g));return A})})}(c,u,(p===void 0?{}:p).domain,{send:e})}).then(function(p){var h=p,g=n==="postrobot_method"&&o&&typeof o.name=="string"?o.name+"()":n,m=new I,b=n+"_"+V();if(!f){var E={name:n,win:c,domain:h,promise:m};(function(P,R){D("responseListeners").set(P,R)})(b,E);var A=z("requestPromises").getOrSet(c,function(){return[]});A.push(m),m.catch(function(){(function(P){D("erroredResponseListeners").set(P,!0)})(b),at(b)});var _=function(P){return z("knownWindows").get(P,!1)}(c)?1e4:2e3,C=s,O=_,W=C,M=function(P,R){var G;return function T(){G=setTimeout(function(){(function(){if(H(c))return m.reject(new Error("Window closed for "+n+" before "+(E.ack?"response":"ack")));if(E.cancelled)return m.reject(new Error("Response listener was cancelled for "+n));O=Math.max(O-500,0),W!==-1&&(W=Math.max(W-500,0)),E.ack||O!==0?W===0&&m.reject(new Error("No response for postMessage "+g+" in "+j()+" in "+C+"ms")):m.reject(new Error("No ack for postMessage "+g+" in "+j()+" in "+_+"ms"))})(),T()},500)}(),{cancel:function(){clearTimeout(G)}}}();m.finally(function(){M.cancel(),A.splice(A.indexOf(m,1))}).catch(X)}return Ue(c,h,{id:V(),origin:j(window),type:"postrobot_message_request",hash:b,name:n,data:o,fireAndForget:f},{on:k,send:e}).then(function(){return f?m.resolve():m},function(P){throw new Error("Send request message failed for "+g+" in "+j()+`
16
+
17
+ `+de(P))})})})};function Mi(e,r,n){return ot(e,r,n,{on:k,send:Z})}function Ni(e,r,n){return it(e,r,n,{on:k,send:Z})}function Li(e){return new $({send:Z,win:e})}function ji(e){return $.toProxyWindow(e,{send:Z})}function dt(){he().initialized||(he().initialized=!0,r=(e={on:k,send:Z}).on,n=e.send,(o=he()).receiveMessage=o.receiveMessage||function(i){return ft(i,{on:r,send:n})},function(i){var u=i.on,s=i.send;D().getOrSet("postMessageListener",function(){return function(d,f,c){return d.addEventListener("message",c),{cancel:function(){d.removeEventListener("message",c)}}}(window,0,function(d){(function(f,c){var p=c.on,h=c.send;I.try(function(){var g=f.source||f.sourceElement,m=f.origin||f.originalEvent&&f.originalEvent.origin,b=f.data;if(m==="null"&&(m="file://"),g){if(!m)throw new Error("Post message did not have origin domain");ft({source:g,origin:m,data:b},{on:p,send:h})}})})(d,{on:u,send:s})})})}({on:k,send:Z}),function(i){var u=i.on,s=i.send;D("builtinListeners").getOrSet("helloListener",function(){var d=u("postrobot_hello",{domain:"*"},function(c){return Qn(c.source,{domain:c.origin}),{instanceID:Bn()}}),f=jn();return f&&Me(f,{send:s}).catch(function(c){}),d})}({on:k,send:Z}));var e,r,n,o}function zi(){(function(){for(var r=D("responseListeners"),n=0,o=r.keys();n<o.length;n++){var i=o[n],u=r.get(i);u&&(u.cancelled=!0),r.del(i)}})(),(e=D().get("postMessageListener"))&&e.cancel();var e;delete window.__post_robot_10_0_46__}var Ui=!0;function qi(e){for(var r=0,n=z("requestPromises").get(e,[]);r<n.length;r++)n[r].reject(new Error("Window "+(H(e)?"closed":"cleaned up")+" before response")).catch(X)}dt()}])})})(xn);var ei=xn.exports;(function(t){t.exports=ei,t.exports.default=t.exports})(Sn);var ni=Sn.exports;const Pn=Ko(ni),ti="UI_MESSAGE",In={UI_SELECT_CONTENT:"ui_select_content"},ri={UI_CONTENT_SELECTED:"ui_content_selected"};async function oi(t={}){return(await Pn.send(window.parent,In.UI_SELECT_CONTENT,t)).data}function ii(t,a){return Pn.on(t,w=>a(w.data)).cancel}const ui=Object.freeze(Object.defineProperty({__proto__:null,on:ii,ui_select_content:oi},Symbol.toStringTag,{value:"Module"})),_n="ADMIN_MESSAGE",ai={ENV_CHANGED:"env_changed"},Oe={ADMIN_REQUEST:"ADMIN_REQUEST",ADMIN_RESPONSE:"ADMIN_RESPONSE"},Wn={GET_ENV:"get_env"};function si(t,a,l={timeout:1e4}){return new Promise((w,v)=>{if(typeof window>"u"){v(new Error("This function cannot be run on the server side."));return}const y=He(),S=L=>{L.data.type===Oe.ADMIN_RESPONSE&&L.data.id===y&&(window.removeEventListener("message",S),w(L.data.body))};window.addEventListener("message",S),window.parent.postMessage({type:Oe.ADMIN_REQUEST,id:y,body:{type:t,data:a??{}}},"*"),l.timeout&&setTimeout(()=>{window.removeEventListener("message",S),v(new Error(`Admin did not respond in the timeframe of ${l.timeout}ms. Check the handler on the Admin side.`))},l.timeout)})}const J={};function ci(t,a){J[t]||(J[t]=[]),J[t]?.push(a)}function fi(t,a){J[t]&&(J[t]=J[t]?.filter(l=>l!==a))}typeof window<"u"&&window.addEventListener("message",function(a){if(a.data.type!==_n)return;const l=J[a.data.body.type];l&&l.forEach(w=>w(a.data.body.data))});function di(){return si(Wn.GET_ENV)}const li=Object.freeze(Object.defineProperty({__proto__:null,get_env:di},Symbol.toStringTag,{value:"Module"})),hi="PITCHER_EVENT";var On=(t=>(t.REQUEST="PITCHER_REQUEST",t.RESPONSE="PITCHER_RESPONSE",t))(On||{}),Rn=(t=>(t.OK="ok",t.ERROR="error",t))(Rn||{}),Tn=(t=>(t.ENV_CHANGED="env_changed",t.PHOTOS_CAPTURED="photos_captured",t.FILE_DOWNLOADED="file_downloaded",t.FILE_UPLOAD_PROGRESS="file_upload_progress",t.UPDATE_LOCATION="update_location",t.CANVAS_UPDATED="canvas_updated",t))(Tn||{}),Cn=(t=>(t.UI_SHOW_MODAL="ui:show-modal",t.UI_HIDE_MODAL="ui:hide-modal",t.FAVORITES_CHANGED="favorites:changed",t.FILE_DOWNLOAD="file:download",t))(Cn||{}),Dn=(t=>(t.OPEN_CANVAS="open_canvas",t.START_CALL="start_call",t))(Dn||{});x.highLevelApi=void 0;function vi(t){return x.highLevelApi||(x.highLevelApi=Qo(t)),x.highLevelApi}function gi(){return ui}const pi={...li,on:ci,off:fi};function wi(){return pi}x.ADMIN_API_METHOD_TYPES=Wn,x.ADMIN_API_TYPES=Oe,x.ADMIN_MESSAGE=_n,x.ADMIN_MESSAGE_TYPES=ai,x.PITCHER_EVENT=hi,x.PitcherBroadcastedEventName=Cn,x.PitcherEventName=Tn,x.PitcherExternalEventName=Dn,x.PitcherMessageType=On,x.PitcherResponseStatus=Rn,x.UI_API_METHOD_TYPES=In,x.UI_MESSAGE=ti,x.UI_MESSAGE_TYPES=ri,x.useAdmin=wi,x.usePitcherApi=vi,x.useUi=gi,Object.defineProperty(x,Symbol.toStringTag,{value:"Module"})});
2
18
  //# sourceMappingURL=js-api.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"js-api.umd.min.js","sources":["../../src/lib/sdk/api/modules/webview.ts","../../src/lib/sdk/api/modules/env.ts","../../src/lib/sdk/api/modules/languages.ts","../../src/lib/sdk/api/modules/events.ts","../../src/lib/sdk/api/modules/canvas.ts","../../src/lib/sdk/api/modules/files.ts","../../src/lib/sdk/api/modules/search.ts","../../src/lib/sdk/api/modules/users.ts","../../src/lib/sdk/api/modules/connections.ts","../../src/lib/sdk/api/modules/pspdfkit.ts","../../src/lib/sdk/api/modules/toast.ts","../../src/lib/sdk/api/modules/query.ts","../../src/lib/sdk/api/modules/folders.ts","../../src/lib/sdk/api/modules/favorites.ts","../../src/lib/sdk/api/modules/notifications.ts","../../src/lib/sdk/api/modules/track.ts","../../src/lib/sdk/api/modules/metadataTemplates.ts","../../src/lib/sdk/utils/eventEmitter.ts","../../node_modules/uuid/dist/esm-browser/rng.js","../../node_modules/uuid/dist/esm-browser/stringify.js","../../node_modules/uuid/dist/esm-browser/native.js","../../node_modules/uuid/dist/esm-browser/v4.js","../../src/lib/sdk/utils/assert.ts","../../node_modules/lodash-es/_freeGlobal.js","../../node_modules/lodash-es/_root.js","../../node_modules/lodash-es/_Symbol.js","../../node_modules/lodash-es/_getRawTag.js","../../node_modules/lodash-es/_objectToString.js","../../node_modules/lodash-es/_baseGetTag.js","../../node_modules/lodash-es/isObjectLike.js","../../node_modules/lodash-es/isSymbol.js","../../node_modules/lodash-es/_arrayMap.js","../../node_modules/lodash-es/isArray.js","../../node_modules/lodash-es/_baseToString.js","../../node_modules/lodash-es/toString.js","../../node_modules/lodash-es/_baseSlice.js","../../node_modules/lodash-es/_castSlice.js","../../node_modules/lodash-es/_hasUnicode.js","../../node_modules/lodash-es/_asciiToArray.js","../../node_modules/lodash-es/_unicodeToArray.js","../../node_modules/lodash-es/_stringToArray.js","../../node_modules/lodash-es/_createCaseFirst.js","../../node_modules/lodash-es/upperFirst.js","../../node_modules/lodash-es/capitalize.js","../../node_modules/lodash-es/_arrayReduce.js","../../node_modules/lodash-es/_basePropertyOf.js","../../node_modules/lodash-es/_deburrLetter.js","../../node_modules/lodash-es/deburr.js","../../node_modules/lodash-es/_asciiWords.js","../../node_modules/lodash-es/_hasUnicodeWord.js","../../node_modules/lodash-es/_unicodeWords.js","../../node_modules/lodash-es/words.js","../../node_modules/lodash-es/_createCompounder.js","../../node_modules/lodash-es/camelCase.js","../../node_modules/lodash-es/snakeCase.js","../../src/lib/util/casing.ts","../../src/lib/sdk/api/LowLevelApi.ts","../../src/lib/sdk/api/HighLevelApi.ts","../../src/lib/sdk/api/modules/ui/types.ui.ts","../../src/lib/sdk/api/UiApi.ts","../../src/lib/sdk/api/modules/ui/sfdc.ui.ts","../../src/lib/sdk/api/modules/admin/types.admin.ts","../../src/lib/sdk/api/AdminApi.ts","../../src/lib/sdk/api/modules/admin/env.admin.ts","../../src/lib/sdk/interfaces.ts","../../src/lib/sdk/main.ts"],"sourcesContent":["import type { OpenWebviewPayload } from '@sdk/payload.types'\n\nexport function open(payload: OpenWebviewPayload = {}): Promise<string> {\n return this.API.request('open', payload)\n}\n","import type { PitcherEnv } from '@sdk/interfaces'\nimport type { User } from '@openapi'\n\nexport function getEnv(): Promise<PitcherEnv> {\n return this.API.request('get_env')\n}\n\ntype UpdateEnvParams = Pick<User, 'language' | 'dark_mode'>\n\nexport function updateMyUser(payload: UpdateEnvParams): Promise<User> {\n return this.API.request('update_my_user', payload)\n}\n","export type Language = [\n string, // key\n string, // name\n]\n\n/**\n * Fetches available languages for the logged-in user\n */\nexport function getLanguages(): Promise<Language[]> {\n return this.API.request('get_languages')\n}\n","import { highLevelApi } from '@sdk/main'\nimport type { PaginatedData } from '@lib/types/paginatedData'\nimport type { Event, EventRequest, PatchedEventRequest } from '@openapi'\n\nexport function getEvents(payload: Partial<EventRequest>): Promise<PaginatedData<Event>> {\n return highLevelApi.API.request('get_events', payload)\n}\n\nexport function createEvent(payload: EventRequest): Promise<Event> {\n return highLevelApi.API.request('create_event', payload)\n}\n\nexport function updateEvent(payload: PatchedEventRequest): Promise<Event> {\n return highLevelApi.API.request('update_event', payload)\n}\n\nexport function deleteEvent(payload: Partial<Event>): Promise<void> {\n return highLevelApi.API.request('delete_event', payload)\n}\n","import type { Canvas, CanvasCreateRequest, PatchedCanvasUpdateRequest, SharedLink } from '@openapi'\nimport type { GetCanvasesParams } from '@lib/types/canvases'\nimport type { PaginatedData } from '@lib/types/paginatedData'\n\nexport function getCanvases(payload: GetCanvasesParams): Promise<PaginatedData<Canvas>> {\n return this.API.request('get_canvases', payload)\n}\n\nexport function createCanvas(payload: CanvasCreateRequest): Promise<Canvas> {\n return this.API.request('create_canvas', payload)\n}\n\nexport function deleteCanvas(payload: { id: Canvas['id'] }): Promise<Canvas> {\n return this.API.request('delete_canvas', payload)\n}\n\nexport function updateCanvas(\n payload: PatchedCanvasUpdateRequest & { id: Canvas['id']; instance_id?: Canvas['instance']['id'] },\n): Promise<Canvas> {\n return this.API.request('update_canvas', payload)\n}\n\nexport function getCanvas(payload: { id: Canvas['id'] }): Promise<Canvas> {\n return this.API.request('get_canvas', payload)\n}\n\nexport function shareCanvas(payload: { id: Canvas['id'] }): Promise<SharedLink> {\n return this.API.request('share_canvas', payload)\n}\n","import type { File, FileRetrieve, PaginatedFileList } from '@openapi'\nimport type { ListFilesPayload } from '@sdk/payload.types'\nimport type { AllFileCreateRequest, DeviceFile } from '@lib/types/files'\n\nexport function getFiles(payload: ListFilesPayload): Promise<PaginatedFileList> {\n const p = { ...payload }\n\n if (p.type) {\n p.type = Array.isArray(p.type) ? p.type : [p.type]\n }\n\n if (p.content_type) {\n p.content_type = Array.isArray(p.content_type) ? p.content_type : [p.content_type]\n }\n\n return this.API.request('get_files', p)\n}\n\nexport function downloadFile(payload: { file_id: File['id'] }): Promise<null> {\n return this.API.request('download_file', payload)\n}\n\nexport function getAppConfig(payload: { app_name: string }): Promise<Record<string, any>> {\n return this.API.request('get_app_config', payload)\n}\n\nexport function getFile(payload: { file_id: FileRetrieve['id'] }): Promise<FileRetrieve> {\n return this.API.request('get_file', payload)\n}\n\nexport function deleteFile(payload: { file_id: File['id'] }): Promise<File['id']> {\n return this.API.request('delete_file', payload)\n}\n\nexport function createFile(payload: Omit<AllFileCreateRequest, 'instance_id'>): Promise<File> {\n return this.API.request('create_file', payload)\n}\n\nexport function selectDeviceFile(): Promise<DeviceFile> {\n return this.API.request('select_device_file')\n}\n","import type { Instance } from '@openapi'\n\nexport function search(payload: { instance_id: Instance['id']; query: string }): Promise<any> {\n return this.API.request('search', payload)\n}\n","import type { GetUsersParams } from '@lib/types/users'\nimport type { User } from '@openapi'\n\nexport function getUsers(payload?: GetUsersParams): Promise<User[]> {\n return this.API.request('get_users', payload)\n}\n","import type { ConnectedService, Connection } from '@openapi'\n\nexport function getService(payload: { name: ConnectedService['name'] }): Promise<ConnectedService> {\n return this.API.request('getService', payload)\n}\n\nexport function refreshServiceToken(payload: {\n name: ConnectedService['name']\n}): Promise<Pick<ConnectedService, 'access_token'>> {\n return this.API.request('refresh_service_token', payload)\n}\n\ntype ConnectionList = (Connection & { is_connected: boolean })[]\n\nexport function getConnections(): Promise<ConnectionList> {\n return this.API.request('get_connections')\n}\n\nexport function connectionLogin(payload: { name: ConnectedService['name'] }): Promise<Connection> {\n return this.API.request('connection_login', payload)\n}\n\nexport function connectionLogout(payload: { name: ConnectedService['name'] }): Promise<Connection> {\n return this.API.request('connection_logout', payload)\n}\n","import type { File } from '@openapi'\n\nexport function fetchDocumentInfo(payload: { fileId: File['id'] }): Promise<{\n pageCount: number\n [key: string]: unknown\n}> {\n return this.API.request('fetch_document_info', payload)\n}\n\nexport function renderPageAsImage(payload: {\n fileId: File['id']\n pageNumber: number\n params: { width: number } | { height: number }\n}): Promise<ArrayBuffer> {\n return this.API.request('render_page_as_image', payload)\n}\n","export function toast(payload: { type: string; message: string }): Promise<void> {\n return this.API.request('toast', payload)\n}\n","import { highLevelApi } from '@sdk/main'\nimport type { QueryPayload } from '@sdk/payload.types'\n\nexport function query(payload: QueryPayload) {\n return highLevelApi.API.request('query', payload)\n}\n","import type { File, Folder, FolderRetrieve, FolderCreateRequest, FolderUpdateRequest } from '@openapi'\n\nexport function getFolder(payload: { id: FolderRetrieve['id'] } = { id: 'root' }): Promise<FolderRetrieve> {\n return this.API.request('get_folder', payload)\n}\n\nexport function createFolder(payload: Omit<FolderCreateRequest, 'instance_id'>): Promise<FolderRetrieve> {\n return this.API.request('create_folder', payload)\n}\n\ntype UpdateFolderPayload = FolderUpdateRequest & { id: Folder['id'] }\n\nexport function updateFolder(payload: UpdateFolderPayload): Promise<FolderRetrieve> {\n return this.API.request('update_folder', payload)\n}\n\nexport function deleteFolder(payload: { folder_id: FolderRetrieve['id'] }): Promise<void> {\n return this.API.request('delete_folder', payload)\n}\n\nexport function moveFolderItems(payload: {\n target_folder_id: Folder['id']\n items: { id: File['id'] | Folder['id']; type: 'folder' | 'file' }[]\n}): Promise<FolderRetrieve> {\n return this.API.request('move_folder_items', payload)\n}\n","import type { Favorite, FavoriteCreateRequest, PaginatedFavoriteList } from '@openapi'\nimport type { GetFavoritesParams } from '@lib/types/favorites'\n\nexport function getFavorites(payload?: GetFavoritesParams): Promise<PaginatedFavoriteList> {\n return this.API.request('get_favorites', payload)\n}\n\nexport function createFavorite(payload: FavoriteCreateRequest): Promise<Favorite> {\n return this.API.request('create_favorite', payload)\n}\n\nexport function deleteFavorite(payload: { favorite_id: Favorite['id'] }): Promise<void> {\n return this.API.request('delete_favorite', payload)\n}\n","import { highLevelApi } from '@sdk/main'\nimport type { NotificationPayload } from '@sdk/payload.types'\n\nexport function notify(payload: NotificationPayload): Promise<void> {\n if (!payload.type) {\n payload.type = 'native'\n }\n\n return highLevelApi.API.request('notify', payload)\n}\n","import { highLevelApi } from '@sdk/main'\n\nexport function track(payload: { event_name: string; payload: any }) {\n return highLevelApi.API.request('track', payload)\n}\n","import type { PaginatedMetadataTemplateList } from '@openapi'\nimport type { GetInstanceMetadataTemplatesPayload } from '@sdk/payload.types'\n\nexport function getInstanceMetadataTemplates(\n payload?: GetInstanceMetadataTemplatesPayload,\n): Promise<PaginatedMetadataTemplateList> {\n return this.API.request('get_instance_metadata_templates', payload)\n}\n","type EventMap = Record<string, any>\n\ntype EventKey<KeyMap extends EventMap> = string & keyof KeyMap\ntype EventReceiver<KeyMap> = (params: KeyMap) => void\n\nexport interface Emitter<KeyMap extends EventMap> {\n on<Key extends EventKey<KeyMap>>(eventName: Key, fn: EventReceiver<KeyMap[Key]>): void\n off<Key extends EventKey<KeyMap>>(eventName: Key, fn: EventReceiver<KeyMap[Key]>): void\n emit<Key extends EventKey<KeyMap>>(eventName: Key, params: KeyMap[Key]): void\n}\n\nexport class EventEmitter<KeyMap extends EventMap> implements Emitter<KeyMap> {\n listeners: {\n [Key in keyof EventMap]?: ((p: EventMap[Key]) => void)[]\n } = {}\n on<Key extends EventKey<KeyMap>>(eventName: Key, fn: EventReceiver<KeyMap[Key]>): void {\n this.listeners[eventName] = (this.listeners[eventName] ?? []).concat(fn)\n }\n off<Key extends EventKey<KeyMap>>(eventName: Key, fn: EventReceiver<KeyMap[Key]>): void {\n this.listeners[eventName] = (this.listeners[eventName] ?? []).filter((f) => f !== fn)\n }\n emit<Key extends EventKey<KeyMap>>(eventName: Key, data?: KeyMap[Key]): void {\n ;(this.listeners[eventName] ?? []).forEach((fn) => fn(data))\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","export class AssertionError extends Error {}\n\nexport function assert(exp: boolean, message: string) {\n if (!exp) {\n throw new AssertionError(message)\n }\n}\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n","import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nexport default snakeCase;\n","import { snakeCase, camelCase, startCase } from 'lodash-es'\n\nconst defaultSkipKeys = [\n 'id__in',\n 'modified_at__gtr',\n 'created_at__gtr',\n 'end_at__lt',\n 'start_at__gt',\n 'account__id',\n 'end_at__gt',\n 'end_at__range',\n 'start_at__lt',\n 'start_at__range',\n 'external_objects__connection_id',\n 'external_objects__content_type',\n 'external_objects__external_content_type',\n 'external_objects__external_object_id',\n]\n\nconst defaultSkipObjectKeys = ['context']\n\nexport const camelCaseKeys = <T>(obj: T, skipKeys = defaultSkipKeys, skipObjectKeys = defaultSkipObjectKeys): T => {\n if (Array.isArray(obj)) {\n return obj.map((v) => camelCaseKeys(v, skipKeys, skipObjectKeys)) as T\n } else if (obj != null && obj.constructor === Object) {\n return Object.keys(obj).reduce((result, key) => {\n const newKey = skipKeys.includes(key) || skipObjectKeys.includes(key) ? key : camelCase(key)\n const value = skipObjectKeys.includes(key)\n ? (obj as any)[key]\n : camelCaseKeys((obj as any)[key], skipKeys, skipObjectKeys)\n return { ...result, [newKey]: value }\n }, {}) as T\n }\n\n return obj\n}\n\nexport const snakeCaseKeys = <T>(obj: T, skipKeys = defaultSkipKeys, skipObjectKeys = defaultSkipObjectKeys): T => {\n if (Array.isArray(obj)) {\n return obj.map((v) => snakeCaseKeys(v, skipKeys, skipObjectKeys)) as T\n } else if (obj != null && obj.constructor === Object) {\n return Object.keys(obj).reduce((result, key) => {\n const newKey = skipKeys.includes(key) || skipObjectKeys.includes(key) ? key : snakeCase(key)\n const value = skipObjectKeys.includes(key)\n ? (obj as any)[key]\n : snakeCaseKeys((obj as any)[key], skipKeys, skipObjectKeys)\n return { ...result, [newKey]: value }\n }, {}) as T\n }\n\n return obj\n}\n\nexport const pascalCaseKeys = <T>(obj: T, skipKeys = defaultSkipKeys, skipObjectKeys = defaultSkipObjectKeys): T => {\n if (Array.isArray(obj)) {\n return obj.map((v) => pascalCaseKeys(v, skipKeys, skipObjectKeys)) as T\n } else if (obj != null && obj.constructor === Object) {\n return Object.keys(obj).reduce((result, key) => {\n const newKey = skipKeys.includes(key) || skipObjectKeys.includes(key) ? key : titleCase(key).replace(/ /g, '')\n const value = skipObjectKeys.includes(key)\n ? (obj as any)[key]\n : pascalCaseKeys((obj as any)[key], skipKeys, skipObjectKeys)\n return { ...result, [newKey]: value }\n }, {}) as T\n }\n\n return obj\n}\n\nexport const titleCase = (s?: string) => startCase(camelCase(s))\n","import { v4 as uuid } from 'uuid'\nimport type { ApiEventMap, PitcherAPI, PitcherEvent, PitcherResponse, ApiOptions } from '../interfaces'\nimport { EventEmitter } from '../utils/eventEmitter'\nimport { assert } from '../utils/assert'\nimport { snakeCaseKeys, camelCaseKeys } from '@lib/util/casing'\n\nexport class LowLevelApi extends EventEmitter<ApiEventMap> implements PitcherAPI {\n constructor(options?: ApiOptions) {\n super()\n this.callbacks = {}\n this.options = options ?? { casing: 'snake', logLevel: 'off' }\n\n if (typeof window !== 'undefined') {\n window.addEventListener('message', (event) => {\n this.options.logLevel === 'debug' && console.log('message received', event)\n if (event.data.type === 'PITCHER_RESPONSE') {\n assert(event.data.request.id, 'event id is required')\n this.handleCallbackMessage(event.data.request.id, event.data)\n } else if (event.data.type === 'PITCHER_EVENT') {\n this.handleEventMessage(this.options.casing === 'camel' ? camelCaseKeys(event.data.event) : event.data.event)\n }\n })\n\n this.request('subscribe') // subscribe to events\n }\n }\n\n callbacks: {\n [k: string]: { callback: (res: PitcherResponse) => void; dispatched_at: number; type: string; payload: object }\n }\n\n private options: ApiOptions\n\n private handleCallbackMessage(id: string, body: PitcherResponse) {\n if (this.callbacks[id]) {\n this.callbacks[id].callback(body)\n // metrics\n this.options.logLevel &&\n ['info', 'debug'].includes(this.options.logLevel) &&\n console.log(\n `It took ${Date.now() - this.callbacks[id].dispatched_at} ms for the event ${this.callbacks[id].type}`,\n )\n // cleanup\n delete this.callbacks[id]\n }\n }\n\n private handleEventMessage(event: PitcherEvent) {\n this.emit('event', event)\n }\n\n public request(type: string, body: object | null = null): Promise<any> {\n return new Promise((resolve, reject) => {\n const id = uuid()\n const callback = (res: PitcherResponse) => {\n this.options.logLevel === 'debug' && console.log(`Callback ${id} response:`, res)\n if (res.response.status === 'ok') {\n resolve(\n (this.options.casing === 'camel' ? camelCaseKeys(res.response.body) : res.response.body) as PitcherResponse,\n )\n } else if (res.response.status === 'error') {\n reject(this.options.casing === 'camel' ? camelCaseKeys(res.response.body) : res.response.body)\n } else {\n throw new Error('unsupported response status')\n }\n }\n const payload = snakeCaseKeys(body) // always snake case for impact\n\n this.callbacks[id] = {\n dispatched_at: Date.now(),\n type,\n payload: payload ?? {},\n callback,\n }\n\n // always post to top ancestor window\n if (typeof window !== 'undefined' && window.top) {\n window.top.postMessage(\n {\n type: 'PITCHER_REQUEST',\n request: {\n type,\n id,\n body: payload,\n },\n },\n '*',\n )\n }\n })\n }\n}\n","import * as modules from '@sdk/api/modules'\nimport { EventEmitter } from '@sdk/utils/eventEmitter'\nimport { LowLevelApi } from '@sdk/api/LowLevelApi'\nimport type { PitcherEvent, ApiOptions } from '@sdk/interfaces'\n\nexport function createHighLevelApi(options?: ApiOptions) {\n const API = new LowLevelApi(options)\n const eventEmitter = new EventEmitter()\n\n API.on('event', (event: PitcherEvent) => {\n eventEmitter.emit(event.type, event.body)\n })\n\n return {\n API,\n ...modules,\n on: (type: string, callback: (payload: PitcherEvent) => void) => eventEmitter.on(type, callback),\n off: (type: string, callback: (payload: PitcherEvent) => void) => eventEmitter.off(type, callback),\n quitInstance: () => API.request('quit_instance'),\n getRequestTypes: () => API.request('get_request_types'),\n broadcast: (event: PitcherEvent) => API.request('broadcast', event),\n subscribe: () => API.request('subscribe'),\n unsubscribe: () => API.request('unsubscribe'),\n }\n}\n","import type { CanvasRetrieve, FileRetrieve } from '@openapi'\n\nexport const UI_MESSAGE = 'UI_MESSAGE' as const\n\nexport const UI_API_TYPES = {\n UI_REQUEST: 'UI_REQUEST',\n UI_RESPONSE: 'UI_RESPONSE',\n} as const\n\nexport const UI_API_METHOD_TYPES = {\n SFDC_QUERY: 'sfdc_query',\n SFDC_ENTITY: 'sfdc_entity',\n} as const\n\nexport const UI_MESSAGE_TYPES = {\n CANVAS_UPDATED: 'canvas_updated',\n FILE_UPDATED: 'file_updated',\n} as const\n\nexport type UiRequest<Payload = any> = {\n id: string\n type: (typeof UI_API_TYPES)['UI_REQUEST']\n body: {\n type: (typeof UI_API_METHOD_TYPES)[keyof typeof UI_API_METHOD_TYPES]\n data: Payload\n }\n}\n\nexport type UiResponse<Response = any> = {\n id: string\n type: (typeof UI_API_TYPES)['UI_RESPONSE']\n body: Response\n}\n\nexport type UiMessage<Payload = any> = {\n id: string\n type: typeof UI_MESSAGE\n body: {\n type: (typeof UI_MESSAGE_TYPES)[keyof typeof UI_MESSAGE_TYPES]\n data: Payload\n }\n}\n\n// Message payloads from the UI iframe\nexport type UiMessagePayloads = {\n [UI_MESSAGE_TYPES.CANVAS_UPDATED]: CanvasRetrieve\n [UI_MESSAGE_TYPES.FILE_UPDATED]: FileRetrieve\n}\n","import { v4 as uuidv4 } from 'uuid'\nimport {\n UI_MESSAGE,\n UI_API_TYPES,\n type UiMessagePayloads,\n type UI_MESSAGE_TYPES,\n type UI_API_METHOD_TYPES,\n type UiResponse,\n type UiMessage,\n} from '@lib/sdk/api/modules/ui/types.ui'\n\n/**\n * @description Request / response api for the UI\n */\nexport interface UiPromiseOptions {\n timeout?: number\n}\n\nexport function uiPromise<Payload = any, ExpectedReturn = any>(\n method: (typeof UI_API_METHOD_TYPES)[keyof typeof UI_API_METHOD_TYPES],\n data: Payload,\n options: UiPromiseOptions = { timeout: 10000 },\n): Promise<ExpectedReturn> {\n return new Promise((resolve, reject) => {\n const id = uuidv4()\n const listener = (event: MessageEvent<UiResponse<ExpectedReturn>>) => {\n if (event.data.type === UI_API_TYPES.UI_RESPONSE && event.data.id === id) {\n window.removeEventListener('message', listener)\n resolve(event.data.body)\n }\n }\n window.addEventListener('message', listener)\n window.parent.postMessage(\n {\n type: UI_API_TYPES.UI_REQUEST,\n id,\n body: {\n type: method,\n data,\n },\n },\n '*',\n )\n\n options.timeout &&\n setTimeout(() => {\n window.removeEventListener('message', listener)\n reject(\n new Error(`UI did not respond in the timeframe of ${options.timeout}ms. Check the handler on the UI side.`),\n )\n }, options.timeout)\n })\n}\n\n/**\n * @description Event bus api for the UI\n */\n\nconst eventHandlers: Partial<\n Record<(typeof UI_MESSAGE_TYPES)[keyof typeof UI_MESSAGE_TYPES], ((data: any) => void)[]>\n> = {}\n\nfunction handleMessage(event: MessageEvent<UiMessage>): void {\n if (event.data.type !== UI_MESSAGE) return\n\n const handlers = eventHandlers[event.data.body.type]\n if (handlers) {\n handlers.forEach((handler) => handler(event.data.body.data))\n }\n}\n\nexport function on(\n eventName: (typeof UI_MESSAGE_TYPES)[keyof typeof UI_MESSAGE_TYPES],\n handler: (data: UiMessagePayloads[(typeof UI_MESSAGE_TYPES)[keyof typeof UI_MESSAGE_TYPES]]) => void,\n) {\n if (!eventHandlers[eventName]) {\n eventHandlers[eventName] = []\n }\n\n eventHandlers[eventName]?.push(handler)\n}\n\nexport function off(\n eventName: (typeof UI_MESSAGE_TYPES)[keyof typeof UI_MESSAGE_TYPES],\n handler: (data: UiMessagePayloads[(typeof UI_MESSAGE_TYPES)[keyof typeof UI_MESSAGE_TYPES]]) => void,\n) {\n if (!eventHandlers[eventName]) {\n return\n }\n eventHandlers[eventName] = eventHandlers[eventName]?.filter((h) => h !== handler)\n}\n\nwindow.addEventListener('message', handleMessage)\n\n// Handler for the parent window\n// window.addEventListener('message', (event) => {\n// if (event.data.type === 'UI_REQUEST' && event.data.body.type === 'SFDC_QUERY') {\n// // Handle the request and post a response\n// // The response should have the same type and id as the request\n// // The body of the response should contain the data returned from the SFDC query\n// event.source.postMessage({\n// type: 'UI_RESPONSE',\n// id: event.data.id,\n// body: { /* response data */ }\n// }, '*')\n// }\n// })\n\n// in umd it would be called like:\n// pitcher.useUi().sfdc_query({ query: 'SELECT Id, Name FROM Account' }, { timeout: 10000 }).then((accountData) => {\n// do something with the account data\n// })\n","import { uiPromise, type UiPromiseOptions } from '@sdk/api/UiApi'\nimport { UI_API_METHOD_TYPES } from '@sdk/api/modules/ui/types.ui'\n\ntype SfdcQueryPayload = {\n query: string\n}\n\ntype SfdcQueryResponse<EntitySchema = any> = {\n records: EntitySchema[]\n}\n\nexport function sfdc_query<EntitySchema>(data: SfdcQueryPayload, options?: UiPromiseOptions) {\n return uiPromise<SfdcQueryPayload, SfdcQueryResponse<EntitySchema>>(UI_API_METHOD_TYPES.SFDC_QUERY, data, options)\n}\n","import type { Instance, User } from '@openapi'\n\nexport const ADMIN_MESSAGE = 'ADMIN_MESSAGE' as const\n\nexport const ADMIN_MESSAGE_TYPES = {\n ENV_CHANGED: 'env_changed',\n} as const\n\nexport const ADMIN_API_TYPES = {\n ADMIN_REQUEST: 'ADMIN_REQUEST',\n ADMIN_RESPONSE: 'ADMIN_RESPONSE',\n} as const\n\nexport const ADMIN_API_METHOD_TYPES = {\n GET_ENV: 'get_env',\n} as const\n\nexport type AdminMessagePayloads = {\n [ADMIN_MESSAGE_TYPES.ENV_CHANGED]: AdminEnv\n}\n\nexport type AdminRequest<Payload = any> = {\n id: string\n type: (typeof ADMIN_API_TYPES)['ADMIN_REQUEST']\n body: {\n type: (typeof ADMIN_API_METHOD_TYPES)[keyof typeof ADMIN_API_METHOD_TYPES]\n data: Payload\n }\n}\n\nexport type AdminResponse<Response = any> = {\n id: string\n type: (typeof ADMIN_API_TYPES)['ADMIN_RESPONSE']\n body: Response\n}\n\nexport type AdminMessage<Payload = any> = {\n id: string\n type: typeof ADMIN_MESSAGE\n body: {\n type: (typeof ADMIN_MESSAGE_TYPES)[keyof typeof ADMIN_MESSAGE_TYPES]\n data: Payload\n }\n}\n\n// TODO: Request / message payloads to the admin iframe\n\n// Responses / message payloads from the admin iframe\nexport type AdminEnv = {\n user: User\n token_claims: Record<string, any>\n instance: Instance\n}\n","import { v4 as uuidv4 } from 'uuid'\n\nimport {\n ADMIN_MESSAGE,\n ADMIN_API_TYPES,\n type AdminMessagePayloads,\n type ADMIN_MESSAGE_TYPES,\n type ADMIN_API_METHOD_TYPES,\n type AdminResponse,\n type AdminMessage,\n} from '@lib/sdk/api/modules/admin/types.admin'\n\n/**\n * @description Request / response api for the Admin\n */\nexport interface AdminPromiseOptions {\n timeout?: number\n}\n\nexport function adminPromise<Payload = any, ExpectedReturn = any>(\n method: (typeof ADMIN_API_METHOD_TYPES)[keyof typeof ADMIN_API_METHOD_TYPES],\n data?: Payload,\n options: AdminPromiseOptions = { timeout: 10000 },\n): Promise<ExpectedReturn> {\n return new Promise((resolve, reject) => {\n const id = uuidv4()\n const listener = (event: MessageEvent<AdminResponse<ExpectedReturn>>) => {\n if (event.data.type === ADMIN_API_TYPES.ADMIN_RESPONSE && event.data.id === id) {\n window.removeEventListener('message', listener)\n resolve(event.data.body)\n }\n }\n window.addEventListener('message', listener)\n window.parent.postMessage(\n {\n type: ADMIN_API_TYPES.ADMIN_REQUEST,\n id,\n body: {\n type: method,\n data: data ?? {},\n },\n },\n '*',\n )\n\n options.timeout &&\n setTimeout(() => {\n window.removeEventListener('message', listener)\n reject(\n new Error(\n `Admin did not respond in the timeframe of ${options.timeout}ms. Check the handler on the Admin side.`,\n ),\n )\n }, options.timeout)\n })\n}\n\n/**\n * @description Event bus api for the Admin\n */\nconst eventHandlers: Partial<\n Record<(typeof ADMIN_MESSAGE_TYPES)[keyof typeof ADMIN_MESSAGE_TYPES], ((data: any) => void)[]>\n> = {}\n\nexport function on(\n eventName: (typeof ADMIN_MESSAGE_TYPES)[keyof typeof ADMIN_MESSAGE_TYPES],\n handler: (data: AdminMessagePayloads[(typeof ADMIN_MESSAGE_TYPES)[keyof typeof ADMIN_MESSAGE_TYPES]]) => void,\n) {\n if (!eventHandlers[eventName]) {\n eventHandlers[eventName] = []\n }\n\n eventHandlers[eventName]?.push(handler)\n}\n\nexport function off(\n eventName: (typeof ADMIN_MESSAGE_TYPES)[keyof typeof ADMIN_MESSAGE_TYPES],\n handler: (data: AdminMessagePayloads[(typeof ADMIN_MESSAGE_TYPES)[keyof typeof ADMIN_MESSAGE_TYPES]]) => void,\n) {\n if (!eventHandlers[eventName]) return\n\n eventHandlers[eventName] = eventHandlers[eventName]?.filter((h) => h !== handler)\n}\n\nwindow.addEventListener('message', function handleMessage(event: MessageEvent<AdminMessage>): void {\n if (event.data.type !== ADMIN_MESSAGE) return\n\n const handlers = eventHandlers[event.data.body.type]\n if (handlers) {\n handlers.forEach((handler) => handler(event.data.body.data))\n }\n})\n\n// Handler for the parent window\n// window.addEventListener('message', (event) => {\n// if (event.data.type === 'ADMIN_REQUEST' && event.data.body.type === 'GET_ENV') {\n// // Handle the request and post a response\n// // The response should have the same type and id as the request\n// // The body of the response should contain the data returned from the GET_ENV query\n// event.source.postMessage({\n// type: 'ADMIN_RESPONSE',\n// id: event.data.id,\n// body: { /* response data */ }\n// }, '*')\n// }\n// })\n\n// in umd it would be called like:\n// pitcher.useAdmin().get_env().then((env) => {\n// do something with the env data\n// })\n","import { adminPromise } from '@sdk/api/AdminApi'\nimport { ADMIN_API_METHOD_TYPES, type AdminEnv } from '@lib/sdk/api/modules/admin/types.admin'\n\nexport function get_env() {\n return adminPromise<void, AdminEnv>(ADMIN_API_METHOD_TYPES.GET_ENV)\n}\n","import type { Emitter } from './utils/eventEmitter'\nimport type { Favorite, File, Instance, User } from '@openapi'\nimport type { PaginatedData } from '@lib/types/paginatedData'\n\nexport const PITCHER_EVENT = 'PITCHER_EVENT' as const\nexport enum PitcherMessageType {\n REQUEST = 'PITCHER_REQUEST',\n RESPONSE = 'PITCHER_RESPONSE',\n}\nexport enum PitcherResponseStatus {\n OK = 'ok',\n ERROR = 'error',\n}\n\nexport interface PitcherMessage {\n type: typeof PITCHER_EVENT\n request: {\n id: string\n type: string\n body?: Record<string, any>\n }\n}\n\nexport interface ApiOptions {\n logLevel?: 'off' | 'info' | 'debug'\n casing?: 'camel' | 'snake'\n}\n\nexport interface PitcherEnv {\n mode: 'WEB' | 'IOS' | 'WINDOWS' | 'ANDROID'\n pitcher: {\n token_claims: Record<string, any>\n instance: Instance\n user: User\n }\n deviceId: string\n}\n\nexport interface PitcherAPI extends Emitter<ApiEventMap> {\n request(type: string, body: any, callback: () => any): Promise<PitcherResponse>\n}\n\nexport interface PitcherInterface extends Emitter<PitcherEventMap> {\n API: PitcherAPI\n}\n\nexport interface PitcherResponse {\n type: PitcherMessageType.RESPONSE\n request: {\n id: string\n type: string\n }\n response: {\n status: PitcherResponseStatus\n body?: Record<string, any>\n }\n}\n\nexport interface OpenCanvasPitcherEvent {\n account_id?: string\n account_name?: string\n canvas_id?: string\n edit_mode?: 'true' | 'false'\n}\n\nexport interface StartCallPitcherEvent {\n account?: { id: string; name: string }\n canvas_id?: string\n edit_mode?: 'true' | 'false'\n post_action?: string\n post_action_path?: string\n}\n\nexport enum PitcherEventName {\n ENV_CHANGED = 'env_changed',\n PHOTOS_CAPTURED = 'photos_captured',\n FILE_DOWNLOADED = 'file_downloaded',\n FILE_UPLOAD_PROGRESS = 'file_upload_progress',\n UPDATE_LOCATION = 'update_location',\n CANVAS_UPDATED = 'canvas_updated',\n}\n\nexport enum PitcherBroadcastedEventName {\n UI_SHOW_MODAL = 'ui:show-modal',\n UI_HIDE_MODAL = 'ui:hide-modal',\n FAVORITES_CHANGED = 'favorites:changed',\n FILE_DOWNLOAD = 'file:download',\n}\n\nexport enum PitcherExternalEventName {\n OPEN_CANVAS = 'open_canvas',\n START_CALL = 'start_call',\n}\n\ninterface UpdateLocation {\n action: string\n}\n\nexport interface LocationRoute {\n path: string\n is_restoring: boolean\n is_mounted: boolean\n}\n\nexport type LocationRoutes = Record<string, LocationRoute>\n\nexport interface UpdateLocationOnRegister extends UpdateLocation {\n action: 'register'\n child_app: string\n parent_app?: string\n}\n\nexport interface UpdateLocationOnUnregister extends UpdateLocation {\n action: 'unregister'\n app: string\n}\n\nexport interface UpdateLocationOnUpdate extends UpdateLocation {\n action: 'update'\n routes: Record<string, Omit<LocationRoute, 'is_restoring' | 'is_mounted'>>\n}\n\nexport interface UpdateLocationOnMounted extends UpdateLocation {\n action: 'mounted'\n app: string\n}\n\nexport interface UpdateLocationOnRestore extends UpdateLocation {\n action: 'restore'\n routes: Record<string, Omit<LocationRoute, 'is_mounted'>>\n}\n\nexport interface UpdateLocationOnRestoreCompleted extends UpdateLocation {\n action: 'restore_completed'\n app: string\n}\n\nexport type UpdateLocationPitcherEvent =\n | UpdateLocationOnUnregister\n | UpdateLocationOnRestore\n | UpdateLocationOnUpdate\n | UpdateLocationOnRegister\n | UpdateLocationOnRestoreCompleted\n | UpdateLocationOnMounted\n\nexport interface PitcherEventMap {\n [PitcherEventName.ENV_CHANGED]: PitcherEnv\n [PitcherEventName.PHOTOS_CAPTURED]: void\n [PitcherEventName.FILE_DOWNLOADED]: File\n [PitcherEventName.FILE_UPLOAD_PROGRESS]: { upload_uid: string; progress: number }\n [PitcherEventName.CANVAS_UPDATED]: Record<string, any>\n [PitcherEventName.UPDATE_LOCATION]: UpdateLocationPitcherEvent\n // broadcasted requests\n [PitcherBroadcastedEventName.UI_SHOW_MODAL]: void\n [PitcherBroadcastedEventName.UI_HIDE_MODAL]: void\n [PitcherBroadcastedEventName.FAVORITES_CHANGED]: { body: PaginatedData<Favorite> }\n [PitcherBroadcastedEventName.FILE_DOWNLOAD]: { body: File['id'] }\n // external link events\n [PitcherExternalEventName.OPEN_CANVAS]: OpenCanvasPitcherEvent\n [PitcherExternalEventName.START_CALL]: StartCallPitcherEvent\n}\n\nexport interface PitcherEvent {\n type: keyof PitcherEventMap\n body: PitcherEventMap[keyof PitcherEventMap]\n}\n\nexport interface ApiEventMap {\n event: PitcherEvent\n}\n","import type { ApiOptions } from './interfaces'\nimport { createHighLevelApi } from '@sdk/api/HighLevelApi'\nimport * as uiMethods from '@sdk/api/modules/ui'\nimport { on as uiOn, off as uiOff } from '@sdk/api/UiApi'\nimport * as adminMethods from '@sdk/api/modules/admin'\nimport { on as adminOn, off as adminOff } from '@sdk/api/AdminApi'\n\nexport * from '@sdk/interfaces'\nexport * from '@sdk/payload.types'\nexport * from '@sdk/api/modules/ui/types.ui'\nexport * from '@sdk/api/modules/admin/types.admin'\n\nexport let highLevelApi: ReturnType<typeof createHighLevelApi>\nexport function usePitcherApi(options?: ApiOptions): ReturnType<typeof createHighLevelApi> {\n if (!highLevelApi) highLevelApi = createHighLevelApi(options)\n\n return highLevelApi\n}\n\nconst ui = { ...uiMethods, on: uiOn, off: uiOff }\nexport function useUi() {\n return ui\n}\n\nconst admin = { ...adminMethods, on: adminOn, off: adminOff }\nexport function useAdmin() {\n return admin\n}\n"],"names":["open","payload","getEnv","updateMyUser","getLanguages","getEvents","highLevelApi","createEvent","updateEvent","deleteEvent","getCanvases","createCanvas","deleteCanvas","updateCanvas","getCanvas","shareCanvas","getFiles","p","downloadFile","getAppConfig","getFile","deleteFile","createFile","selectDeviceFile","search","getUsers","getService","refreshServiceToken","getConnections","connectionLogin","connectionLogout","fetchDocumentInfo","renderPageAsImage","toast","query","getFolder","createFolder","updateFolder","deleteFolder","moveFolderItems","getFavorites","createFavorite","deleteFavorite","notify","track","getInstanceMetadataTemplates","EventEmitter","eventName","fn","f","data","getRandomValues","rnds8","rng","byteToHex","i","unsafeStringify","arr","offset","native","v4","options","buf","rnds","AssertionError","assert","exp","message","freeGlobal","freeGlobal$1","freeSelf","root","Symbol","Symbol$2","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","value","isOwn","tag","unmasked","result","objectToString","nullTag","undefinedTag","baseGetTag","isObjectLike","symbolTag","isSymbol","arrayMap","array","iteratee","index","length","isArray","isArray$1","INFINITY","symbolProto","symbolToString","baseToString","toString","baseSlice","start","end","castSlice","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","hasUnicode","string","asciiToArray","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","unicodeToArray","stringToArray","createCaseFirst","methodName","strSymbols","chr","trailing","upperFirst","upperFirst$1","capitalize","arrayReduce","accumulator","initAccum","basePropertyOf","object","key","deburredLetters","deburrLetter","deburrLetter$1","reLatin","reComboMark","deburr","reAsciiWord","asciiWords","reHasUnicodeWord","hasUnicodeWord","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsBreakRange","rsApos","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsOrdLower","rsOrdUpper","rsEmoji","reUnicodeWord","unicodeWords","words","pattern","guard","reApos","createCompounder","callback","camelCase","word","camelCase$1","snakeCase","snakeCase$1","defaultSkipKeys","defaultSkipObjectKeys","camelCaseKeys","obj","skipKeys","skipObjectKeys","v","newKey","snakeCaseKeys","LowLevelApi","event","id","body","type","resolve","reject","uuid","res","createHighLevelApi","API","eventEmitter","modules","UI_MESSAGE","UI_API_TYPES","UI_API_METHOD_TYPES","UI_MESSAGE_TYPES","uiPromise","method","uuidv4","listener","eventHandlers","handleMessage","handlers","handler","on","off","h","sfdc_query","ADMIN_MESSAGE","ADMIN_MESSAGE_TYPES","ADMIN_API_TYPES","ADMIN_API_METHOD_TYPES","adminPromise","get_env","PITCHER_EVENT","PitcherMessageType","PitcherResponseStatus","PitcherEventName","PitcherBroadcastedEventName","PitcherExternalEventName","exports","usePitcherApi","ui","uiMethods","uiOn","uiOff","useUi","admin","adminMethods","adminOn","adminOff","useAdmin"],"mappings":"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,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAC1B,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACtF,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACtF,EAAU,IAAM,EAAU,IAC1B,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACz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","x_google_ignoreList":[18,19,20,21,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54]}
1
+ {"version":3,"file":"js-api.umd.min.js","sources":["../../src/lib/sdk/api/modules/webview.ts","../../src/lib/sdk/api/modules/env.ts","../../src/lib/sdk/api/modules/languages.ts","../../src/lib/sdk/api/modules/events.ts","../../src/lib/sdk/api/modules/canvas.ts","../../src/lib/sdk/api/modules/files.ts","../../src/lib/sdk/api/modules/search.ts","../../src/lib/sdk/api/modules/users.ts","../../src/lib/sdk/api/modules/connections.ts","../../src/lib/sdk/api/modules/pspdfkit.ts","../../src/lib/sdk/api/modules/toast.ts","../../src/lib/sdk/api/modules/query.ts","../../src/lib/sdk/api/modules/folders.ts","../../src/lib/sdk/api/modules/favorites.ts","../../src/lib/sdk/api/modules/notifications.ts","../../src/lib/sdk/api/modules/track.ts","../../src/lib/sdk/api/modules/metadataTemplates.ts","../../src/lib/sdk/utils/eventEmitter.ts","../../node_modules/uuid/dist/esm-browser/rng.js","../../node_modules/uuid/dist/esm-browser/stringify.js","../../node_modules/uuid/dist/esm-browser/native.js","../../node_modules/uuid/dist/esm-browser/v4.js","../../src/lib/sdk/utils/assert.ts","../../node_modules/lodash-es/_freeGlobal.js","../../node_modules/lodash-es/_root.js","../../node_modules/lodash-es/_Symbol.js","../../node_modules/lodash-es/_getRawTag.js","../../node_modules/lodash-es/_objectToString.js","../../node_modules/lodash-es/_baseGetTag.js","../../node_modules/lodash-es/isObjectLike.js","../../node_modules/lodash-es/isSymbol.js","../../node_modules/lodash-es/_arrayMap.js","../../node_modules/lodash-es/isArray.js","../../node_modules/lodash-es/_baseToString.js","../../node_modules/lodash-es/toString.js","../../node_modules/lodash-es/_baseSlice.js","../../node_modules/lodash-es/_castSlice.js","../../node_modules/lodash-es/_hasUnicode.js","../../node_modules/lodash-es/_asciiToArray.js","../../node_modules/lodash-es/_unicodeToArray.js","../../node_modules/lodash-es/_stringToArray.js","../../node_modules/lodash-es/_createCaseFirst.js","../../node_modules/lodash-es/upperFirst.js","../../node_modules/lodash-es/capitalize.js","../../node_modules/lodash-es/_arrayReduce.js","../../node_modules/lodash-es/_basePropertyOf.js","../../node_modules/lodash-es/_deburrLetter.js","../../node_modules/lodash-es/deburr.js","../../node_modules/lodash-es/_asciiWords.js","../../node_modules/lodash-es/_hasUnicodeWord.js","../../node_modules/lodash-es/_unicodeWords.js","../../node_modules/lodash-es/words.js","../../node_modules/lodash-es/_createCompounder.js","../../node_modules/lodash-es/camelCase.js","../../node_modules/lodash-es/snakeCase.js","../../src/lib/util/casing.ts","../../src/lib/sdk/api/LowLevelApi.ts","../../src/lib/sdk/api/HighLevelApi.ts","../../node_modules/post-robot/dist/post-robot.js","../../node_modules/post-robot/index.js","../../src/lib/sdk/api/modules/ui/types.ui.ts","../../src/lib/sdk/api/modules/ui/content.ui.ts","../../src/lib/sdk/api/modules/ui/index.ts","../../src/lib/sdk/api/modules/admin/types.admin.ts","../../src/lib/sdk/api/AdminApi.ts","../../src/lib/sdk/api/modules/admin/env.admin.ts","../../src/lib/sdk/interfaces.ts","../../src/lib/sdk/main.ts"],"sourcesContent":["import type { OpenWebviewPayload } from '@sdk/payload.types'\n\nexport function open(payload: OpenWebviewPayload = {}): Promise<string> {\n return this.API.request('open', payload)\n}\n","import type { PitcherEnv } from '@sdk/interfaces'\nimport type { User } from '@openapi'\n\nexport function getEnv(): Promise<PitcherEnv> {\n return this.API.request('get_env')\n}\n\ntype UpdateEnvParams = Pick<User, 'language' | 'dark_mode'>\n\nexport function updateMyUser(payload: UpdateEnvParams): Promise<User> {\n return this.API.request('update_my_user', payload)\n}\n","export type Language = [\n string, // key\n string, // name\n]\n\n/**\n * Fetches available languages for the logged-in user\n */\nexport function getLanguages(): Promise<Language[]> {\n return this.API.request('get_languages')\n}\n","import { highLevelApi } from '@sdk/main'\nimport type { PaginatedData } from '@lib/types/paginatedData'\nimport type { Event, EventRequest, PatchedEventRequest } from '@openapi'\n\nexport function getEvents(payload: Partial<EventRequest>): Promise<PaginatedData<Event>> {\n return highLevelApi.API.request('get_events', payload)\n}\n\nexport function createEvent(payload: EventRequest): Promise<Event> {\n return highLevelApi.API.request('create_event', payload)\n}\n\nexport function updateEvent(payload: PatchedEventRequest): Promise<Event> {\n return highLevelApi.API.request('update_event', payload)\n}\n\nexport function deleteEvent(payload: Partial<Event>): Promise<void> {\n return highLevelApi.API.request('delete_event', payload)\n}\n","import type { Canvas, CanvasCreateRequest, PatchedCanvasUpdateRequest, SharedLink } from '@openapi'\nimport type { GetCanvasesParams } from '@lib/types/canvases'\nimport type { PaginatedData } from '@lib/types/paginatedData'\n\nexport function getCanvases(payload: GetCanvasesParams): Promise<PaginatedData<Canvas>> {\n return this.API.request('get_canvases', payload)\n}\n\nexport function createCanvas(payload: CanvasCreateRequest): Promise<Canvas> {\n return this.API.request('create_canvas', payload)\n}\n\nexport function deleteCanvas(payload: { id: Canvas['id'] }): Promise<Canvas> {\n return this.API.request('delete_canvas', payload)\n}\n\nexport function updateCanvas(\n payload: PatchedCanvasUpdateRequest & { id: Canvas['id']; instance_id?: Canvas['instance']['id'] },\n): Promise<Canvas> {\n return this.API.request('update_canvas', payload)\n}\n\nexport function getCanvas(payload: { id: Canvas['id'] }): Promise<Canvas> {\n return this.API.request('get_canvas', payload)\n}\n\nexport function shareCanvas(payload: { id: Canvas['id'] }): Promise<SharedLink> {\n return this.API.request('share_canvas', payload)\n}\n","import type { File, FileRetrieve, PaginatedFileList } from '@openapi'\nimport type { ListFilesPayload } from '@sdk/payload.types'\nimport type { AllFileCreateRequest, DeviceFile } from '@lib/types/files'\n\nexport function getFiles(payload: ListFilesPayload): Promise<PaginatedFileList> {\n const p = { ...payload }\n\n if (p.type) {\n p.type = Array.isArray(p.type) ? p.type : [p.type]\n }\n\n if (p.content_type) {\n p.content_type = Array.isArray(p.content_type) ? p.content_type : [p.content_type]\n }\n\n return this.API.request('get_files', p)\n}\n\nexport function downloadFile(payload: { file_id: File['id'] }): Promise<null> {\n return this.API.request('download_file', payload)\n}\n\nexport function getAppConfig(payload: { app_name: string }): Promise<Record<string, any>> {\n return this.API.request('get_app_config', payload)\n}\n\nexport function getFile(payload: { file_id: FileRetrieve['id'] }): Promise<FileRetrieve> {\n return this.API.request('get_file', payload)\n}\n\nexport function deleteFile(payload: { file_id: File['id'] }): Promise<File['id']> {\n return this.API.request('delete_file', payload)\n}\n\nexport function createFile(payload: Omit<AllFileCreateRequest, 'instance_id'>): Promise<File> {\n return this.API.request('create_file', payload)\n}\n\nexport function selectDeviceFile(): Promise<DeviceFile> {\n return this.API.request('select_device_file')\n}\n","import type { Instance } from '@openapi'\n\nexport function search(payload: { instance_id: Instance['id']; query: string }): Promise<any> {\n return this.API.request('search', payload)\n}\n","import type { GetUsersParams } from '@lib/types/users'\nimport type { User } from '@openapi'\n\nexport function getUsers(payload?: GetUsersParams): Promise<User[]> {\n return this.API.request('get_users', payload)\n}\n","import type { ConnectedService, Connection } from '@openapi'\n\nexport function getService(payload: { name: ConnectedService['name'] }): Promise<ConnectedService> {\n return this.API.request('getService', payload)\n}\n\nexport function refreshServiceToken(payload: {\n name: ConnectedService['name']\n}): Promise<Pick<ConnectedService, 'access_token'>> {\n return this.API.request('refresh_service_token', payload)\n}\n\ntype ConnectionList = (Connection & { is_connected: boolean })[]\n\nexport function getConnections(): Promise<ConnectionList> {\n return this.API.request('get_connections')\n}\n\nexport function connectionLogin(payload: { name: ConnectedService['name'] }): Promise<Connection> {\n return this.API.request('connection_login', payload)\n}\n\nexport function connectionLogout(payload: { name: ConnectedService['name'] }): Promise<Connection> {\n return this.API.request('connection_logout', payload)\n}\n","import type { File } from '@openapi'\n\nexport function fetchDocumentInfo(payload: { fileId: File['id'] }): Promise<{\n pageCount: number\n [key: string]: unknown\n}> {\n return this.API.request('fetch_document_info', payload)\n}\n\nexport function renderPageAsImage(payload: {\n fileId: File['id']\n pageNumber: number\n params: { width: number } | { height: number }\n}): Promise<ArrayBuffer> {\n return this.API.request('render_page_as_image', payload)\n}\n","export function toast(payload: { type: string; message: string }): Promise<void> {\n return this.API.request('toast', payload)\n}\n","import { highLevelApi } from '@sdk/main'\nimport type { QueryPayload } from '@sdk/payload.types'\n\nexport function query(payload: QueryPayload) {\n return highLevelApi.API.request('query', payload)\n}\n","import type { File, Folder, FolderRetrieve, FolderCreateRequest, FolderUpdateRequest } from '@openapi'\n\nexport function getFolder(payload: { id: FolderRetrieve['id'] } = { id: 'root' }): Promise<FolderRetrieve> {\n return this.API.request('get_folder', payload)\n}\n\nexport function createFolder(payload: Omit<FolderCreateRequest, 'instance_id'>): Promise<FolderRetrieve> {\n return this.API.request('create_folder', payload)\n}\n\ntype UpdateFolderPayload = FolderUpdateRequest & { id: Folder['id'] }\n\nexport function updateFolder(payload: UpdateFolderPayload): Promise<FolderRetrieve> {\n return this.API.request('update_folder', payload)\n}\n\nexport function deleteFolder(payload: { folder_id: FolderRetrieve['id'] }): Promise<void> {\n return this.API.request('delete_folder', payload)\n}\n\nexport function moveFolderItems(payload: {\n target_folder_id: Folder['id']\n items: { id: File['id'] | Folder['id']; type: 'folder' | 'file' }[]\n}): Promise<FolderRetrieve> {\n return this.API.request('move_folder_items', payload)\n}\n","import type { Favorite, FavoriteCreateRequest, PaginatedFavoriteList } from '@openapi'\nimport type { GetFavoritesParams } from '@lib/types/favorites'\n\nexport function getFavorites(payload?: GetFavoritesParams): Promise<PaginatedFavoriteList> {\n return this.API.request('get_favorites', payload)\n}\n\nexport function createFavorite(payload: FavoriteCreateRequest): Promise<Favorite> {\n return this.API.request('create_favorite', payload)\n}\n\nexport function deleteFavorite(payload: { favorite_id: Favorite['id'] }): Promise<void> {\n return this.API.request('delete_favorite', payload)\n}\n","import { highLevelApi } from '@sdk/main'\nimport type { NotificationPayload } from '@sdk/payload.types'\n\nexport function notify(payload: NotificationPayload): Promise<void> {\n if (!payload.type) {\n payload.type = 'native'\n }\n\n return highLevelApi.API.request('notify', payload)\n}\n","import { highLevelApi } from '@sdk/main'\n\nexport function track(payload: { event_name: string; payload: any }) {\n return highLevelApi.API.request('track', payload)\n}\n","import type { PaginatedMetadataTemplateList } from '@openapi'\nimport type { GetInstanceMetadataTemplatesPayload } from '@sdk/payload.types'\n\nexport function getInstanceMetadataTemplates(\n payload?: GetInstanceMetadataTemplatesPayload,\n): Promise<PaginatedMetadataTemplateList> {\n return this.API.request('get_instance_metadata_templates', payload)\n}\n","type EventMap = Record<string, any>\n\ntype EventKey<KeyMap extends EventMap> = string & keyof KeyMap\ntype EventReceiver<KeyMap> = (params: KeyMap) => void\n\nexport interface Emitter<KeyMap extends EventMap> {\n on<Key extends EventKey<KeyMap>>(eventName: Key, fn: EventReceiver<KeyMap[Key]>): void\n off<Key extends EventKey<KeyMap>>(eventName: Key, fn: EventReceiver<KeyMap[Key]>): void\n emit<Key extends EventKey<KeyMap>>(eventName: Key, params: KeyMap[Key]): void\n}\n\nexport class EventEmitter<KeyMap extends EventMap> implements Emitter<KeyMap> {\n listeners: {\n [Key in keyof EventMap]?: ((p: EventMap[Key]) => void)[]\n } = {}\n on<Key extends EventKey<KeyMap>>(eventName: Key, fn: EventReceiver<KeyMap[Key]>): void {\n this.listeners[eventName] = (this.listeners[eventName] ?? []).concat(fn)\n }\n off<Key extends EventKey<KeyMap>>(eventName: Key, fn: EventReceiver<KeyMap[Key]>): void {\n this.listeners[eventName] = (this.listeners[eventName] ?? []).filter((f) => f !== fn)\n }\n emit<Key extends EventKey<KeyMap>>(eventName: Key, data?: KeyMap[Key]): void {\n ;(this.listeners[eventName] ?? []).forEach((fn) => fn(data))\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","export class AssertionError extends Error {}\n\nexport function assert(exp: boolean, message: string) {\n if (!exp) {\n throw new AssertionError(message)\n }\n}\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n","import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nexport default snakeCase;\n","import { snakeCase, camelCase, startCase } from 'lodash-es'\n\nconst defaultSkipKeys = [\n 'id__in',\n 'modified_at__gtr',\n 'created_at__gtr',\n 'end_at__lt',\n 'start_at__gt',\n 'account__id',\n 'end_at__gt',\n 'end_at__range',\n 'start_at__lt',\n 'start_at__range',\n 'external_objects__connection_id',\n 'external_objects__content_type',\n 'external_objects__external_content_type',\n 'external_objects__external_object_id',\n]\n\nconst defaultSkipObjectKeys = ['context']\n\nexport const camelCaseKeys = <T>(obj: T, skipKeys = defaultSkipKeys, skipObjectKeys = defaultSkipObjectKeys): T => {\n if (Array.isArray(obj)) {\n return obj.map((v) => camelCaseKeys(v, skipKeys, skipObjectKeys)) as T\n } else if (obj != null && obj.constructor === Object) {\n return Object.keys(obj).reduce((result, key) => {\n const newKey = skipKeys.includes(key) || skipObjectKeys.includes(key) ? key : camelCase(key)\n const value = skipObjectKeys.includes(key)\n ? (obj as any)[key]\n : camelCaseKeys((obj as any)[key], skipKeys, skipObjectKeys)\n return { ...result, [newKey]: value }\n }, {}) as T\n }\n\n return obj\n}\n\nexport const snakeCaseKeys = <T>(obj: T, skipKeys = defaultSkipKeys, skipObjectKeys = defaultSkipObjectKeys): T => {\n if (Array.isArray(obj)) {\n return obj.map((v) => snakeCaseKeys(v, skipKeys, skipObjectKeys)) as T\n } else if (obj != null && obj.constructor === Object) {\n return Object.keys(obj).reduce((result, key) => {\n const newKey = skipKeys.includes(key) || skipObjectKeys.includes(key) ? key : snakeCase(key)\n const value = skipObjectKeys.includes(key)\n ? (obj as any)[key]\n : snakeCaseKeys((obj as any)[key], skipKeys, skipObjectKeys)\n return { ...result, [newKey]: value }\n }, {}) as T\n }\n\n return obj\n}\n\nexport const pascalCaseKeys = <T>(obj: T, skipKeys = defaultSkipKeys, skipObjectKeys = defaultSkipObjectKeys): T => {\n if (Array.isArray(obj)) {\n return obj.map((v) => pascalCaseKeys(v, skipKeys, skipObjectKeys)) as T\n } else if (obj != null && obj.constructor === Object) {\n return Object.keys(obj).reduce((result, key) => {\n const newKey = skipKeys.includes(key) || skipObjectKeys.includes(key) ? key : titleCase(key).replace(/ /g, '')\n const value = skipObjectKeys.includes(key)\n ? (obj as any)[key]\n : pascalCaseKeys((obj as any)[key], skipKeys, skipObjectKeys)\n return { ...result, [newKey]: value }\n }, {}) as T\n }\n\n return obj\n}\n\nexport const titleCase = (s?: string) => startCase(camelCase(s))\n","import { v4 as uuid } from 'uuid'\nimport type { ApiEventMap, PitcherAPI, PitcherEvent, PitcherResponse, ApiOptions } from '../interfaces'\nimport { EventEmitter } from '../utils/eventEmitter'\nimport { assert } from '../utils/assert'\nimport { snakeCaseKeys, camelCaseKeys } from '@lib/util/casing'\n\nexport class LowLevelApi extends EventEmitter<ApiEventMap> implements PitcherAPI {\n constructor(options?: ApiOptions) {\n super()\n this.callbacks = {}\n this.options = options ?? { casing: 'snake', logLevel: 'off' }\n\n if (typeof window !== 'undefined') {\n window.addEventListener('message', (event) => {\n this.options.logLevel === 'debug' && console.log('message received', event)\n if (event.data.type === 'PITCHER_RESPONSE') {\n assert(event.data.request.id, 'event id is required')\n this.handleCallbackMessage(event.data.request.id, event.data)\n } else if (event.data.type === 'PITCHER_EVENT') {\n this.handleEventMessage(this.options.casing === 'camel' ? camelCaseKeys(event.data.event) : event.data.event)\n }\n })\n\n this.request('subscribe') // subscribe to events\n }\n }\n\n callbacks: {\n [k: string]: { callback: (res: PitcherResponse) => void; dispatched_at: number; type: string; payload: object }\n }\n\n private options: ApiOptions\n\n private handleCallbackMessage(id: string, body: PitcherResponse) {\n if (this.callbacks[id]) {\n this.callbacks[id].callback(body)\n // metrics\n this.options.logLevel &&\n ['info', 'debug'].includes(this.options.logLevel) &&\n console.log(\n `It took ${Date.now() - this.callbacks[id].dispatched_at} ms for the event ${this.callbacks[id].type}`,\n )\n // cleanup\n delete this.callbacks[id]\n }\n }\n\n private handleEventMessage(event: PitcherEvent) {\n this.emit('event', event)\n }\n\n public request(type: string, body: object | null = null): Promise<any> {\n return new Promise((resolve, reject) => {\n const id = uuid()\n const callback = (res: PitcherResponse) => {\n this.options.logLevel === 'debug' && console.log(`Callback ${id} response:`, res)\n if (res.response.status === 'ok') {\n resolve(\n (this.options.casing === 'camel' ? camelCaseKeys(res.response.body) : res.response.body) as PitcherResponse,\n )\n } else if (res.response.status === 'error') {\n reject(this.options.casing === 'camel' ? camelCaseKeys(res.response.body) : res.response.body)\n } else {\n throw new Error('unsupported response status')\n }\n }\n const payload = snakeCaseKeys(body) // always snake case for impact\n\n this.callbacks[id] = {\n dispatched_at: Date.now(),\n type,\n payload: payload ?? {},\n callback,\n }\n\n // always post to top ancestor window\n if (typeof window !== 'undefined' && window.top) {\n window.top.postMessage(\n {\n type: 'PITCHER_REQUEST',\n request: {\n type,\n id,\n body: payload,\n },\n },\n '*',\n )\n }\n })\n }\n}\n","import * as modules from '@sdk/api/modules'\nimport { EventEmitter } from '@sdk/utils/eventEmitter'\nimport { LowLevelApi } from '@sdk/api/LowLevelApi'\nimport type { PitcherEvent, ApiOptions } from '@sdk/interfaces'\n\nexport function createHighLevelApi(options?: ApiOptions) {\n const API = new LowLevelApi(options)\n const eventEmitter = new EventEmitter()\n\n API.on('event', (event: PitcherEvent) => {\n eventEmitter.emit(event.type, event.body)\n })\n\n return {\n API,\n ...modules,\n on: (type: string, callback: (payload: PitcherEvent) => void) => eventEmitter.on(type, callback),\n off: (type: string, callback: (payload: PitcherEvent) => void) => eventEmitter.off(type, callback),\n quitInstance: () => API.request('quit_instance'),\n getRequestTypes: () => API.request('get_request_types'),\n broadcast: (event: PitcherEvent) => API.request('broadcast', event),\n subscribe: () => API.request('subscribe'),\n unsubscribe: () => API.request('unsubscribe'),\n }\n}\n","!function(root, factory) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = factory() : \"function\" == typeof define && define.amd ? define(\"postRobot\", [], factory) : \"object\" == typeof exports ? exports.postRobot = factory() : root.postRobot = factory();\n}(\"undefined\" != typeof self ? self : this, (function() {\n return function(modules) {\n var installedModules = {};\n function __webpack_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: !1,\n exports: {}\n };\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n module.l = !0;\n return module.exports;\n }\n __webpack_require__.m = modules;\n __webpack_require__.c = installedModules;\n __webpack_require__.d = function(exports, name, getter) {\n __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n enumerable: !0,\n get: getter\n });\n };\n __webpack_require__.r = function(exports) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, {\n value: \"Module\"\n });\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n };\n __webpack_require__.t = function(value, mode) {\n 1 & mode && (value = __webpack_require__(value));\n if (8 & mode) return value;\n if (4 & mode && \"object\" == typeof value && value && value.__esModule) return value;\n var ns = Object.create(null);\n __webpack_require__.r(ns);\n Object.defineProperty(ns, \"default\", {\n enumerable: !0,\n value: value\n });\n if (2 & mode && \"string\" != typeof value) for (var key in value) __webpack_require__.d(ns, key, function(key) {\n return value[key];\n }.bind(null, key));\n return ns;\n };\n __webpack_require__.n = function(module) {\n var getter = module && module.__esModule ? function() {\n return module.default;\n } : function() {\n return module;\n };\n __webpack_require__.d(getter, \"a\", getter);\n return getter;\n };\n __webpack_require__.o = function(object, property) {\n return {}.hasOwnProperty.call(object, property);\n };\n __webpack_require__.p = \"\";\n return __webpack_require__(__webpack_require__.s = 0);\n }([ function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n __webpack_require__.d(__webpack_exports__, \"Promise\", (function() {\n return promise_ZalgoPromise;\n }));\n __webpack_require__.d(__webpack_exports__, \"TYPES\", (function() {\n return src_types_TYPES_0;\n }));\n __webpack_require__.d(__webpack_exports__, \"ProxyWindow\", (function() {\n return window_ProxyWindow;\n }));\n __webpack_require__.d(__webpack_exports__, \"setup\", (function() {\n return setup;\n }));\n __webpack_require__.d(__webpack_exports__, \"destroy\", (function() {\n return destroy;\n }));\n __webpack_require__.d(__webpack_exports__, \"serializeMessage\", (function() {\n return setup_serializeMessage;\n }));\n __webpack_require__.d(__webpack_exports__, \"deserializeMessage\", (function() {\n return setup_deserializeMessage;\n }));\n __webpack_require__.d(__webpack_exports__, \"createProxyWindow\", (function() {\n return createProxyWindow;\n }));\n __webpack_require__.d(__webpack_exports__, \"toProxyWindow\", (function() {\n return setup_toProxyWindow;\n }));\n __webpack_require__.d(__webpack_exports__, \"on\", (function() {\n return on_on;\n }));\n __webpack_require__.d(__webpack_exports__, \"once\", (function() {\n return on_once;\n }));\n __webpack_require__.d(__webpack_exports__, \"send\", (function() {\n return send_send;\n }));\n __webpack_require__.d(__webpack_exports__, \"markWindowKnown\", (function() {\n return markWindowKnown;\n }));\n __webpack_require__.d(__webpack_exports__, \"cleanUpWindow\", (function() {\n return cleanUpWindow;\n }));\n __webpack_require__.d(__webpack_exports__, \"bridge\", (function() {}));\n function isRegex(item) {\n return \"[object RegExp]\" === {}.toString.call(item);\n }\n var IE_WIN_ACCESS_ERROR = \"Call was rejected by callee.\\r\\n\";\n function getActualProtocol(win) {\n void 0 === win && (win = window);\n return win.location.protocol;\n }\n function getProtocol(win) {\n void 0 === win && (win = window);\n if (win.mockDomain) {\n var protocol = win.mockDomain.split(\"//\")[0];\n if (protocol) return protocol;\n }\n return getActualProtocol(win);\n }\n function isAboutProtocol(win) {\n void 0 === win && (win = window);\n return \"about:\" === getProtocol(win);\n }\n function getParent(win) {\n void 0 === win && (win = window);\n if (win) try {\n if (win.parent && win.parent !== win) return win.parent;\n } catch (err) {}\n }\n function getOpener(win) {\n void 0 === win && (win = window);\n if (win && !getParent(win)) try {\n return win.opener;\n } catch (err) {}\n }\n function canReadFromWindow(win) {\n try {\n return !0;\n } catch (err) {}\n return !1;\n }\n function getActualDomain(win) {\n void 0 === win && (win = window);\n var location = win.location;\n if (!location) throw new Error(\"Can not read window location\");\n var protocol = getActualProtocol(win);\n if (!protocol) throw new Error(\"Can not read window protocol\");\n if (\"file:\" === protocol) return \"file://\";\n if (\"about:\" === protocol) {\n var parent = getParent(win);\n return parent && canReadFromWindow() ? getActualDomain(parent) : \"about://\";\n }\n var host = location.host;\n if (!host) throw new Error(\"Can not read window host\");\n return protocol + \"//\" + host;\n }\n function getDomain(win) {\n void 0 === win && (win = window);\n var domain = getActualDomain(win);\n return domain && win.mockDomain && 0 === win.mockDomain.indexOf(\"mock:\") ? win.mockDomain : domain;\n }\n function isSameDomain(win) {\n if (!function(win) {\n try {\n if (win === window) return !0;\n } catch (err) {}\n try {\n var desc = Object.getOwnPropertyDescriptor(win, \"location\");\n if (desc && !1 === desc.enumerable) return !1;\n } catch (err) {}\n try {\n if (isAboutProtocol(win) && canReadFromWindow()) return !0;\n } catch (err) {}\n try {\n if (function(win) {\n void 0 === win && (win = window);\n return \"mock:\" === getProtocol(win);\n }(win) && canReadFromWindow()) return !0;\n } catch (err) {}\n try {\n if (getActualDomain(win) === getActualDomain(window)) return !0;\n } catch (err) {}\n return !1;\n }(win)) return !1;\n try {\n if (win === window) return !0;\n if (isAboutProtocol(win) && canReadFromWindow()) return !0;\n if (getDomain(window) === getDomain(win)) return !0;\n } catch (err) {}\n return !1;\n }\n function assertSameDomain(win) {\n if (!isSameDomain(win)) throw new Error(\"Expected window to be same domain\");\n return win;\n }\n function isAncestorParent(parent, child) {\n if (!parent || !child) return !1;\n var childParent = getParent(child);\n return childParent ? childParent === parent : -1 !== function(win) {\n var result = [];\n try {\n for (;win.parent !== win; ) {\n result.push(win.parent);\n win = win.parent;\n }\n } catch (err) {}\n return result;\n }(child).indexOf(parent);\n }\n function getFrames(win) {\n var result = [];\n var frames;\n try {\n frames = win.frames;\n } catch (err) {\n frames = win;\n }\n var len;\n try {\n len = frames.length;\n } catch (err) {}\n if (0 === len) return result;\n if (len) {\n for (var i = 0; i < len; i++) {\n var frame = void 0;\n try {\n frame = frames[i];\n } catch (err) {\n continue;\n }\n result.push(frame);\n }\n return result;\n }\n for (var _i = 0; _i < 100; _i++) {\n var _frame = void 0;\n try {\n _frame = frames[_i];\n } catch (err) {\n return result;\n }\n if (!_frame) return result;\n result.push(_frame);\n }\n return result;\n }\n var iframeWindows = [];\n var iframeFrames = [];\n function isWindowClosed(win, allowMock) {\n void 0 === allowMock && (allowMock = !0);\n try {\n if (win === window) return !1;\n } catch (err) {\n return !0;\n }\n try {\n if (!win) return !0;\n } catch (err) {\n return !0;\n }\n try {\n if (win.closed) return !0;\n } catch (err) {\n return !err || err.message !== IE_WIN_ACCESS_ERROR;\n }\n if (allowMock && isSameDomain(win)) try {\n if (win.mockclosed) return !0;\n } catch (err) {}\n try {\n if (!win.parent || !win.top) return !0;\n } catch (err) {}\n var iframeIndex = function(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }(iframeWindows, win);\n if (-1 !== iframeIndex) {\n var frame = iframeFrames[iframeIndex];\n if (frame && function(frame) {\n if (!frame.contentWindow) return !0;\n if (!frame.parentNode) return !0;\n var doc = frame.ownerDocument;\n if (doc && doc.documentElement && !doc.documentElement.contains(frame)) {\n var parent = frame;\n for (;parent.parentNode && parent.parentNode !== parent; ) parent = parent.parentNode;\n if (!parent.host || !doc.documentElement.contains(parent.host)) return !0;\n }\n return !1;\n }(frame)) return !0;\n }\n return !1;\n }\n function getAncestor(win) {\n void 0 === win && (win = window);\n return getOpener(win = win || window) || getParent(win) || void 0;\n }\n function matchDomain(pattern, origin) {\n if (\"string\" == typeof pattern) {\n if (\"string\" == typeof origin) return \"*\" === pattern || origin === pattern;\n if (isRegex(origin)) return !1;\n if (Array.isArray(origin)) return !1;\n }\n return isRegex(pattern) ? isRegex(origin) ? pattern.toString() === origin.toString() : !Array.isArray(origin) && Boolean(origin.match(pattern)) : !!Array.isArray(pattern) && (Array.isArray(origin) ? JSON.stringify(pattern) === JSON.stringify(origin) : !isRegex(origin) && pattern.some((function(subpattern) {\n return matchDomain(subpattern, origin);\n })));\n }\n function isWindow(obj) {\n try {\n if (obj === window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (\"[object Window]\" === {}.toString.call(obj)) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (window.Window && obj instanceof window.Window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.self === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.parent === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.top === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && \"__unlikely_value__\" === obj.__cross_domain_utils_window_check__) return !1;\n } catch (err) {\n return !0;\n }\n try {\n if (\"postMessage\" in obj && \"self\" in obj && \"location\" in obj) return !0;\n } catch (err) {}\n return !1;\n }\n function getFrameForWindow(win) {\n if (isSameDomain(win)) return assertSameDomain(win).frameElement;\n for (var _i21 = 0, _document$querySelect2 = document.querySelectorAll(\"iframe\"); _i21 < _document$querySelect2.length; _i21++) {\n var frame = _document$querySelect2[_i21];\n if (frame && frame.contentWindow && frame.contentWindow === win) return frame;\n }\n }\n function closeWindow(win) {\n if (function(win) {\n void 0 === win && (win = window);\n return Boolean(getParent(win));\n }(win)) {\n var frame = getFrameForWindow(win);\n if (frame && frame.parentElement) {\n frame.parentElement.removeChild(frame);\n return;\n }\n }\n try {\n win.close();\n } catch (err) {}\n }\n function utils_isPromise(item) {\n try {\n if (!item) return !1;\n if (\"undefined\" != typeof Promise && item instanceof Promise) return !0;\n if (\"undefined\" != typeof window && \"function\" == typeof window.Window && item instanceof window.Window) return !1;\n if (\"undefined\" != typeof window && \"function\" == typeof window.constructor && item instanceof window.constructor) return !1;\n var _toString = {}.toString;\n if (_toString) {\n var name = _toString.call(item);\n if (\"[object Window]\" === name || \"[object global]\" === name || \"[object DOMWindow]\" === name) return !1;\n }\n if (\"function\" == typeof item.then) return !0;\n } catch (err) {\n return !1;\n }\n return !1;\n }\n var dispatchedErrors = [];\n var possiblyUnhandledPromiseHandlers = [];\n var activeCount = 0;\n var flushPromise;\n function flushActive() {\n if (!activeCount && flushPromise) {\n var promise = flushPromise;\n flushPromise = null;\n promise.resolve();\n }\n }\n function startActive() {\n activeCount += 1;\n }\n function endActive() {\n activeCount -= 1;\n flushActive();\n }\n var promise_ZalgoPromise = function() {\n function ZalgoPromise(handler) {\n var _this = this;\n this.resolved = void 0;\n this.rejected = void 0;\n this.errorHandled = void 0;\n this.value = void 0;\n this.error = void 0;\n this.handlers = void 0;\n this.dispatching = void 0;\n this.stack = void 0;\n this.resolved = !1;\n this.rejected = !1;\n this.errorHandled = !1;\n this.handlers = [];\n if (handler) {\n var _result;\n var _error;\n var resolved = !1;\n var rejected = !1;\n var isAsync = !1;\n startActive();\n try {\n handler((function(res) {\n if (isAsync) _this.resolve(res); else {\n resolved = !0;\n _result = res;\n }\n }), (function(err) {\n if (isAsync) _this.reject(err); else {\n rejected = !0;\n _error = err;\n }\n }));\n } catch (err) {\n endActive();\n this.reject(err);\n return;\n }\n endActive();\n isAsync = !0;\n resolved ? this.resolve(_result) : rejected && this.reject(_error);\n }\n }\n var _proto = ZalgoPromise.prototype;\n _proto.resolve = function(result) {\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(result)) throw new Error(\"Can not resolve promise with another promise\");\n this.resolved = !0;\n this.value = result;\n this.dispatch();\n return this;\n };\n _proto.reject = function(error) {\n var _this2 = this;\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(error)) throw new Error(\"Can not reject promise with another promise\");\n if (!error) {\n var _err = error && \"function\" == typeof error.toString ? error.toString() : {}.toString.call(error);\n error = new Error(\"Expected reject to be called with Error, got \" + _err);\n }\n this.rejected = !0;\n this.error = error;\n this.errorHandled || setTimeout((function() {\n _this2.errorHandled || function(err, promise) {\n if (-1 === dispatchedErrors.indexOf(err)) {\n dispatchedErrors.push(err);\n setTimeout((function() {\n throw err;\n }), 1);\n for (var j = 0; j < possiblyUnhandledPromiseHandlers.length; j++) possiblyUnhandledPromiseHandlers[j](err, promise);\n }\n }(error, _this2);\n }), 1);\n this.dispatch();\n return this;\n };\n _proto.asyncReject = function(error) {\n this.errorHandled = !0;\n this.reject(error);\n return this;\n };\n _proto.dispatch = function() {\n var resolved = this.resolved, rejected = this.rejected, handlers = this.handlers;\n if (!this.dispatching && (resolved || rejected)) {\n this.dispatching = !0;\n startActive();\n var chain = function(firstPromise, secondPromise) {\n return firstPromise.then((function(res) {\n secondPromise.resolve(res);\n }), (function(err) {\n secondPromise.reject(err);\n }));\n };\n for (var i = 0; i < handlers.length; i++) {\n var _handlers$i = handlers[i], onSuccess = _handlers$i.onSuccess, onError = _handlers$i.onError, promise = _handlers$i.promise;\n var _result2 = void 0;\n if (resolved) try {\n _result2 = onSuccess ? onSuccess(this.value) : this.value;\n } catch (err) {\n promise.reject(err);\n continue;\n } else if (rejected) {\n if (!onError) {\n promise.reject(this.error);\n continue;\n }\n try {\n _result2 = onError(this.error);\n } catch (err) {\n promise.reject(err);\n continue;\n }\n }\n if (_result2 instanceof ZalgoPromise && (_result2.resolved || _result2.rejected)) {\n var promiseResult = _result2;\n promiseResult.resolved ? promise.resolve(promiseResult.value) : promise.reject(promiseResult.error);\n promiseResult.errorHandled = !0;\n } else utils_isPromise(_result2) ? _result2 instanceof ZalgoPromise && (_result2.resolved || _result2.rejected) ? _result2.resolved ? promise.resolve(_result2.value) : promise.reject(_result2.error) : chain(_result2, promise) : promise.resolve(_result2);\n }\n handlers.length = 0;\n this.dispatching = !1;\n endActive();\n }\n };\n _proto.then = function(onSuccess, onError) {\n if (onSuccess && \"function\" != typeof onSuccess && !onSuccess.call) throw new Error(\"Promise.then expected a function for success handler\");\n if (onError && \"function\" != typeof onError && !onError.call) throw new Error(\"Promise.then expected a function for error handler\");\n var promise = new ZalgoPromise;\n this.handlers.push({\n promise: promise,\n onSuccess: onSuccess,\n onError: onError\n });\n this.errorHandled = !0;\n this.dispatch();\n return promise;\n };\n _proto.catch = function(onError) {\n return this.then(void 0, onError);\n };\n _proto.finally = function(onFinally) {\n if (onFinally && \"function\" != typeof onFinally && !onFinally.call) throw new Error(\"Promise.finally expected a function\");\n return this.then((function(result) {\n return ZalgoPromise.try(onFinally).then((function() {\n return result;\n }));\n }), (function(err) {\n return ZalgoPromise.try(onFinally).then((function() {\n throw err;\n }));\n }));\n };\n _proto.timeout = function(time, err) {\n var _this3 = this;\n if (this.resolved || this.rejected) return this;\n var timeout = setTimeout((function() {\n _this3.resolved || _this3.rejected || _this3.reject(err || new Error(\"Promise timed out after \" + time + \"ms\"));\n }), time);\n return this.then((function(result) {\n clearTimeout(timeout);\n return result;\n }));\n };\n _proto.toPromise = function() {\n if (\"undefined\" == typeof Promise) throw new TypeError(\"Could not find Promise\");\n return Promise.resolve(this);\n };\n _proto.lazy = function() {\n this.errorHandled = !0;\n return this;\n };\n ZalgoPromise.resolve = function(value) {\n return value instanceof ZalgoPromise ? value : utils_isPromise(value) ? new ZalgoPromise((function(resolve, reject) {\n return value.then(resolve, reject);\n })) : (new ZalgoPromise).resolve(value);\n };\n ZalgoPromise.reject = function(error) {\n return (new ZalgoPromise).reject(error);\n };\n ZalgoPromise.asyncReject = function(error) {\n return (new ZalgoPromise).asyncReject(error);\n };\n ZalgoPromise.all = function(promises) {\n var promise = new ZalgoPromise;\n var count = promises.length;\n var results = [].slice();\n if (!count) {\n promise.resolve(results);\n return promise;\n }\n var chain = function(i, firstPromise, secondPromise) {\n return firstPromise.then((function(res) {\n results[i] = res;\n 0 == (count -= 1) && promise.resolve(results);\n }), (function(err) {\n secondPromise.reject(err);\n }));\n };\n for (var i = 0; i < promises.length; i++) {\n var prom = promises[i];\n if (prom instanceof ZalgoPromise) {\n if (prom.resolved) {\n results[i] = prom.value;\n count -= 1;\n continue;\n }\n } else if (!utils_isPromise(prom)) {\n results[i] = prom;\n count -= 1;\n continue;\n }\n chain(i, ZalgoPromise.resolve(prom), promise);\n }\n 0 === count && promise.resolve(results);\n return promise;\n };\n ZalgoPromise.hash = function(promises) {\n var result = {};\n var awaitPromises = [];\n var _loop = function(key) {\n if (promises.hasOwnProperty(key)) {\n var value = promises[key];\n utils_isPromise(value) ? awaitPromises.push(value.then((function(res) {\n result[key] = res;\n }))) : result[key] = value;\n }\n };\n for (var key in promises) _loop(key);\n return ZalgoPromise.all(awaitPromises).then((function() {\n return result;\n }));\n };\n ZalgoPromise.map = function(items, method) {\n return ZalgoPromise.all(items.map(method));\n };\n ZalgoPromise.onPossiblyUnhandledException = function(handler) {\n return function(handler) {\n possiblyUnhandledPromiseHandlers.push(handler);\n return {\n cancel: function() {\n possiblyUnhandledPromiseHandlers.splice(possiblyUnhandledPromiseHandlers.indexOf(handler), 1);\n }\n };\n }(handler);\n };\n ZalgoPromise.try = function(method, context, args) {\n if (method && \"function\" != typeof method && !method.call) throw new Error(\"Promise.try expected a function\");\n var result;\n startActive();\n try {\n result = method.apply(context, args || []);\n } catch (err) {\n endActive();\n return ZalgoPromise.reject(err);\n }\n endActive();\n return ZalgoPromise.resolve(result);\n };\n ZalgoPromise.delay = function(_delay) {\n return new ZalgoPromise((function(resolve) {\n setTimeout(resolve, _delay);\n }));\n };\n ZalgoPromise.isPromise = function(value) {\n return !!(value && value instanceof ZalgoPromise) || utils_isPromise(value);\n };\n ZalgoPromise.flush = function() {\n return function(Zalgo) {\n var promise = flushPromise = flushPromise || new Zalgo;\n flushActive();\n return promise;\n }(ZalgoPromise);\n };\n return ZalgoPromise;\n }();\n function util_safeIndexOf(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }\n var weakmap_CrossDomainSafeWeakMap = function() {\n function CrossDomainSafeWeakMap() {\n this.name = void 0;\n this.weakmap = void 0;\n this.keys = void 0;\n this.values = void 0;\n this.name = \"__weakmap_\" + (1e9 * Math.random() >>> 0) + \"__\";\n if (function() {\n if (\"undefined\" == typeof WeakMap) return !1;\n if (void 0 === Object.freeze) return !1;\n try {\n var testWeakMap = new WeakMap;\n var testKey = {};\n Object.freeze(testKey);\n testWeakMap.set(testKey, \"__testvalue__\");\n return \"__testvalue__\" === testWeakMap.get(testKey);\n } catch (err) {\n return !1;\n }\n }()) try {\n this.weakmap = new WeakMap;\n } catch (err) {}\n this.keys = [];\n this.values = [];\n }\n var _proto = CrossDomainSafeWeakMap.prototype;\n _proto._cleanupClosedWindows = function() {\n var weakmap = this.weakmap;\n var keys = this.keys;\n for (var i = 0; i < keys.length; i++) {\n var value = keys[i];\n if (isWindow(value) && isWindowClosed(value)) {\n if (weakmap) try {\n weakmap.delete(value);\n } catch (err) {}\n keys.splice(i, 1);\n this.values.splice(i, 1);\n i -= 1;\n }\n }\n };\n _proto.isSafeToReadWrite = function(key) {\n return !isWindow(key);\n };\n _proto.set = function(key, value) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.set(key, value);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var name = this.name;\n var entry = key[name];\n entry && entry[0] === key ? entry[1] = value : Object.defineProperty(key, name, {\n value: [ key, value ],\n writable: !0\n });\n return;\n } catch (err) {}\n this._cleanupClosedWindows();\n var keys = this.keys;\n var values = this.values;\n var index = util_safeIndexOf(keys, key);\n if (-1 === index) {\n keys.push(key);\n values.push(value);\n } else values[index] = value;\n };\n _proto.get = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n if (weakmap.has(key)) return weakmap.get(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var entry = key[this.name];\n return entry && entry[0] === key ? entry[1] : void 0;\n } catch (err) {}\n this._cleanupClosedWindows();\n var index = util_safeIndexOf(this.keys, key);\n if (-1 !== index) return this.values[index];\n };\n _proto.delete = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.delete(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var entry = key[this.name];\n entry && entry[0] === key && (entry[0] = entry[1] = void 0);\n } catch (err) {}\n this._cleanupClosedWindows();\n var keys = this.keys;\n var index = util_safeIndexOf(keys, key);\n if (-1 !== index) {\n keys.splice(index, 1);\n this.values.splice(index, 1);\n }\n };\n _proto.has = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n if (weakmap.has(key)) return !0;\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var entry = key[this.name];\n return !(!entry || entry[0] !== key);\n } catch (err) {}\n this._cleanupClosedWindows();\n return -1 !== util_safeIndexOf(this.keys, key);\n };\n _proto.getOrSet = function(key, getter) {\n if (this.has(key)) return this.get(key);\n var value = getter();\n this.set(key, value);\n return value;\n };\n return CrossDomainSafeWeakMap;\n }();\n function getFunctionName(fn) {\n return fn.name || fn.__name__ || fn.displayName || \"anonymous\";\n }\n function setFunctionName(fn, name) {\n try {\n delete fn.name;\n fn.name = name;\n } catch (err) {}\n fn.__name__ = fn.displayName = name;\n return fn;\n }\n function uniqueID() {\n var chars = \"0123456789abcdef\";\n return \"uid_\" + \"xxxxxxxxxx\".replace(/./g, (function() {\n return chars.charAt(Math.floor(Math.random() * chars.length));\n })) + \"_\" + function(str) {\n if (\"function\" == typeof btoa) return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (function(m, p1) {\n return String.fromCharCode(parseInt(p1, 16));\n }))).replace(/[=]/g, \"\");\n if (\"undefined\" != typeof Buffer) return Buffer.from(str, \"utf8\").toString(\"base64\").replace(/[=]/g, \"\");\n throw new Error(\"Can not find window.btoa or Buffer\");\n }((new Date).toISOString().slice(11, 19).replace(\"T\", \".\")).replace(/[^a-zA-Z0-9]/g, \"\").toLowerCase();\n }\n var objectIDs;\n function serializeArgs(args) {\n try {\n return JSON.stringify([].slice.call(args), (function(subkey, val) {\n return \"function\" == typeof val ? \"memoize[\" + function(obj) {\n objectIDs = objectIDs || new weakmap_CrossDomainSafeWeakMap;\n if (null == obj || \"object\" != typeof obj && \"function\" != typeof obj) throw new Error(\"Invalid object\");\n var uid = objectIDs.get(obj);\n if (!uid) {\n uid = typeof obj + \":\" + uniqueID();\n objectIDs.set(obj, uid);\n }\n return uid;\n }(val) + \"]\" : \"undefined\" != typeof window && val instanceof window.Element || null !== val && \"object\" == typeof val && 1 === val.nodeType && \"object\" == typeof val.style && \"object\" == typeof val.ownerDocument ? {} : val;\n }));\n } catch (err) {\n throw new Error(\"Arguments not serializable -- can not be used to memoize\");\n }\n }\n function getEmptyObject() {\n return {};\n }\n var memoizeGlobalIndex = 0;\n var memoizeGlobalIndexValidFrom = 0;\n function memoize(method, options) {\n void 0 === options && (options = {});\n var _options$thisNamespac = options.thisNamespace, thisNamespace = void 0 !== _options$thisNamespac && _options$thisNamespac, cacheTime = options.time;\n var simpleCache;\n var thisCache;\n var memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n var memoizedFunction = function() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n if (memoizeIndex < memoizeGlobalIndexValidFrom) {\n simpleCache = null;\n thisCache = null;\n memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n }\n var cache;\n cache = thisNamespace ? (thisCache = thisCache || new weakmap_CrossDomainSafeWeakMap).getOrSet(this, getEmptyObject) : simpleCache = simpleCache || {};\n var cacheKey;\n try {\n cacheKey = serializeArgs(args);\n } catch (_unused) {\n return method.apply(this, arguments);\n }\n var cacheResult = cache[cacheKey];\n if (cacheResult && cacheTime && Date.now() - cacheResult.time < cacheTime) {\n delete cache[cacheKey];\n cacheResult = null;\n }\n if (cacheResult) return cacheResult.value;\n var time = Date.now();\n var value = method.apply(this, arguments);\n cache[cacheKey] = {\n time: time,\n value: value\n };\n return value;\n };\n memoizedFunction.reset = function() {\n simpleCache = null;\n thisCache = null;\n };\n return setFunctionName(memoizedFunction, (options.name || getFunctionName(method)) + \"::memoized\");\n }\n memoize.clear = function() {\n memoizeGlobalIndexValidFrom = memoizeGlobalIndex;\n };\n function memoizePromise(method) {\n var cache = {};\n function memoizedPromiseFunction() {\n var _arguments = arguments, _this = this;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) args[_key2] = arguments[_key2];\n var key = serializeArgs(args);\n if (cache.hasOwnProperty(key)) return cache[key];\n cache[key] = promise_ZalgoPromise.try((function() {\n return method.apply(_this, _arguments);\n })).finally((function() {\n delete cache[key];\n }));\n return cache[key];\n }\n memoizedPromiseFunction.reset = function() {\n cache = {};\n };\n return setFunctionName(memoizedPromiseFunction, getFunctionName(method) + \"::promiseMemoized\");\n }\n function src_util_noop() {}\n function stringifyError(err, level) {\n void 0 === level && (level = 1);\n if (level >= 3) return \"stringifyError stack overflow\";\n try {\n if (!err) return \"<unknown error: \" + {}.toString.call(err) + \">\";\n if (\"string\" == typeof err) return err;\n if (err instanceof Error) {\n var stack = err && err.stack;\n var message = err && err.message;\n if (stack && message) return -1 !== stack.indexOf(message) ? stack : message + \"\\n\" + stack;\n if (stack) return stack;\n if (message) return message;\n }\n return err && err.toString && \"function\" == typeof err.toString ? err.toString() : {}.toString.call(err);\n } catch (newErr) {\n return \"Error while stringifying error: \" + stringifyError(newErr, level + 1);\n }\n }\n function stringify(item) {\n return \"string\" == typeof item ? item : item && item.toString && \"function\" == typeof item.toString ? item.toString() : {}.toString.call(item);\n }\n memoize((function(obj) {\n if (Object.values) return Object.values(obj);\n var result = [];\n for (var key in obj) obj.hasOwnProperty(key) && result.push(obj[key]);\n return result;\n }));\n function util_isRegex(item) {\n return \"[object RegExp]\" === {}.toString.call(item);\n }\n function util_getOrSet(obj, key, getter) {\n if (obj.hasOwnProperty(key)) return obj[key];\n var val = getter();\n obj[key] = val;\n return val;\n }\n Error;\n function getBody() {\n var body = document.body;\n if (!body) throw new Error(\"Body element not found\");\n return body;\n }\n function isDocumentReady() {\n return Boolean(document.body) && \"complete\" === document.readyState;\n }\n function isDocumentInteractive() {\n return Boolean(document.body) && \"interactive\" === document.readyState;\n }\n memoize((function() {\n return new promise_ZalgoPromise((function(resolve) {\n if (isDocumentReady() || isDocumentInteractive()) return resolve();\n var interval = setInterval((function() {\n if (isDocumentReady() || isDocumentInteractive()) {\n clearInterval(interval);\n return resolve();\n }\n }), 10);\n }));\n }));\n var currentScript = \"undefined\" != typeof document ? document.currentScript : null;\n var getCurrentScript = memoize((function() {\n if (currentScript) return currentScript;\n if (currentScript = function() {\n try {\n var stack = function() {\n try {\n throw new Error(\"_\");\n } catch (err) {\n return err.stack || \"\";\n }\n }();\n var stackDetails = /.*at [^(]*\\((.*):(.+):(.+)\\)$/gi.exec(stack);\n var scriptLocation = stackDetails && stackDetails[1];\n if (!scriptLocation) return;\n for (var _i22 = 0, _Array$prototype$slic2 = [].slice.call(document.getElementsByTagName(\"script\")).reverse(); _i22 < _Array$prototype$slic2.length; _i22++) {\n var script = _Array$prototype$slic2[_i22];\n if (script.src && script.src === scriptLocation) return script;\n }\n } catch (err) {}\n }()) return currentScript;\n throw new Error(\"Can not determine current script\");\n }));\n var currentUID = uniqueID();\n memoize((function() {\n var script;\n try {\n script = getCurrentScript();\n } catch (err) {\n return currentUID;\n }\n var uid = script.getAttribute(\"data-uid\");\n if (uid && \"string\" == typeof uid) return uid;\n if ((uid = script.getAttribute(\"data-uid-auto\")) && \"string\" == typeof uid) return uid;\n if (script.src) {\n var hashedString = function(str) {\n var hash = \"\";\n for (var i = 0; i < str.length; i++) {\n var total = str[i].charCodeAt(0) * i;\n str[i + 1] && (total += str[i + 1].charCodeAt(0) * (i - 1));\n hash += String.fromCharCode(97 + Math.abs(total) % 26);\n }\n return hash;\n }(JSON.stringify({\n src: script.src,\n dataset: script.dataset\n }));\n uid = \"uid_\" + hashedString.slice(hashedString.length - 30);\n } else uid = uniqueID();\n script.setAttribute(\"data-uid-auto\", uid);\n return uid;\n }));\n function global_getGlobal(win) {\n void 0 === win && (win = window);\n var globalKey = \"__post_robot_10_0_46__\";\n return win !== window ? win[globalKey] : win[globalKey] = win[globalKey] || {};\n }\n var getObj = function() {\n return {};\n };\n function globalStore(key, defStore) {\n void 0 === key && (key = \"store\");\n void 0 === defStore && (defStore = getObj);\n return util_getOrSet(global_getGlobal(), key, (function() {\n var store = defStore();\n return {\n has: function(storeKey) {\n return store.hasOwnProperty(storeKey);\n },\n get: function(storeKey, defVal) {\n return store.hasOwnProperty(storeKey) ? store[storeKey] : defVal;\n },\n set: function(storeKey, val) {\n store[storeKey] = val;\n return val;\n },\n del: function(storeKey) {\n delete store[storeKey];\n },\n getOrSet: function(storeKey, getter) {\n return util_getOrSet(store, storeKey, getter);\n },\n reset: function() {\n store = defStore();\n },\n keys: function() {\n return Object.keys(store);\n }\n };\n }));\n }\n var WildCard = function() {};\n function getWildcard() {\n var global = global_getGlobal();\n global.WINDOW_WILDCARD = global.WINDOW_WILDCARD || new WildCard;\n return global.WINDOW_WILDCARD;\n }\n function windowStore(key, defStore) {\n void 0 === key && (key = \"store\");\n void 0 === defStore && (defStore = getObj);\n return globalStore(\"windowStore\").getOrSet(key, (function() {\n var winStore = new weakmap_CrossDomainSafeWeakMap;\n var getStore = function(win) {\n return winStore.getOrSet(win, defStore);\n };\n return {\n has: function(win) {\n return getStore(win).hasOwnProperty(key);\n },\n get: function(win, defVal) {\n var store = getStore(win);\n return store.hasOwnProperty(key) ? store[key] : defVal;\n },\n set: function(win, val) {\n getStore(win)[key] = val;\n return val;\n },\n del: function(win) {\n delete getStore(win)[key];\n },\n getOrSet: function(win, getter) {\n return util_getOrSet(getStore(win), key, getter);\n }\n };\n }));\n }\n function getInstanceID() {\n return globalStore(\"instance\").getOrSet(\"instanceID\", uniqueID);\n }\n function resolveHelloPromise(win, _ref) {\n var domain = _ref.domain;\n var helloPromises = windowStore(\"helloPromises\");\n var existingPromise = helloPromises.get(win);\n existingPromise && existingPromise.resolve({\n domain: domain\n });\n var newPromise = promise_ZalgoPromise.resolve({\n domain: domain\n });\n helloPromises.set(win, newPromise);\n return newPromise;\n }\n function sayHello(win, _ref4) {\n return (0, _ref4.send)(win, \"postrobot_hello\", {\n instanceID: getInstanceID()\n }, {\n domain: \"*\",\n timeout: -1\n }).then((function(_ref5) {\n var origin = _ref5.origin, instanceID = _ref5.data.instanceID;\n resolveHelloPromise(win, {\n domain: origin\n });\n return {\n win: win,\n domain: origin,\n instanceID: instanceID\n };\n }));\n }\n function getWindowInstanceID(win, _ref6) {\n var send = _ref6.send;\n return windowStore(\"windowInstanceIDPromises\").getOrSet(win, (function() {\n return sayHello(win, {\n send: send\n }).then((function(_ref7) {\n return _ref7.instanceID;\n }));\n }));\n }\n function markWindowKnown(win) {\n windowStore(\"knownWindows\").set(win, !0);\n }\n function isSerializedType(item) {\n return \"object\" == typeof item && null !== item && \"string\" == typeof item.__type__;\n }\n function determineType(val) {\n return void 0 === val ? \"undefined\" : null === val ? \"null\" : Array.isArray(val) ? \"array\" : \"function\" == typeof val ? \"function\" : \"object\" == typeof val ? val instanceof Error ? \"error\" : \"function\" == typeof val.then ? \"promise\" : \"[object RegExp]\" === {}.toString.call(val) ? \"regex\" : \"[object Date]\" === {}.toString.call(val) ? \"date\" : \"object\" : \"string\" == typeof val ? \"string\" : \"number\" == typeof val ? \"number\" : \"boolean\" == typeof val ? \"boolean\" : void 0;\n }\n function serializeType(type, val) {\n return {\n __type__: type,\n __val__: val\n };\n }\n var _SERIALIZER;\n var SERIALIZER = ((_SERIALIZER = {}).function = function() {}, _SERIALIZER.error = function(_ref) {\n return serializeType(\"error\", {\n message: _ref.message,\n stack: _ref.stack,\n code: _ref.code,\n data: _ref.data\n });\n }, _SERIALIZER.promise = function() {}, _SERIALIZER.regex = function(val) {\n return serializeType(\"regex\", val.source);\n }, _SERIALIZER.date = function(val) {\n return serializeType(\"date\", val.toJSON());\n }, _SERIALIZER.array = function(val) {\n return val;\n }, _SERIALIZER.object = function(val) {\n return val;\n }, _SERIALIZER.string = function(val) {\n return val;\n }, _SERIALIZER.number = function(val) {\n return val;\n }, _SERIALIZER.boolean = function(val) {\n return val;\n }, _SERIALIZER.null = function(val) {\n return val;\n }, _SERIALIZER[void 0] = function(val) {\n return serializeType(\"undefined\", val);\n }, _SERIALIZER);\n var defaultSerializers = {};\n var _DESERIALIZER;\n var DESERIALIZER = ((_DESERIALIZER = {}).function = function() {\n throw new Error(\"Function serialization is not implemented; nothing to deserialize\");\n }, _DESERIALIZER.error = function(_ref2) {\n var stack = _ref2.stack, code = _ref2.code, data = _ref2.data;\n var error = new Error(_ref2.message);\n error.code = code;\n data && (error.data = data);\n error.stack = stack + \"\\n\\n\" + error.stack;\n return error;\n }, _DESERIALIZER.promise = function() {\n throw new Error(\"Promise serialization is not implemented; nothing to deserialize\");\n }, _DESERIALIZER.regex = function(val) {\n return new RegExp(val);\n }, _DESERIALIZER.date = function(val) {\n return new Date(val);\n }, _DESERIALIZER.array = function(val) {\n return val;\n }, _DESERIALIZER.object = function(val) {\n return val;\n }, _DESERIALIZER.string = function(val) {\n return val;\n }, _DESERIALIZER.number = function(val) {\n return val;\n }, _DESERIALIZER.boolean = function(val) {\n return val;\n }, _DESERIALIZER.null = function(val) {\n return val;\n }, _DESERIALIZER[void 0] = function() {}, _DESERIALIZER);\n var defaultDeserializers = {};\n new promise_ZalgoPromise((function(resolve) {\n if (window.document && window.document.body) return resolve(window.document.body);\n var interval = setInterval((function() {\n if (window.document && window.document.body) {\n clearInterval(interval);\n return resolve(window.document.body);\n }\n }), 10);\n }));\n function cleanupProxyWindows() {\n var idToProxyWindow = globalStore(\"idToProxyWindow\");\n for (var _i2 = 0, _idToProxyWindow$keys2 = idToProxyWindow.keys(); _i2 < _idToProxyWindow$keys2.length; _i2++) {\n var id = _idToProxyWindow$keys2[_i2];\n idToProxyWindow.get(id).shouldClean() && idToProxyWindow.del(id);\n }\n }\n function getSerializedWindow(winPromise, _ref) {\n var send = _ref.send, _ref$id = _ref.id, id = void 0 === _ref$id ? uniqueID() : _ref$id;\n var windowNamePromise = winPromise.then((function(win) {\n if (isSameDomain(win)) return assertSameDomain(win).name;\n }));\n var windowTypePromise = winPromise.then((function(window) {\n if (isWindowClosed(window)) throw new Error(\"Window is closed, can not determine type\");\n return getOpener(window) ? \"popup\" : \"iframe\";\n }));\n windowNamePromise.catch(src_util_noop);\n windowTypePromise.catch(src_util_noop);\n var getName = function() {\n return winPromise.then((function(win) {\n if (!isWindowClosed(win)) return isSameDomain(win) ? assertSameDomain(win).name : windowNamePromise;\n }));\n };\n return {\n id: id,\n getType: function() {\n return windowTypePromise;\n },\n getInstanceID: memoizePromise((function() {\n return winPromise.then((function(win) {\n return getWindowInstanceID(win, {\n send: send\n });\n }));\n })),\n close: function() {\n return winPromise.then(closeWindow);\n },\n getName: getName,\n focus: function() {\n return winPromise.then((function(win) {\n win.focus();\n }));\n },\n isClosed: function() {\n return winPromise.then((function(win) {\n return isWindowClosed(win);\n }));\n },\n setLocation: function(href, opts) {\n void 0 === opts && (opts = {});\n return winPromise.then((function(win) {\n var domain = window.location.protocol + \"//\" + window.location.host;\n var _opts$method = opts.method, method = void 0 === _opts$method ? \"get\" : _opts$method, body = opts.body;\n if (0 === href.indexOf(\"/\")) href = \"\" + domain + href; else if (!href.match(/^https?:\\/\\//) && 0 !== href.indexOf(domain)) throw new Error(\"Expected url to be http or https url, or absolute path, got \" + JSON.stringify(href));\n if (\"post\" === method) return getName().then((function(name) {\n if (!name) throw new Error(\"Can not post to window without target name\");\n !function(_ref3) {\n var url = _ref3.url, target = _ref3.target, body = _ref3.body, _ref3$method = _ref3.method, method = void 0 === _ref3$method ? \"post\" : _ref3$method;\n var form = document.createElement(\"form\");\n form.setAttribute(\"target\", target);\n form.setAttribute(\"method\", method);\n form.setAttribute(\"action\", url);\n form.style.display = \"none\";\n if (body) for (var _i24 = 0, _Object$keys4 = Object.keys(body); _i24 < _Object$keys4.length; _i24++) {\n var _body$key;\n var key = _Object$keys4[_i24];\n var input = document.createElement(\"input\");\n input.setAttribute(\"name\", key);\n input.setAttribute(\"value\", null == (_body$key = body[key]) ? void 0 : _body$key.toString());\n form.appendChild(input);\n }\n getBody().appendChild(form);\n form.submit();\n getBody().removeChild(form);\n }({\n url: href,\n target: name,\n method: method,\n body: body\n });\n }));\n if (\"get\" !== method) throw new Error(\"Unsupported method: \" + method);\n if (isSameDomain(win)) try {\n if (win.location && \"function\" == typeof win.location.replace) {\n win.location.replace(href);\n return;\n }\n } catch (err) {}\n win.location = href;\n }));\n },\n setName: function(name) {\n return winPromise.then((function(win) {\n var sameDomain = isSameDomain(win);\n var frame = getFrameForWindow(win);\n if (!sameDomain) throw new Error(\"Can not set name for cross-domain window: \" + name);\n assertSameDomain(win).name = name;\n frame && frame.setAttribute(\"name\", name);\n windowNamePromise = promise_ZalgoPromise.resolve(name);\n }));\n }\n };\n }\n var window_ProxyWindow = function() {\n function ProxyWindow(_ref2) {\n var send = _ref2.send, win = _ref2.win, serializedWindow = _ref2.serializedWindow;\n this.id = void 0;\n this.isProxyWindow = !0;\n this.serializedWindow = void 0;\n this.actualWindow = void 0;\n this.actualWindowPromise = void 0;\n this.send = void 0;\n this.name = void 0;\n this.actualWindowPromise = new promise_ZalgoPromise;\n this.serializedWindow = serializedWindow || getSerializedWindow(this.actualWindowPromise, {\n send: send\n });\n globalStore(\"idToProxyWindow\").set(this.getID(), this);\n win && this.setWindow(win, {\n send: send\n });\n }\n var _proto = ProxyWindow.prototype;\n _proto.getID = function() {\n return this.serializedWindow.id;\n };\n _proto.getType = function() {\n return this.serializedWindow.getType();\n };\n _proto.isPopup = function() {\n return this.getType().then((function(type) {\n return \"popup\" === type;\n }));\n };\n _proto.setLocation = function(href, opts) {\n var _this = this;\n return this.serializedWindow.setLocation(href, opts).then((function() {\n return _this;\n }));\n };\n _proto.getName = function() {\n return this.serializedWindow.getName();\n };\n _proto.setName = function(name) {\n var _this2 = this;\n return this.serializedWindow.setName(name).then((function() {\n return _this2;\n }));\n };\n _proto.close = function() {\n var _this3 = this;\n return this.serializedWindow.close().then((function() {\n return _this3;\n }));\n };\n _proto.focus = function() {\n var _this4 = this;\n var isPopupPromise = this.isPopup();\n var getNamePromise = this.getName();\n var reopenPromise = promise_ZalgoPromise.hash({\n isPopup: isPopupPromise,\n name: getNamePromise\n }).then((function(_ref3) {\n var name = _ref3.name;\n _ref3.isPopup && name && window.open(\"\", name, \"noopener\");\n }));\n var focusPromise = this.serializedWindow.focus();\n return promise_ZalgoPromise.all([ reopenPromise, focusPromise ]).then((function() {\n return _this4;\n }));\n };\n _proto.isClosed = function() {\n return this.serializedWindow.isClosed();\n };\n _proto.getWindow = function() {\n return this.actualWindow;\n };\n _proto.setWindow = function(win, _ref4) {\n var send = _ref4.send;\n this.actualWindow = win;\n this.actualWindowPromise.resolve(this.actualWindow);\n this.serializedWindow = getSerializedWindow(this.actualWindowPromise, {\n send: send,\n id: this.getID()\n });\n windowStore(\"winToProxyWindow\").set(win, this);\n };\n _proto.awaitWindow = function() {\n return this.actualWindowPromise;\n };\n _proto.matchWindow = function(win, _ref5) {\n var _this5 = this;\n var send = _ref5.send;\n return promise_ZalgoPromise.try((function() {\n return _this5.actualWindow ? win === _this5.actualWindow : promise_ZalgoPromise.hash({\n proxyInstanceID: _this5.getInstanceID(),\n knownWindowInstanceID: getWindowInstanceID(win, {\n send: send\n })\n }).then((function(_ref6) {\n var match = _ref6.proxyInstanceID === _ref6.knownWindowInstanceID;\n match && _this5.setWindow(win, {\n send: send\n });\n return match;\n }));\n }));\n };\n _proto.unwrap = function() {\n return this.actualWindow || this;\n };\n _proto.getInstanceID = function() {\n return this.serializedWindow.getInstanceID();\n };\n _proto.shouldClean = function() {\n return Boolean(this.actualWindow && isWindowClosed(this.actualWindow));\n };\n _proto.serialize = function() {\n return this.serializedWindow;\n };\n ProxyWindow.unwrap = function(win) {\n return ProxyWindow.isProxyWindow(win) ? win.unwrap() : win;\n };\n ProxyWindow.serialize = function(win, _ref7) {\n var send = _ref7.send;\n cleanupProxyWindows();\n return ProxyWindow.toProxyWindow(win, {\n send: send\n }).serialize();\n };\n ProxyWindow.deserialize = function(serializedWindow, _ref8) {\n var send = _ref8.send;\n cleanupProxyWindows();\n return globalStore(\"idToProxyWindow\").get(serializedWindow.id) || new ProxyWindow({\n serializedWindow: serializedWindow,\n send: send\n });\n };\n ProxyWindow.isProxyWindow = function(obj) {\n return Boolean(obj && !isWindow(obj) && obj.isProxyWindow);\n };\n ProxyWindow.toProxyWindow = function(win, _ref9) {\n var send = _ref9.send;\n cleanupProxyWindows();\n if (ProxyWindow.isProxyWindow(win)) return win;\n var actualWindow = win;\n return windowStore(\"winToProxyWindow\").get(actualWindow) || new ProxyWindow({\n win: actualWindow,\n send: send\n });\n };\n return ProxyWindow;\n }();\n function addMethod(id, val, name, source, domain) {\n var methodStore = windowStore(\"methodStore\");\n var proxyWindowMethods = globalStore(\"proxyWindowMethods\");\n if (window_ProxyWindow.isProxyWindow(source)) proxyWindowMethods.set(id, {\n val: val,\n name: name,\n domain: domain,\n source: source\n }); else {\n proxyWindowMethods.del(id);\n methodStore.getOrSet(source, (function() {\n return {};\n }))[id] = {\n domain: domain,\n name: name,\n val: val,\n source: source\n };\n }\n }\n function lookupMethod(source, id) {\n var methodStore = windowStore(\"methodStore\");\n var proxyWindowMethods = globalStore(\"proxyWindowMethods\");\n return methodStore.getOrSet(source, (function() {\n return {};\n }))[id] || proxyWindowMethods.get(id);\n }\n function function_serializeFunction(destination, domain, val, key, _ref3) {\n on = (_ref = {\n on: _ref3.on,\n send: _ref3.send\n }).on, send = _ref.send, globalStore(\"builtinListeners\").getOrSet(\"functionCalls\", (function() {\n return on(\"postrobot_method\", {\n domain: \"*\"\n }, (function(_ref2) {\n var source = _ref2.source, origin = _ref2.origin, data = _ref2.data;\n var id = data.id, name = data.name;\n var meth = lookupMethod(source, id);\n if (!meth) throw new Error(\"Could not find method '\" + name + \"' with id: \" + data.id + \" in \" + getDomain(window));\n var methodSource = meth.source, domain = meth.domain, val = meth.val;\n return promise_ZalgoPromise.try((function() {\n if (!matchDomain(domain, origin)) throw new Error(\"Method '\" + data.name + \"' domain \" + JSON.stringify(util_isRegex(meth.domain) ? meth.domain.source : meth.domain) + \" does not match origin \" + origin + \" in \" + getDomain(window));\n if (window_ProxyWindow.isProxyWindow(methodSource)) return methodSource.matchWindow(source, {\n send: send\n }).then((function(match) {\n if (!match) throw new Error(\"Method call '\" + data.name + \"' failed - proxy window does not match source in \" + getDomain(window));\n }));\n })).then((function() {\n return val.apply({\n source: source,\n origin: origin\n }, data.args);\n }), (function(err) {\n return promise_ZalgoPromise.try((function() {\n if (val.onError) return val.onError(err);\n })).then((function() {\n err.stack && (err.stack = \"Remote call to \" + name + \"(\" + function(args) {\n void 0 === args && (args = []);\n return (item = args, [].slice.call(item)).map((function(arg) {\n return \"string\" == typeof arg ? \"'\" + arg + \"'\" : void 0 === arg ? \"undefined\" : null === arg ? \"null\" : \"boolean\" == typeof arg ? arg.toString() : Array.isArray(arg) ? \"[ ... ]\" : \"object\" == typeof arg ? \"{ ... }\" : \"function\" == typeof arg ? \"() => { ... }\" : \"<\" + typeof arg + \">\";\n })).join(\", \");\n var item;\n }(data.args) + \") failed\\n\\n\" + err.stack);\n throw err;\n }));\n })).then((function(result) {\n return {\n result: result,\n id: id,\n name: name\n };\n }));\n }));\n }));\n var _ref, on, send;\n var id = val.__id__ || uniqueID();\n destination = window_ProxyWindow.unwrap(destination);\n var name = val.__name__ || val.name || key;\n \"string\" == typeof name && \"function\" == typeof name.indexOf && 0 === name.indexOf(\"anonymous::\") && (name = name.replace(\"anonymous::\", key + \"::\"));\n if (window_ProxyWindow.isProxyWindow(destination)) {\n addMethod(id, val, name, destination, domain);\n destination.awaitWindow().then((function(win) {\n addMethod(id, val, name, win, domain);\n }));\n } else addMethod(id, val, name, destination, domain);\n return serializeType(\"cross_domain_function\", {\n id: id,\n name: name\n });\n }\n function serializeMessage(destination, domain, obj, _ref) {\n var _serialize;\n var on = _ref.on, send = _ref.send;\n return function(obj, serializers) {\n void 0 === serializers && (serializers = defaultSerializers);\n var result = JSON.stringify(obj, (function(key) {\n var val = this[key];\n if (isSerializedType(this)) return val;\n var type = determineType(val);\n if (!type) return val;\n var serializer = serializers[type] || SERIALIZER[type];\n return serializer ? serializer(val, key) : val;\n }));\n return void 0 === result ? \"undefined\" : result;\n }(obj, ((_serialize = {}).promise = function(val, key) {\n return function(destination, domain, val, key, _ref) {\n return serializeType(\"cross_domain_zalgo_promise\", {\n then: function_serializeFunction(destination, domain, (function(resolve, reject) {\n return val.then(resolve, reject);\n }), key, {\n on: _ref.on,\n send: _ref.send\n })\n });\n }(destination, domain, val, key, {\n on: on,\n send: send\n });\n }, _serialize.function = function(val, key) {\n return function_serializeFunction(destination, domain, val, key, {\n on: on,\n send: send\n });\n }, _serialize.object = function(val) {\n return isWindow(val) || window_ProxyWindow.isProxyWindow(val) ? serializeType(\"cross_domain_window\", window_ProxyWindow.serialize(val, {\n send: send\n })) : val;\n }, _serialize));\n }\n function deserializeMessage(source, origin, message, _ref2) {\n var _deserialize;\n var send = _ref2.send;\n return function(str, deserializers) {\n void 0 === deserializers && (deserializers = defaultDeserializers);\n if (\"undefined\" !== str) return JSON.parse(str, (function(key, val) {\n if (isSerializedType(this)) return val;\n var type;\n var value;\n if (isSerializedType(val)) {\n type = val.__type__;\n value = val.__val__;\n } else {\n type = determineType(val);\n value = val;\n }\n if (!type) return value;\n var deserializer = deserializers[type] || DESERIALIZER[type];\n return deserializer ? deserializer(value, key) : value;\n }));\n }(message, ((_deserialize = {}).cross_domain_zalgo_promise = function(serializedPromise) {\n return function(source, origin, _ref2) {\n return new promise_ZalgoPromise(_ref2.then);\n }(0, 0, serializedPromise);\n }, _deserialize.cross_domain_function = function(serializedFunction) {\n return function(source, origin, _ref4, _ref5) {\n var id = _ref4.id, name = _ref4.name;\n var send = _ref5.send;\n var getDeserializedFunction = function(opts) {\n void 0 === opts && (opts = {});\n function crossDomainFunctionWrapper() {\n var _arguments = arguments;\n return window_ProxyWindow.toProxyWindow(source, {\n send: send\n }).awaitWindow().then((function(win) {\n var meth = lookupMethod(win, id);\n if (meth && meth.val !== crossDomainFunctionWrapper) return meth.val.apply({\n source: window,\n origin: getDomain()\n }, _arguments);\n var _args = [].slice.call(_arguments);\n return opts.fireAndForget ? send(win, \"postrobot_method\", {\n id: id,\n name: name,\n args: _args\n }, {\n domain: origin,\n fireAndForget: !0\n }) : send(win, \"postrobot_method\", {\n id: id,\n name: name,\n args: _args\n }, {\n domain: origin,\n fireAndForget: !1\n }).then((function(res) {\n return res.data.result;\n }));\n })).catch((function(err) {\n throw err;\n }));\n }\n crossDomainFunctionWrapper.__name__ = name;\n crossDomainFunctionWrapper.__origin__ = origin;\n crossDomainFunctionWrapper.__source__ = source;\n crossDomainFunctionWrapper.__id__ = id;\n crossDomainFunctionWrapper.origin = origin;\n return crossDomainFunctionWrapper;\n };\n var crossDomainFunctionWrapper = getDeserializedFunction();\n crossDomainFunctionWrapper.fireAndForget = getDeserializedFunction({\n fireAndForget: !0\n });\n return crossDomainFunctionWrapper;\n }(source, origin, serializedFunction, {\n send: send\n });\n }, _deserialize.cross_domain_window = function(serializedWindow) {\n return window_ProxyWindow.deserialize(serializedWindow, {\n send: send\n });\n }, _deserialize));\n }\n var SEND_MESSAGE_STRATEGIES = {};\n SEND_MESSAGE_STRATEGIES.postrobot_post_message = function(win, serializedMessage, domain) {\n 0 === domain.indexOf(\"file:\") && (domain = \"*\");\n win.postMessage(serializedMessage, domain);\n };\n function send_sendMessage(win, domain, message, _ref2) {\n var on = _ref2.on, send = _ref2.send;\n return promise_ZalgoPromise.try((function() {\n var domainBuffer = windowStore().getOrSet(win, (function() {\n return {};\n }));\n domainBuffer.buffer = domainBuffer.buffer || [];\n domainBuffer.buffer.push(message);\n domainBuffer.flush = domainBuffer.flush || promise_ZalgoPromise.flush().then((function() {\n if (isWindowClosed(win)) throw new Error(\"Window is closed\");\n var serializedMessage = serializeMessage(win, domain, ((_ref = {}).__post_robot_10_0_46__ = domainBuffer.buffer || [], \n _ref), {\n on: on,\n send: send\n });\n var _ref;\n delete domainBuffer.buffer;\n var strategies = Object.keys(SEND_MESSAGE_STRATEGIES);\n var errors = [];\n for (var _i2 = 0; _i2 < strategies.length; _i2++) {\n var strategyName = strategies[_i2];\n try {\n SEND_MESSAGE_STRATEGIES[strategyName](win, serializedMessage, domain);\n } catch (err) {\n errors.push(err);\n }\n }\n if (errors.length === strategies.length) throw new Error(\"All post-robot messaging strategies failed:\\n\\n\" + errors.map((function(err, i) {\n return i + \". \" + stringifyError(err);\n })).join(\"\\n\\n\"));\n }));\n return domainBuffer.flush.then((function() {\n delete domainBuffer.flush;\n }));\n })).then(src_util_noop);\n }\n function getResponseListener(hash) {\n return globalStore(\"responseListeners\").get(hash);\n }\n function deleteResponseListener(hash) {\n globalStore(\"responseListeners\").del(hash);\n }\n function isResponseListenerErrored(hash) {\n return globalStore(\"erroredResponseListeners\").has(hash);\n }\n function getRequestListener(_ref) {\n var name = _ref.name, win = _ref.win, domain = _ref.domain;\n var requestListeners = windowStore(\"requestListeners\");\n \"*\" === win && (win = null);\n \"*\" === domain && (domain = null);\n if (!name) throw new Error(\"Name required to get request listener\");\n for (var _i4 = 0, _ref3 = [ win, getWildcard() ]; _i4 < _ref3.length; _i4++) {\n var winQualifier = _ref3[_i4];\n if (winQualifier) {\n var nameListeners = requestListeners.get(winQualifier);\n if (nameListeners) {\n var domainListeners = nameListeners[name];\n if (domainListeners) {\n if (domain && \"string\" == typeof domain) {\n if (domainListeners[domain]) return domainListeners[domain];\n if (domainListeners.__domain_regex__) for (var _i6 = 0, _domainListeners$__DO2 = domainListeners.__domain_regex__; _i6 < _domainListeners$__DO2.length; _i6++) {\n var _domainListeners$__DO3 = _domainListeners$__DO2[_i6], listener = _domainListeners$__DO3.listener;\n if (matchDomain(_domainListeners$__DO3.regex, domain)) return listener;\n }\n }\n if (domainListeners[\"*\"]) return domainListeners[\"*\"];\n }\n }\n }\n }\n }\n function handleRequest(source, origin, message, _ref) {\n var on = _ref.on, send = _ref.send;\n var options = getRequestListener({\n name: message.name,\n win: source,\n domain: origin\n });\n var logName = \"postrobot_method\" === message.name && message.data && \"string\" == typeof message.data.name ? message.data.name + \"()\" : message.name;\n function sendResponse(ack, data, error) {\n return promise_ZalgoPromise.flush().then((function() {\n if (!message.fireAndForget && !isWindowClosed(source)) try {\n return send_sendMessage(source, origin, {\n id: uniqueID(),\n origin: getDomain(window),\n type: \"postrobot_message_response\",\n hash: message.hash,\n name: message.name,\n ack: ack,\n data: data,\n error: error\n }, {\n on: on,\n send: send\n });\n } catch (err) {\n throw new Error(\"Send response message failed for \" + logName + \" in \" + getDomain() + \"\\n\\n\" + stringifyError(err));\n }\n }));\n }\n return promise_ZalgoPromise.all([ promise_ZalgoPromise.flush().then((function() {\n if (!message.fireAndForget && !isWindowClosed(source)) try {\n return send_sendMessage(source, origin, {\n id: uniqueID(),\n origin: getDomain(window),\n type: \"postrobot_message_ack\",\n hash: message.hash,\n name: message.name\n }, {\n on: on,\n send: send\n });\n } catch (err) {\n throw new Error(\"Send ack message failed for \" + logName + \" in \" + getDomain() + \"\\n\\n\" + stringifyError(err));\n }\n })), promise_ZalgoPromise.try((function() {\n if (!options) throw new Error(\"No handler found for post message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n return options.handler({\n source: source,\n origin: origin,\n data: message.data\n });\n })).then((function(data) {\n return sendResponse(\"success\", data);\n }), (function(error) {\n return sendResponse(\"error\", null, error);\n })) ]).then(src_util_noop).catch((function(err) {\n if (options && options.handleError) return options.handleError(err);\n throw err;\n }));\n }\n function handleAck(source, origin, message) {\n if (!isResponseListenerErrored(message.hash)) {\n var options = getResponseListener(message.hash);\n if (!options) throw new Error(\"No handler found for post message ack for message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n try {\n if (!matchDomain(options.domain, origin)) throw new Error(\"Ack origin \" + origin + \" does not match domain \" + options.domain.toString());\n if (source !== options.win) throw new Error(\"Ack source does not match registered window\");\n } catch (err) {\n options.promise.reject(err);\n }\n options.ack = !0;\n }\n }\n function handleResponse(source, origin, message) {\n if (!isResponseListenerErrored(message.hash)) {\n var options = getResponseListener(message.hash);\n if (!options) throw new Error(\"No handler found for post message response for message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n if (!matchDomain(options.domain, origin)) throw new Error(\"Response origin \" + origin + \" does not match domain \" + (pattern = options.domain, \n Array.isArray(pattern) ? \"(\" + pattern.join(\" | \") + \")\" : isRegex(pattern) ? \"RegExp(\" + pattern.toString() + \")\" : pattern.toString()));\n var pattern;\n if (source !== options.win) throw new Error(\"Response source does not match registered window\");\n deleteResponseListener(message.hash);\n \"error\" === message.ack ? options.promise.reject(message.error) : \"success\" === message.ack && options.promise.resolve({\n source: source,\n origin: origin,\n data: message.data\n });\n }\n }\n function receive_receiveMessage(event, _ref2) {\n var on = _ref2.on, send = _ref2.send;\n var receivedMessages = globalStore(\"receivedMessages\");\n try {\n if (!window || window.closed || !event.source) return;\n } catch (err) {\n return;\n }\n var source = event.source, origin = event.origin;\n var messages = function(message, source, origin, _ref) {\n var on = _ref.on, send = _ref.send;\n var parsedMessage;\n try {\n parsedMessage = deserializeMessage(source, origin, message, {\n on: on,\n send: send\n });\n } catch (err) {\n return;\n }\n if (parsedMessage && \"object\" == typeof parsedMessage && null !== parsedMessage) {\n var parseMessages = parsedMessage.__post_robot_10_0_46__;\n if (Array.isArray(parseMessages)) return parseMessages;\n }\n }(event.data, source, origin, {\n on: on,\n send: send\n });\n if (messages) {\n markWindowKnown(source);\n for (var _i2 = 0; _i2 < messages.length; _i2++) {\n var message = messages[_i2];\n if (receivedMessages.has(message.id)) return;\n receivedMessages.set(message.id, !0);\n if (isWindowClosed(source) && !message.fireAndForget) return;\n 0 === message.origin.indexOf(\"file:\") && (origin = \"file://\");\n try {\n \"postrobot_message_request\" === message.type ? handleRequest(source, origin, message, {\n on: on,\n send: send\n }) : \"postrobot_message_response\" === message.type ? handleResponse(source, origin, message) : \"postrobot_message_ack\" === message.type && handleAck(source, origin, message);\n } catch (err) {\n setTimeout((function() {\n throw err;\n }), 0);\n }\n }\n }\n }\n function on_on(name, options, handler) {\n if (!name) throw new Error(\"Expected name\");\n if (\"function\" == typeof (options = options || {})) {\n handler = options;\n options = {};\n }\n if (!handler) throw new Error(\"Expected handler\");\n var requestListener = function addRequestListener(_ref4, listener) {\n var name = _ref4.name, winCandidate = _ref4.win, domain = _ref4.domain;\n var requestListeners = windowStore(\"requestListeners\");\n if (!name || \"string\" != typeof name) throw new Error(\"Name required to add request listener\");\n if (winCandidate && \"*\" !== winCandidate && window_ProxyWindow.isProxyWindow(winCandidate)) {\n var requestListenerPromise = winCandidate.awaitWindow().then((function(actualWin) {\n return addRequestListener({\n name: name,\n win: actualWin,\n domain: domain\n }, listener);\n }));\n return {\n cancel: function() {\n requestListenerPromise.then((function(requestListener) {\n return requestListener.cancel();\n }), src_util_noop);\n }\n };\n }\n var win = winCandidate;\n if (Array.isArray(win)) {\n var listenersCollection = [];\n for (var _i8 = 0, _win2 = win; _i8 < _win2.length; _i8++) listenersCollection.push(addRequestListener({\n name: name,\n domain: domain,\n win: _win2[_i8]\n }, listener));\n return {\n cancel: function() {\n for (var _i10 = 0; _i10 < listenersCollection.length; _i10++) listenersCollection[_i10].cancel();\n }\n };\n }\n if (Array.isArray(domain)) {\n var _listenersCollection = [];\n for (var _i12 = 0, _domain2 = domain; _i12 < _domain2.length; _i12++) _listenersCollection.push(addRequestListener({\n name: name,\n win: win,\n domain: _domain2[_i12]\n }, listener));\n return {\n cancel: function() {\n for (var _i14 = 0; _i14 < _listenersCollection.length; _i14++) _listenersCollection[_i14].cancel();\n }\n };\n }\n var existingListener = getRequestListener({\n name: name,\n win: win,\n domain: domain\n });\n win && \"*\" !== win || (win = getWildcard());\n var strDomain = (domain = domain || \"*\").toString();\n if (existingListener) throw win && domain ? new Error(\"Request listener already exists for \" + name + \" on domain \" + domain.toString() + \" for \" + (win === getWildcard() ? \"wildcard\" : \"specified\") + \" window\") : win ? new Error(\"Request listener already exists for \" + name + \" for \" + (win === getWildcard() ? \"wildcard\" : \"specified\") + \" window\") : domain ? new Error(\"Request listener already exists for \" + name + \" on domain \" + domain.toString()) : new Error(\"Request listener already exists for \" + name);\n var winNameListeners = requestListeners.getOrSet(win, (function() {\n return {};\n }));\n var winNameDomainListeners = util_getOrSet(winNameListeners, name, (function() {\n return {};\n }));\n var winNameDomainRegexListeners;\n var winNameDomainRegexListener;\n util_isRegex(domain) ? (winNameDomainRegexListeners = util_getOrSet(winNameDomainListeners, \"__domain_regex__\", (function() {\n return [];\n }))).push(winNameDomainRegexListener = {\n regex: domain,\n listener: listener\n }) : winNameDomainListeners[strDomain] = listener;\n return {\n cancel: function() {\n delete winNameDomainListeners[strDomain];\n if (winNameDomainRegexListener) {\n winNameDomainRegexListeners.splice(winNameDomainRegexListeners.indexOf(winNameDomainRegexListener, 1));\n winNameDomainRegexListeners.length || delete winNameDomainListeners.__domain_regex__;\n }\n Object.keys(winNameDomainListeners).length || delete winNameListeners[name];\n win && !Object.keys(winNameListeners).length && requestListeners.del(win);\n }\n };\n }({\n name: name,\n win: options.window,\n domain: options.domain || \"*\"\n }, {\n handler: handler || options.handler,\n handleError: options.errorHandler || function(err) {\n throw err;\n }\n });\n return {\n cancel: function() {\n requestListener.cancel();\n }\n };\n }\n function on_once(name, options, handler) {\n if (\"function\" == typeof (options = options || {})) {\n handler = options;\n options = {};\n }\n var promise = new promise_ZalgoPromise;\n var listener;\n options.errorHandler = function(err) {\n listener.cancel();\n promise.reject(err);\n };\n listener = on_on(name, options, (function(event) {\n listener.cancel();\n promise.resolve(event);\n if (handler) return handler(event);\n }));\n promise.cancel = listener.cancel;\n return promise;\n }\n var send_send = function send(winOrProxyWin, name, data, options) {\n var domainMatcher = (options = options || {}).domain || \"*\";\n var responseTimeout = options.timeout || -1;\n var childTimeout = options.timeout || 5e3;\n var fireAndForget = options.fireAndForget || !1;\n return window_ProxyWindow.toProxyWindow(winOrProxyWin, {\n send: send\n }).awaitWindow().then((function(win) {\n return promise_ZalgoPromise.try((function() {\n !function(name, win, domain) {\n if (!name) throw new Error(\"Expected name\");\n if (domain && \"string\" != typeof domain && !Array.isArray(domain) && !util_isRegex(domain)) throw new TypeError(\"Can not send \" + name + \". Expected domain \" + JSON.stringify(domain) + \" to be a string, array, or regex\");\n if (isWindowClosed(win)) throw new Error(\"Can not send \" + name + \". Target window is closed\");\n }(name, win, domainMatcher);\n if (function(parent, child) {\n var actualParent = getAncestor(child);\n if (actualParent) return actualParent === parent;\n if (child === parent) return !1;\n if (function(win) {\n void 0 === win && (win = window);\n try {\n if (win.top) return win.top;\n } catch (err) {}\n if (getParent(win) === win) return win;\n try {\n if (isAncestorParent(window, win) && window.top) return window.top;\n } catch (err) {}\n try {\n if (isAncestorParent(win, window) && window.top) return window.top;\n } catch (err) {}\n for (var _i7 = 0, _getAllChildFrames4 = function getAllChildFrames(win) {\n var result = [];\n for (var _i3 = 0, _getFrames2 = getFrames(win); _i3 < _getFrames2.length; _i3++) {\n var frame = _getFrames2[_i3];\n result.push(frame);\n for (var _i5 = 0, _getAllChildFrames2 = getAllChildFrames(frame); _i5 < _getAllChildFrames2.length; _i5++) result.push(_getAllChildFrames2[_i5]);\n }\n return result;\n }(win); _i7 < _getAllChildFrames4.length; _i7++) {\n var frame = _getAllChildFrames4[_i7];\n try {\n if (frame.top) return frame.top;\n } catch (err) {}\n if (getParent(frame) === frame) return frame;\n }\n }(child) === child) return !1;\n for (var _i15 = 0, _getFrames8 = getFrames(parent); _i15 < _getFrames8.length; _i15++) if (_getFrames8[_i15] === child) return !0;\n return !1;\n }(window, win)) return function(win, timeout, name) {\n void 0 === timeout && (timeout = 5e3);\n void 0 === name && (name = \"Window\");\n var promise = function(win) {\n return windowStore(\"helloPromises\").getOrSet(win, (function() {\n return new promise_ZalgoPromise;\n }));\n }(win);\n -1 !== timeout && (promise = promise.timeout(timeout, new Error(name + \" did not load after \" + timeout + \"ms\")));\n return promise;\n }(win, childTimeout);\n })).then((function(_temp) {\n return function(win, targetDomain, actualDomain, _ref) {\n var send = _ref.send;\n return promise_ZalgoPromise.try((function() {\n return \"string\" == typeof targetDomain ? targetDomain : promise_ZalgoPromise.try((function() {\n return actualDomain || sayHello(win, {\n send: send\n }).then((function(_ref2) {\n return _ref2.domain;\n }));\n })).then((function(normalizedDomain) {\n if (!matchDomain(targetDomain, targetDomain)) throw new Error(\"Domain \" + stringify(targetDomain) + \" does not match \" + stringify(targetDomain));\n return normalizedDomain;\n }));\n }));\n }(win, domainMatcher, (void 0 === _temp ? {} : _temp).domain, {\n send: send\n });\n })).then((function(targetDomain) {\n var domain = targetDomain;\n var logName = \"postrobot_method\" === name && data && \"string\" == typeof data.name ? data.name + \"()\" : name;\n var promise = new promise_ZalgoPromise;\n var hash = name + \"_\" + uniqueID();\n if (!fireAndForget) {\n var responseListener = {\n name: name,\n win: win,\n domain: domain,\n promise: promise\n };\n !function(hash, listener) {\n globalStore(\"responseListeners\").set(hash, listener);\n }(hash, responseListener);\n var reqPromises = windowStore(\"requestPromises\").getOrSet(win, (function() {\n return [];\n }));\n reqPromises.push(promise);\n promise.catch((function() {\n !function(hash) {\n globalStore(\"erroredResponseListeners\").set(hash, !0);\n }(hash);\n deleteResponseListener(hash);\n }));\n var totalAckTimeout = function(win) {\n return windowStore(\"knownWindows\").get(win, !1);\n }(win) ? 1e4 : 2e3;\n var totalResTimeout = responseTimeout;\n var ackTimeout = totalAckTimeout;\n var resTimeout = totalResTimeout;\n var interval = function(method, time) {\n var timeout;\n !function loop() {\n timeout = setTimeout((function() {\n !function() {\n if (isWindowClosed(win)) return promise.reject(new Error(\"Window closed for \" + name + \" before \" + (responseListener.ack ? \"response\" : \"ack\")));\n if (responseListener.cancelled) return promise.reject(new Error(\"Response listener was cancelled for \" + name));\n ackTimeout = Math.max(ackTimeout - 500, 0);\n -1 !== resTimeout && (resTimeout = Math.max(resTimeout - 500, 0));\n responseListener.ack || 0 !== ackTimeout ? 0 === resTimeout && promise.reject(new Error(\"No response for postMessage \" + logName + \" in \" + getDomain() + \" in \" + totalResTimeout + \"ms\")) : promise.reject(new Error(\"No ack for postMessage \" + logName + \" in \" + getDomain() + \" in \" + totalAckTimeout + \"ms\"));\n }();\n loop();\n }), 500);\n }();\n return {\n cancel: function() {\n clearTimeout(timeout);\n }\n };\n }();\n promise.finally((function() {\n interval.cancel();\n reqPromises.splice(reqPromises.indexOf(promise, 1));\n })).catch(src_util_noop);\n }\n return send_sendMessage(win, domain, {\n id: uniqueID(),\n origin: getDomain(window),\n type: \"postrobot_message_request\",\n hash: hash,\n name: name,\n data: data,\n fireAndForget: fireAndForget\n }, {\n on: on_on,\n send: send\n }).then((function() {\n return fireAndForget ? promise.resolve() : promise;\n }), (function(err) {\n throw new Error(\"Send request message failed for \" + logName + \" in \" + getDomain() + \"\\n\\n\" + stringifyError(err));\n }));\n }));\n }));\n };\n function setup_serializeMessage(destination, domain, obj) {\n return serializeMessage(destination, domain, obj, {\n on: on_on,\n send: send_send\n });\n }\n function setup_deserializeMessage(source, origin, message) {\n return deserializeMessage(source, origin, message, {\n on: on_on,\n send: send_send\n });\n }\n function createProxyWindow(win) {\n return new window_ProxyWindow({\n send: send_send,\n win: win\n });\n }\n function setup_toProxyWindow(win) {\n return window_ProxyWindow.toProxyWindow(win, {\n send: send_send\n });\n }\n function setup() {\n if (!global_getGlobal().initialized) {\n global_getGlobal().initialized = !0;\n on = (_ref3 = {\n on: on_on,\n send: send_send\n }).on, send = _ref3.send, (global = global_getGlobal()).receiveMessage = global.receiveMessage || function(message) {\n return receive_receiveMessage(message, {\n on: on,\n send: send\n });\n };\n !function(_ref5) {\n var on = _ref5.on, send = _ref5.send;\n globalStore().getOrSet(\"postMessageListener\", (function() {\n return function(obj, event, handler) {\n obj.addEventListener(\"message\", handler);\n return {\n cancel: function() {\n obj.removeEventListener(\"message\", handler);\n }\n };\n }(window, 0, (function(event) {\n !function(event, _ref4) {\n var on = _ref4.on, send = _ref4.send;\n promise_ZalgoPromise.try((function() {\n var source = event.source || event.sourceElement;\n var origin = event.origin || event.originalEvent && event.originalEvent.origin;\n var data = event.data;\n \"null\" === origin && (origin = \"file://\");\n if (source) {\n if (!origin) throw new Error(\"Post message did not have origin domain\");\n receive_receiveMessage({\n source: source,\n origin: origin,\n data: data\n }, {\n on: on,\n send: send\n });\n }\n }));\n }(event, {\n on: on,\n send: send\n });\n }));\n }));\n }({\n on: on_on,\n send: send_send\n });\n !function(_ref8) {\n var on = _ref8.on, send = _ref8.send;\n globalStore(\"builtinListeners\").getOrSet(\"helloListener\", (function() {\n var listener = on(\"postrobot_hello\", {\n domain: \"*\"\n }, (function(_ref3) {\n resolveHelloPromise(_ref3.source, {\n domain: _ref3.origin\n });\n return {\n instanceID: getInstanceID()\n };\n }));\n var parent = getAncestor();\n parent && sayHello(parent, {\n send: send\n }).catch((function(err) {}));\n return listener;\n }));\n }({\n on: on_on,\n send: send_send\n });\n }\n var _ref3, on, send, global;\n }\n function destroy() {\n !function() {\n var responseListeners = globalStore(\"responseListeners\");\n for (var _i2 = 0, _responseListeners$ke2 = responseListeners.keys(); _i2 < _responseListeners$ke2.length; _i2++) {\n var hash = _responseListeners$ke2[_i2];\n var listener = responseListeners.get(hash);\n listener && (listener.cancelled = !0);\n responseListeners.del(hash);\n }\n }();\n (listener = globalStore().get(\"postMessageListener\")) && listener.cancel();\n var listener;\n delete window.__post_robot_10_0_46__;\n }\n var src_types_TYPES_0 = !0;\n function cleanUpWindow(win) {\n for (var _i2 = 0, _requestPromises$get2 = windowStore(\"requestPromises\").get(win, []); _i2 < _requestPromises$get2.length; _i2++) _requestPromises$get2[_i2].reject(new Error(\"Window \" + (isWindowClosed(win) ? \"closed\" : \"cleaned up\") + \" before response\")).catch(src_util_noop);\n }\n setup();\n } ]);\n}));","/* @flow */\n\n// $FlowFixMe\nmodule.exports = require('./dist/post-robot'); // eslint-disable-line import/no-commonjs\n\n// $FlowFixMe\nmodule.exports.default = module.exports; // eslint-disable-line import/no-commonjs\n","import type { Selection } from '@content-selector/appTypes'\n\nexport const UI_MESSAGE = 'UI_MESSAGE' as const\n\nexport const UI_API_METHOD_TYPES = {\n UI_SELECT_CONTENT: 'ui_select_content',\n} as const\n\nexport const UI_MESSAGE_TYPES = {\n UI_CONTENT_SELECTED: 'ui_content_selected',\n} as const\n\nexport type SelectContentRequest = Record<string, never> // TODO: allow for more options in the future\nexport type SelectContentResponse = { user_action: 'cancelled' | 'selected'; content?: Selection[] }\n\nexport type UiMessagePayloads = {\n [UI_MESSAGE_TYPES.UI_CONTENT_SELECTED]: Required<SelectContentResponse['content']>\n}\n","import pr from 'post-robot'\n\nimport {\n UI_API_METHOD_TYPES,\n type SelectContentRequest,\n type SelectContentResponse,\n} from '@sdk/api/modules/ui/types.ui'\n\nexport async function ui_select_content(payload: SelectContentRequest = {}): Promise<SelectContentResponse> {\n const response = await pr.send(window.parent, UI_API_METHOD_TYPES.UI_SELECT_CONTENT, payload)\n return <SelectContentResponse>response.data\n}\n","import pr from 'post-robot'\n\nimport type { UI_MESSAGE_TYPES, UiMessagePayloads } from './types.ui'\n\nexport function on(\n type: (typeof UI_MESSAGE_TYPES)[keyof typeof UI_MESSAGE_TYPES],\n handler: (data: UiMessagePayloads[typeof type]) => Promise<void>,\n) {\n const listener = pr.on(type, (e) => handler(e.data))\n\n // return the cleanup function\n return listener.cancel\n}\nexport * from './content.ui'\n","import type { Instance, User } from '@openapi'\n\nexport const ADMIN_MESSAGE = 'ADMIN_MESSAGE' as const\n\nexport const ADMIN_MESSAGE_TYPES = {\n ENV_CHANGED: 'env_changed',\n} as const\n\nexport const ADMIN_API_TYPES = {\n ADMIN_REQUEST: 'ADMIN_REQUEST',\n ADMIN_RESPONSE: 'ADMIN_RESPONSE',\n} as const\n\nexport const ADMIN_API_METHOD_TYPES = {\n GET_ENV: 'get_env',\n} as const\n\nexport type AdminMessagePayloads = {\n [ADMIN_MESSAGE_TYPES.ENV_CHANGED]: AdminEnv\n}\n\nexport type AdminRequest<Payload = any> = {\n id: string\n type: (typeof ADMIN_API_TYPES)['ADMIN_REQUEST']\n body: {\n type: (typeof ADMIN_API_METHOD_TYPES)[keyof typeof ADMIN_API_METHOD_TYPES]\n data: Payload\n }\n}\n\nexport type AdminResponse<Response = any> = {\n id: string\n type: (typeof ADMIN_API_TYPES)['ADMIN_RESPONSE']\n body: Response\n}\n\nexport type AdminMessage<Payload = any> = {\n id: string\n type: typeof ADMIN_MESSAGE\n body: {\n type: (typeof ADMIN_MESSAGE_TYPES)[keyof typeof ADMIN_MESSAGE_TYPES]\n data: Payload\n }\n}\n\n// TODO: Request / message payloads to the admin iframe\n\n// Responses / message payloads from the admin iframe\nexport type AdminEnv = {\n user: User\n token_claims: Record<string, any>\n instance: Instance\n}\n","import { v4 as uuidv4 } from 'uuid'\n\nimport {\n ADMIN_MESSAGE,\n ADMIN_API_TYPES,\n type AdminMessagePayloads,\n type ADMIN_MESSAGE_TYPES,\n type ADMIN_API_METHOD_TYPES,\n type AdminResponse,\n type AdminMessage,\n} from '@lib/sdk/api/modules/admin/types.admin'\n\n/**\n * @description Request / response api for the Admin\n */\nexport interface AdminPromiseOptions {\n timeout?: number\n}\n\nexport function adminPromise<Payload = any, ExpectedReturn = any>(\n method: (typeof ADMIN_API_METHOD_TYPES)[keyof typeof ADMIN_API_METHOD_TYPES],\n data?: Payload,\n options: AdminPromiseOptions = { timeout: 10000 },\n): Promise<ExpectedReturn> {\n return new Promise((resolve, reject) => {\n if (typeof window === 'undefined') {\n reject(new Error('This function cannot be run on the server side.'))\n return\n }\n\n const id = uuidv4()\n const listener = (event: MessageEvent<AdminResponse<ExpectedReturn>>) => {\n if (event.data.type === ADMIN_API_TYPES.ADMIN_RESPONSE && event.data.id === id) {\n window.removeEventListener('message', listener)\n resolve(event.data.body)\n }\n }\n\n window.addEventListener('message', listener)\n window.parent.postMessage(\n {\n type: ADMIN_API_TYPES.ADMIN_REQUEST,\n id,\n body: {\n type: method,\n data: data ?? {},\n },\n },\n '*',\n )\n\n options.timeout &&\n setTimeout(() => {\n window.removeEventListener('message', listener)\n reject(\n new Error(\n `Admin did not respond in the timeframe of ${options.timeout}ms. Check the handler on the Admin side.`,\n ),\n )\n }, options.timeout)\n })\n}\n/**\n * @description Event bus api for the Admin\n */\nconst eventHandlers: Partial<\n Record<(typeof ADMIN_MESSAGE_TYPES)[keyof typeof ADMIN_MESSAGE_TYPES], ((data: any) => void)[]>\n> = {}\n\nexport function on(\n eventName: (typeof ADMIN_MESSAGE_TYPES)[keyof typeof ADMIN_MESSAGE_TYPES],\n handler: (data: AdminMessagePayloads[(typeof ADMIN_MESSAGE_TYPES)[keyof typeof ADMIN_MESSAGE_TYPES]]) => void,\n) {\n if (!eventHandlers[eventName]) {\n eventHandlers[eventName] = []\n }\n\n eventHandlers[eventName]?.push(handler)\n}\n\nexport function off(\n eventName: (typeof ADMIN_MESSAGE_TYPES)[keyof typeof ADMIN_MESSAGE_TYPES],\n handler: (data: AdminMessagePayloads[(typeof ADMIN_MESSAGE_TYPES)[keyof typeof ADMIN_MESSAGE_TYPES]]) => void,\n) {\n if (!eventHandlers[eventName]) return\n\n eventHandlers[eventName] = eventHandlers[eventName]?.filter((h) => h !== handler)\n}\n\nif (typeof window !== 'undefined') {\n window.addEventListener('message', function handleMessage(event: MessageEvent<AdminMessage>): void {\n if (event.data.type !== ADMIN_MESSAGE) return\n\n const handlers = eventHandlers[event.data.body.type]\n if (handlers) {\n handlers.forEach((handler) => handler(event.data.body.data))\n }\n })\n}\n\n// Handler for the parent window\n// window.addEventListener('message', (event) => {\n// if (event.data.type === 'ADMIN_REQUEST' && event.data.body.type === 'GET_ENV') {\n// // Handle the request and post a response\n// // The response should have the same type and id as the request\n// // The body of the response should contain the data returned from the GET_ENV query\n// event.source.postMessage({\n// type: 'ADMIN_RESPONSE',\n// id: event.data.id,\n// body: { /* response data */ }\n// }, '*')\n// }\n// })\n\n// in umd it would be called like:\n// pitcher.useAdmin().get_env().then((env) => {\n// do something with the env data\n// })\n","import { adminPromise } from '@sdk/api/AdminApi'\nimport { ADMIN_API_METHOD_TYPES, type AdminEnv } from '@lib/sdk/api/modules/admin/types.admin'\n\nexport function get_env() {\n return adminPromise<void, AdminEnv>(ADMIN_API_METHOD_TYPES.GET_ENV)\n}\n","import type { Emitter } from './utils/eventEmitter'\nimport type { Favorite, File, Instance, User } from '@openapi'\nimport type { PaginatedData } from '@lib/types/paginatedData'\n\nexport const PITCHER_EVENT = 'PITCHER_EVENT' as const\nexport enum PitcherMessageType {\n REQUEST = 'PITCHER_REQUEST',\n RESPONSE = 'PITCHER_RESPONSE',\n}\nexport enum PitcherResponseStatus {\n OK = 'ok',\n ERROR = 'error',\n}\n\nexport interface PitcherMessage {\n type: typeof PITCHER_EVENT\n request: {\n id: string\n type: string\n body?: Record<string, any>\n }\n}\n\nexport interface ApiOptions {\n logLevel?: 'off' | 'info' | 'debug'\n casing?: 'camel' | 'snake'\n}\n\nexport interface PitcherEnv {\n mode: 'WEB' | 'IOS' | 'WINDOWS' | 'ANDROID'\n pitcher: {\n token_claims: Record<string, any>\n instance: Instance\n user: User\n }\n deviceId: string\n}\n\nexport interface PitcherAPI extends Emitter<ApiEventMap> {\n request(type: string, body: any, callback: () => any): Promise<PitcherResponse>\n}\n\nexport interface PitcherInterface extends Emitter<PitcherEventMap> {\n API: PitcherAPI\n}\n\nexport interface PitcherResponse {\n type: PitcherMessageType.RESPONSE\n request: {\n id: string\n type: string\n }\n response: {\n status: PitcherResponseStatus\n body?: Record<string, any>\n }\n}\n\nexport interface OpenCanvasPitcherEvent {\n account_id?: string\n account_name?: string\n canvas_id?: string\n edit_mode?: 'true' | 'false'\n}\n\nexport interface StartCallPitcherEvent {\n account?: { id: string; name: string }\n canvas_id?: string\n edit_mode?: 'true' | 'false'\n post_action?: string\n post_action_path?: string\n}\n\nexport enum PitcherEventName {\n ENV_CHANGED = 'env_changed',\n PHOTOS_CAPTURED = 'photos_captured',\n FILE_DOWNLOADED = 'file_downloaded',\n FILE_UPLOAD_PROGRESS = 'file_upload_progress',\n UPDATE_LOCATION = 'update_location',\n CANVAS_UPDATED = 'canvas_updated',\n}\n\nexport enum PitcherBroadcastedEventName {\n UI_SHOW_MODAL = 'ui:show-modal',\n UI_HIDE_MODAL = 'ui:hide-modal',\n FAVORITES_CHANGED = 'favorites:changed',\n FILE_DOWNLOAD = 'file:download',\n}\n\nexport enum PitcherExternalEventName {\n OPEN_CANVAS = 'open_canvas',\n START_CALL = 'start_call',\n}\n\ninterface UpdateLocation {\n action: string\n}\n\nexport interface LocationRoute {\n path: string\n is_restoring: boolean\n is_mounted: boolean\n}\n\nexport type LocationRoutes = Record<string, LocationRoute>\n\nexport interface UpdateLocationOnRegister extends UpdateLocation {\n action: 'register'\n child_app: string\n parent_app?: string\n}\n\nexport interface UpdateLocationOnUnregister extends UpdateLocation {\n action: 'unregister'\n app: string\n}\n\nexport interface UpdateLocationOnUpdate extends UpdateLocation {\n action: 'update'\n routes: Record<string, Omit<LocationRoute, 'is_restoring' | 'is_mounted'>>\n}\n\nexport interface UpdateLocationOnMounted extends UpdateLocation {\n action: 'mounted'\n app: string\n}\n\nexport interface UpdateLocationOnRestore extends UpdateLocation {\n action: 'restore'\n routes: Record<string, Omit<LocationRoute, 'is_mounted'>>\n}\n\nexport interface UpdateLocationOnRestoreCompleted extends UpdateLocation {\n action: 'restore_completed'\n app: string\n}\n\nexport type UpdateLocationPitcherEvent =\n | UpdateLocationOnUnregister\n | UpdateLocationOnRestore\n | UpdateLocationOnUpdate\n | UpdateLocationOnRegister\n | UpdateLocationOnRestoreCompleted\n | UpdateLocationOnMounted\n\nexport interface PitcherEventMap {\n [PitcherEventName.ENV_CHANGED]: PitcherEnv\n [PitcherEventName.PHOTOS_CAPTURED]: void\n [PitcherEventName.FILE_DOWNLOADED]: File\n [PitcherEventName.FILE_UPLOAD_PROGRESS]: { upload_uid: string; progress: number }\n [PitcherEventName.CANVAS_UPDATED]: Record<string, any>\n [PitcherEventName.UPDATE_LOCATION]: UpdateLocationPitcherEvent\n // broadcasted requests\n [PitcherBroadcastedEventName.UI_SHOW_MODAL]: void\n [PitcherBroadcastedEventName.UI_HIDE_MODAL]: void\n [PitcherBroadcastedEventName.FAVORITES_CHANGED]: { body: PaginatedData<Favorite> }\n [PitcherBroadcastedEventName.FILE_DOWNLOAD]: { body: File['id'] }\n // external link events\n [PitcherExternalEventName.OPEN_CANVAS]: OpenCanvasPitcherEvent\n [PitcherExternalEventName.START_CALL]: StartCallPitcherEvent\n}\n\nexport interface PitcherEvent {\n type: keyof PitcherEventMap\n body: PitcherEventMap[keyof PitcherEventMap]\n}\n\nexport interface ApiEventMap {\n event: PitcherEvent\n}\n","import type { ApiOptions } from './interfaces'\nimport { createHighLevelApi } from '@sdk/api/HighLevelApi'\nimport * as ui from '@sdk/api/modules/ui'\nimport * as adminMethods from '@sdk/api/modules/admin'\nimport { on as adminOn, off as adminOff } from '@sdk/api/AdminApi'\n\nexport * from '@sdk/interfaces'\nexport * from '@sdk/payload.types'\nexport * from '@sdk/api/modules/ui/types.ui'\nexport * from '@sdk/api/modules/admin/types.admin'\n\nexport let highLevelApi: ReturnType<typeof createHighLevelApi>\nexport function usePitcherApi(options?: ApiOptions): ReturnType<typeof createHighLevelApi> {\n if (!highLevelApi) highLevelApi = createHighLevelApi(options)\n\n return highLevelApi\n}\n\nexport function useUi() {\n return ui\n}\n\nconst admin = { ...adminMethods, on: adminOn, off: adminOff }\nexport function useAdmin() {\n return admin\n}\n"],"names":["open","payload","getEnv","updateMyUser","getLanguages","getEvents","highLevelApi","createEvent","updateEvent","deleteEvent","getCanvases","createCanvas","deleteCanvas","updateCanvas","getCanvas","shareCanvas","getFiles","p","downloadFile","getAppConfig","getFile","deleteFile","createFile","selectDeviceFile","search","getUsers","getService","refreshServiceToken","getConnections","connectionLogin","connectionLogout","fetchDocumentInfo","renderPageAsImage","toast","query","getFolder","createFolder","updateFolder","deleteFolder","moveFolderItems","getFavorites","createFavorite","deleteFavorite","notify","track","getInstanceMetadataTemplates","EventEmitter","eventName","fn","f","data","getRandomValues","rnds8","rng","byteToHex","i","unsafeStringify","arr","offset","native","v4","options","buf","rnds","AssertionError","assert","exp","message","freeGlobal","freeGlobal$1","freeSelf","root","Symbol","Symbol$2","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","value","isOwn","tag","unmasked","result","objectToString","nullTag","undefinedTag","baseGetTag","isObjectLike","symbolTag","isSymbol","arrayMap","array","iteratee","index","length","isArray","isArray$1","INFINITY","symbolProto","symbolToString","baseToString","toString","baseSlice","start","end","castSlice","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","hasUnicode","string","asciiToArray","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","unicodeToArray","stringToArray","createCaseFirst","methodName","strSymbols","chr","trailing","upperFirst","upperFirst$1","capitalize","arrayReduce","accumulator","initAccum","basePropertyOf","object","key","deburredLetters","deburrLetter","deburrLetter$1","reLatin","reComboMark","deburr","reAsciiWord","asciiWords","reHasUnicodeWord","hasUnicodeWord","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsBreakRange","rsApos","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsOrdLower","rsOrdUpper","rsEmoji","reUnicodeWord","unicodeWords","words","pattern","guard","reApos","createCompounder","callback","camelCase","word","camelCase$1","snakeCase","snakeCase$1","defaultSkipKeys","defaultSkipObjectKeys","camelCaseKeys","obj","skipKeys","skipObjectKeys","v","newKey","snakeCaseKeys","LowLevelApi","event","id","body","type","resolve","reject","uuid","res","createHighLevelApi","API","eventEmitter","modules","factory","module","this","installedModules","__webpack_require__","moduleId","exports","name","getter","mode","ns","property","__webpack_exports__","promise_ZalgoPromise","src_types_TYPES_0","window_ProxyWindow","setup","destroy","setup_serializeMessage","setup_deserializeMessage","createProxyWindow","setup_toProxyWindow","on_on","on_once","send_send","markWindowKnown","cleanUpWindow","isRegex","item","IE_WIN_ACCESS_ERROR","getActualProtocol","win","getProtocol","protocol","isAboutProtocol","getParent","getOpener","canReadFromWindow","getActualDomain","location","parent","host","getDomain","domain","isSameDomain","desc","assertSameDomain","isAncestorParent","child","childParent","getFrames","frames","len","frame","_i","_frame","iframeWindows","iframeFrames","isWindowClosed","allowMock","err","iframeIndex","collection","doc","getAncestor","matchDomain","origin","subpattern","isWindow","getFrameForWindow","_i21","_document$querySelect2","closeWindow","utils_isPromise","_toString","dispatchedErrors","possiblyUnhandledPromiseHandlers","activeCount","flushPromise","flushActive","promise","startActive","endActive","ZalgoPromise","handler","_this","_result","_error","resolved","rejected","isAsync","_proto","error","_this2","_err","j","handlers","chain","firstPromise","secondPromise","_handlers$i","onSuccess","onError","_result2","promiseResult","onFinally","time","_this3","timeout","promises","count","results","prom","awaitPromises","_loop","items","method","context","args","_delay","Zalgo","util_safeIndexOf","weakmap_CrossDomainSafeWeakMap","CrossDomainSafeWeakMap","testWeakMap","testKey","weakmap","keys","entry","values","getFunctionName","setFunctionName","uniqueID","chars","str","m","p1","objectIDs","serializeArgs","subkey","val","uid","getEmptyObject","memoizeGlobalIndex","memoizeGlobalIndexValidFrom","memoize","_options$thisNamespac","thisNamespace","cacheTime","simpleCache","thisCache","memoizeIndex","memoizedFunction","_len","_key","cache","cacheKey","cacheResult","memoizePromise","memoizedPromiseFunction","_arguments","_len2","_key2","src_util_noop","stringifyError","level","stack","newErr","stringify","util_isRegex","util_getOrSet","getBody","isDocumentReady","isDocumentInteractive","interval","currentScript","getCurrentScript","stackDetails","scriptLocation","_i22","_Array$prototype$slic2","script","currentUID","hashedString","hash","total","global_getGlobal","globalKey","getObj","globalStore","defStore","store","storeKey","defVal","WildCard","getWildcard","global","windowStore","winStore","getStore","getInstanceID","resolveHelloPromise","_ref","helloPromises","existingPromise","newPromise","sayHello","_ref4","_ref5","instanceID","getWindowInstanceID","_ref6","send","_ref7","isSerializedType","determineType","serializeType","_SERIALIZER","SERIALIZER","defaultSerializers","_DESERIALIZER","DESERIALIZER","_ref2","code","defaultDeserializers","cleanupProxyWindows","idToProxyWindow","_i2","_idToProxyWindow$keys2","getSerializedWindow","winPromise","_ref$id","windowNamePromise","windowTypePromise","window","getName","href","opts","_opts$method","_ref3","url","target","_ref3$method","form","_i24","_Object$keys4","_body$key","input","sameDomain","ProxyWindow","serializedWindow","_this4","isPopupPromise","getNamePromise","reopenPromise","focusPromise","_this5","match","_ref8","_ref9","actualWindow","addMethod","source","methodStore","proxyWindowMethods","lookupMethod","function_serializeFunction","destination","on","meth","methodSource","arg","serializeMessage","_serialize","serializers","serializer","deserializeMessage","_deserialize","deserializers","deserializer","serializedPromise","serializedFunction","getDeserializedFunction","crossDomainFunctionWrapper","_args","SEND_MESSAGE_STRATEGIES","serializedMessage","send_sendMessage","domainBuffer","strategies","errors","strategyName","getResponseListener","deleteResponseListener","isResponseListenerErrored","getRequestListener","requestListeners","_i4","winQualifier","nameListeners","domainListeners","_i6","_domainListeners$__DO2","_domainListeners$__DO3","listener","handleRequest","logName","sendResponse","ack","handleAck","handleResponse","receive_receiveMessage","receivedMessages","messages","parsedMessage","parseMessages","requestListener","addRequestListener","winCandidate","requestListenerPromise","actualWin","listenersCollection","_i8","_win2","_i10","_listenersCollection","_i12","_domain2","_i14","existingListener","strDomain","winNameListeners","winNameDomainListeners","winNameDomainRegexListeners","winNameDomainRegexListener","winOrProxyWin","domainMatcher","responseTimeout","childTimeout","fireAndForget","actualParent","_i7","_getAllChildFrames4","getAllChildFrames","_i3","_getFrames2","_i5","_getAllChildFrames2","_i15","_getFrames8","_temp","targetDomain","actualDomain","normalizedDomain","responseListener","reqPromises","totalAckTimeout","totalResTimeout","ackTimeout","resTimeout","loop","responseListeners","_responseListeners$ke2","_requestPromises$get2","require$$0","UI_MESSAGE","UI_API_METHOD_TYPES","UI_MESSAGE_TYPES","ui_select_content","pr","e","ADMIN_MESSAGE","ADMIN_MESSAGE_TYPES","ADMIN_API_TYPES","ADMIN_API_METHOD_TYPES","adminPromise","uuidv4","eventHandlers","off","h","get_env","PITCHER_EVENT","PitcherMessageType","PitcherResponseStatus","PitcherEventName","PitcherBroadcastedEventName","PitcherExternalEventName","usePitcherApi","useUi","admin","adminMethods","adminOn","adminOff","useAdmin"],"mappings":"mOAEgB,SAAAA,GAAKC,EAA8B,GAAqB,CACtE,OAAO,KAAK,IAAI,QAAQ,OAAQA,CAAO,CACzC,CCDO,SAASC,IAA8B,CACrC,OAAA,KAAK,IAAI,QAAQ,SAAS,CACnC,CAIO,SAASC,GAAaF,EAAyC,CACpE,OAAO,KAAK,IAAI,QAAQ,iBAAkBA,CAAO,CACnD,CCHO,SAASG,IAAoC,CAC3C,OAAA,KAAK,IAAI,QAAQ,eAAe,CACzC,CCNO,SAASC,GAAUJ,EAA+D,CACvF,OAAOK,EAAa,aAAA,IAAI,QAAQ,aAAcL,CAAO,CACvD,CAEO,SAASM,GAAYN,EAAuC,CACjE,OAAOK,EAAa,aAAA,IAAI,QAAQ,eAAgBL,CAAO,CACzD,CAEO,SAASO,GAAYP,EAA8C,CACxE,OAAOK,EAAa,aAAA,IAAI,QAAQ,eAAgBL,CAAO,CACzD,CAEO,SAASQ,GAAYR,EAAwC,CAClE,OAAOK,EAAa,aAAA,IAAI,QAAQ,eAAgBL,CAAO,CACzD,CCdO,SAASS,GAAYT,EAA4D,CACtF,OAAO,KAAK,IAAI,QAAQ,eAAgBA,CAAO,CACjD,CAEO,SAASU,GAAaV,EAA+C,CAC1E,OAAO,KAAK,IAAI,QAAQ,gBAAiBA,CAAO,CAClD,CAEO,SAASW,GAAaX,EAAgD,CAC3E,OAAO,KAAK,IAAI,QAAQ,gBAAiBA,CAAO,CAClD,CAEO,SAASY,GACdZ,EACiB,CACjB,OAAO,KAAK,IAAI,QAAQ,gBAAiBA,CAAO,CAClD,CAEO,SAASa,GAAUb,EAAgD,CACxE,OAAO,KAAK,IAAI,QAAQ,aAAcA,CAAO,CAC/C,CAEO,SAASc,GAAYd,EAAoD,CAC9E,OAAO,KAAK,IAAI,QAAQ,eAAgBA,CAAO,CACjD,CCxBO,SAASe,GAASf,EAAuD,CACxE,MAAAgB,EAAI,CAAE,GAAGhB,GAEf,OAAIgB,EAAE,OACFA,EAAA,KAAO,MAAM,QAAQA,EAAE,IAAI,EAAIA,EAAE,KAAO,CAACA,EAAE,IAAI,GAG/CA,EAAE,eACFA,EAAA,aAAe,MAAM,QAAQA,EAAE,YAAY,EAAIA,EAAE,aAAe,CAACA,EAAE,YAAY,GAG5E,KAAK,IAAI,QAAQ,YAAaA,CAAC,CACxC,CAEO,SAASC,GAAajB,EAAiD,CAC5E,OAAO,KAAK,IAAI,QAAQ,gBAAiBA,CAAO,CAClD,CAEO,SAASkB,GAAalB,EAA6D,CACxF,OAAO,KAAK,IAAI,QAAQ,iBAAkBA,CAAO,CACnD,CAEO,SAASmB,GAAQnB,EAAiE,CACvF,OAAO,KAAK,IAAI,QAAQ,WAAYA,CAAO,CAC7C,CAEO,SAASoB,GAAWpB,EAAuD,CAChF,OAAO,KAAK,IAAI,QAAQ,cAAeA,CAAO,CAChD,CAEO,SAASqB,GAAWrB,EAAmE,CAC5F,OAAO,KAAK,IAAI,QAAQ,cAAeA,CAAO,CAChD,CAEO,SAASsB,IAAwC,CAC/C,OAAA,KAAK,IAAI,QAAQ,oBAAoB,CAC9C,CCtCO,SAASC,GAAOvB,EAAuE,CAC5F,OAAO,KAAK,IAAI,QAAQ,SAAUA,CAAO,CAC3C,CCDO,SAASwB,GAASxB,EAA2C,CAClE,OAAO,KAAK,IAAI,QAAQ,YAAaA,CAAO,CAC9C,CCHO,SAASyB,GAAWzB,EAAwE,CACjG,OAAO,KAAK,IAAI,QAAQ,aAAcA,CAAO,CAC/C,CAEO,SAAS0B,GAAoB1B,EAEgB,CAClD,OAAO,KAAK,IAAI,QAAQ,wBAAyBA,CAAO,CAC1D,CAIO,SAAS2B,IAA0C,CACjD,OAAA,KAAK,IAAI,QAAQ,iBAAiB,CAC3C,CAEO,SAASC,GAAgB5B,EAAkE,CAChG,OAAO,KAAK,IAAI,QAAQ,mBAAoBA,CAAO,CACrD,CAEO,SAAS6B,GAAiB7B,EAAkE,CACjG,OAAO,KAAK,IAAI,QAAQ,oBAAqBA,CAAO,CACtD,CCtBO,SAAS8B,GAAkB9B,EAG/B,CACD,OAAO,KAAK,IAAI,QAAQ,sBAAuBA,CAAO,CACxD,CAEO,SAAS+B,GAAkB/B,EAIT,CACvB,OAAO,KAAK,IAAI,QAAQ,uBAAwBA,CAAO,CACzD,CCfO,SAASgC,GAAMhC,EAA2D,CAC/E,OAAO,KAAK,IAAI,QAAQ,QAASA,CAAO,CAC1C,CCCO,SAASiC,GAAMjC,EAAuB,CAC3C,OAAOK,EAAa,aAAA,IAAI,QAAQ,QAASL,CAAO,CAClD,CCHO,SAASkC,GAAUlC,EAAwC,CAAE,GAAI,QAAmC,CACzG,OAAO,KAAK,IAAI,QAAQ,aAAcA,CAAO,CAC/C,CAEO,SAASmC,GAAanC,EAA4E,CACvG,OAAO,KAAK,IAAI,QAAQ,gBAAiBA,CAAO,CAClD,CAIO,SAASoC,GAAapC,EAAuD,CAClF,OAAO,KAAK,IAAI,QAAQ,gBAAiBA,CAAO,CAClD,CAEO,SAASqC,GAAarC,EAA6D,CACxF,OAAO,KAAK,IAAI,QAAQ,gBAAiBA,CAAO,CAClD,CAEO,SAASsC,GAAgBtC,EAGJ,CAC1B,OAAO,KAAK,IAAI,QAAQ,oBAAqBA,CAAO,CACtD,CCtBO,SAASuC,GAAavC,EAA8D,CACzF,OAAO,KAAK,IAAI,QAAQ,gBAAiBA,CAAO,CAClD,CAEO,SAASwC,GAAexC,EAAmD,CAChF,OAAO,KAAK,IAAI,QAAQ,kBAAmBA,CAAO,CACpD,CAEO,SAASyC,GAAezC,EAAyD,CACtF,OAAO,KAAK,IAAI,QAAQ,kBAAmBA,CAAO,CACpD,CCVO,SAAS0C,GAAO1C,EAA6C,CAC9D,OAACA,EAAQ,OACXA,EAAQ,KAAO,UAGVK,EAAa,aAAA,IAAI,QAAQ,SAAUL,CAAO,CACnD,CCPO,SAAS2C,GAAM3C,EAA+C,CACnE,OAAOK,EAAa,aAAA,IAAI,QAAQ,QAASL,CAAO,CAClD,CCDO,SAAS4C,GACd5C,EACwC,CACxC,OAAO,KAAK,IAAI,QAAQ,kCAAmCA,CAAO,CACpE,0vBCIO,MAAM6C,EAAiE,CAC5E,UAEI,CAAA,EACJ,GAAiCC,EAAgBC,EAAsC,CAChF,KAAA,UAAUD,CAAS,GAAK,KAAK,UAAUA,CAAS,GAAK,CAAA,GAAI,OAAOC,CAAE,CACzE,CACA,IAAkCD,EAAgBC,EAAsC,CACtF,KAAK,UAAUD,CAAS,GAAK,KAAK,UAAUA,CAAS,GAAK,CAAA,GAAI,OAAQE,GAAMA,IAAMD,CAAE,CACtF,CACA,KAAmCD,EAAgBG,EAA0B,EACzE,KAAK,UAAUH,CAAS,GAAK,CAAI,GAAA,QAASC,GAAOA,EAAGE,CAAI,CAAC,CAC7D,CACF,CCrBA,IAAIC,GACJ,MAAMC,GAAQ,IAAI,WAAW,EAAE,EAChB,SAASC,IAAM,CAE5B,GAAI,CAACF,KAEHA,GAAkB,OAAO,OAAW,KAAe,OAAO,iBAAmB,OAAO,gBAAgB,KAAK,MAAM,EAE3G,CAACA,IACH,MAAM,IAAI,MAAM,0GAA0G,EAI9H,OAAOA,GAAgBC,EAAK,CAC9B,CCXA,MAAME,EAAY,CAAA,EAElB,QAASC,EAAI,EAAGA,EAAI,IAAK,EAAEA,EACzBD,EAAU,MAAMC,EAAI,KAAO,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,EAG3C,SAASC,GAAgBC,EAAKC,EAAS,EAAG,CAG/C,OAAOJ,EAAUG,EAAIC,EAAS,CAAC,CAAC,EAAIJ,EAAUG,EAAIC,EAAS,CAAC,CAAC,EAAIJ,EAAUG,EAAIC,EAAS,CAAC,CAAC,EAAIJ,EAAUG,EAAIC,EAAS,CAAC,CAAC,EAAI,IAAMJ,EAAUG,EAAIC,EAAS,CAAC,CAAC,EAAIJ,EAAUG,EAAIC,EAAS,CAAC,CAAC,EAAI,IAAMJ,EAAUG,EAAIC,EAAS,CAAC,CAAC,EAAIJ,EAAUG,EAAIC,EAAS,CAAC,CAAC,EAAI,IAAMJ,EAAUG,EAAIC,EAAS,CAAC,CAAC,EAAIJ,EAAUG,EAAIC,EAAS,CAAC,CAAC,EAAI,IAAMJ,EAAUG,EAAIC,EAAS,EAAE,CAAC,EAAIJ,EAAUG,EAAIC,EAAS,EAAE,CAAC,EAAIJ,EAAUG,EAAIC,EAAS,EAAE,CAAC,EAAIJ,EAAUG,EAAIC,EAAS,EAAE,CAAC,EAAIJ,EAAUG,EAAIC,EAAS,EAAE,CAAC,EAAIJ,EAAUG,EAAIC,EAAS,EAAE,CAAC,CACnf,CCfe,MAAAC,GAAA,CACb,WAFiB,OAAO,OAAW,KAAe,OAAO,YAAc,OAAO,WAAW,KAAK,MAAM,CAGtG,ECCA,SAASC,GAAGC,EAASC,EAAKJ,EAAQ,CAChC,GAAIC,GAAO,YAAc,CAACG,GAAO,CAACD,EAChC,OAAOF,GAAO,aAGhBE,EAAUA,GAAW,GACrB,MAAME,EAAOF,EAAQ,SAAWA,EAAQ,KAAOR,MAK/C,GAHAU,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAI,GAAO,GAC3BA,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAI,GAAO,IAEvBD,EAAK,CACPJ,EAASA,GAAU,EAEnB,QAASH,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACxBO,EAAIJ,EAASH,CAAC,EAAIQ,EAAKR,CAAC,EAG1B,OAAOO,CACR,CAED,OAAON,GAAgBO,CAAI,CAC7B,CC1BO,MAAMC,WAAuB,KAAM,CAAC,CAE3B,SAAAC,GAAOC,EAAcC,EAAiB,CACpD,GAAI,CAACD,EACG,MAAA,IAAIF,GAAeG,CAAO,CAEpC,CCLA,IAAIC,GAAa,OAAO,QAAU,UAAY,QAAU,OAAO,SAAW,QAAU,OAEpF,MAAAC,GAAeD,GCAf,IAAIE,GAAW,OAAO,MAAQ,UAAY,MAAQ,KAAK,SAAW,QAAU,KAGxEC,GAAOH,IAAcE,IAAY,SAAS,aAAa,EAAC,ECHxDE,GDKWD,GCLG,OAElB,MAAAE,GAAeD,GCFf,IAAIE,GAAc,OAAO,UAGrBC,GAAiBD,GAAY,eAO7BE,GAAuBF,GAAY,SAGnCG,GAAiBL,GAASA,GAAO,YAAc,OASnD,SAASM,GAAUC,EAAO,CACxB,IAAIC,EAAQL,GAAe,KAAKI,EAAOF,EAAc,EACjDI,EAAMF,EAAMF,EAAc,EAE9B,GAAI,CACFE,EAAMF,EAAc,EAAI,OACxB,IAAIK,EAAW,EACnB,MAAc,CAAE,CAEd,IAAIC,EAASP,GAAqB,KAAKG,CAAK,EAC5C,OAAIG,IACEF,EACFD,EAAMF,EAAc,EAAII,EAExB,OAAOF,EAAMF,EAAc,GAGxBM,CACT,CC1CA,IAAIT,GAAc,OAAO,UAOrBE,GAAuBF,GAAY,SASvC,SAASU,GAAeL,EAAO,CAC7B,OAAOH,GAAqB,KAAKG,CAAK,CACxC,CCdA,IAAIM,GAAU,gBACVC,GAAe,qBAGfT,GAAiBL,GAASA,GAAO,YAAc,OASnD,SAASe,GAAWR,EAAO,CACzB,OAAIA,GAAS,KACJA,IAAU,OAAYO,GAAeD,GAEtCR,IAAkBA,MAAkB,OAAOE,CAAK,EACpDD,GAAUC,CAAK,EACfK,GAAeL,CAAK,CAC1B,CCDA,SAASS,GAAaT,EAAO,CAC3B,OAAOA,GAAS,MAAQ,OAAOA,GAAS,QAC1C,CCtBA,IAAIU,GAAY,kBAmBhB,SAASC,GAASX,EAAO,CACvB,OAAO,OAAOA,GAAS,UACpBS,GAAaT,CAAK,GAAKQ,GAAWR,CAAK,GAAKU,EACjD,CCjBA,SAASE,GAASC,EAAOC,EAAU,CAKjC,QAJIC,EAAQ,GACRC,EAASH,GAAS,KAAO,EAAIA,EAAM,OACnCT,EAAS,MAAMY,CAAM,EAElB,EAAED,EAAQC,GACfZ,EAAOW,CAAK,EAAID,EAASD,EAAME,CAAK,EAAGA,EAAOF,CAAK,EAErD,OAAOT,CACT,CCKA,IAAIa,GAAU,MAAM,QAEpB,MAAAC,GAAeD,GCnBf,IAAIE,GAAW,EAAI,EAGfC,GAAc3B,GAASA,GAAO,UAAY,OAC1C4B,GAAiBD,GAAcA,GAAY,SAAW,OAU1D,SAASE,GAAatB,EAAO,CAE3B,GAAI,OAAOA,GAAS,SAClB,OAAOA,EAET,GAAIiB,GAAQjB,CAAK,EAEf,OAAOY,GAASZ,EAAOsB,EAAY,EAAI,GAEzC,GAAIX,GAASX,CAAK,EAChB,OAAOqB,GAAiBA,GAAe,KAAKrB,CAAK,EAAI,GAEvD,IAAII,EAAUJ,EAAQ,GACtB,OAAQI,GAAU,KAAQ,EAAIJ,GAAU,CAACmB,GAAY,KAAOf,CAC9D,CCXA,SAASmB,GAASvB,EAAO,CACvB,OAAOA,GAAS,KAAO,GAAKsB,GAAatB,CAAK,CAChD,CChBA,SAASwB,GAAUX,EAAOY,EAAOC,EAAK,CACpC,IAAIX,EAAQ,GACRC,EAASH,EAAM,OAEfY,EAAQ,IACVA,EAAQ,CAACA,EAAQT,EAAS,EAAKA,EAASS,GAE1CC,EAAMA,EAAMV,EAASA,EAASU,EAC1BA,EAAM,IACRA,GAAOV,GAETA,EAASS,EAAQC,EAAM,EAAMA,EAAMD,IAAW,EAC9CA,KAAW,EAGX,QADIrB,EAAS,MAAMY,CAAM,EAClB,EAAED,EAAQC,GACfZ,EAAOW,CAAK,EAAIF,EAAME,EAAQU,CAAK,EAErC,OAAOrB,CACT,CCjBA,SAASuB,GAAUd,EAAOY,EAAOC,EAAK,CACpC,IAAIV,EAASH,EAAM,OACnB,OAAAa,EAAMA,IAAQ,OAAYV,EAASU,EAC3B,CAACD,GAASC,GAAOV,EAAUH,EAAQW,GAAUX,EAAOY,EAAOC,CAAG,CACxE,CCdA,IAAIE,GAAgB,kBAChBC,GAAoB,kBACpBC,GAAwB,kBACxBC,GAAsB,kBACtBC,GAAeH,GAAoBC,GAAwBC,GAC3DE,GAAa,iBAGbC,GAAQ,UAGRC,GAAe,OAAO,IAAMD,GAAQN,GAAiBI,GAAeC,GAAa,GAAG,EASxF,SAASG,GAAWC,EAAQ,CAC1B,OAAOF,GAAa,KAAKE,CAAM,CACjC,CChBA,SAASC,GAAaD,EAAQ,CAC5B,OAAOA,EAAO,MAAM,EAAE,CACxB,CCRA,IAAIT,GAAgB,kBAChBC,GAAoB,kBACpBC,GAAwB,kBACxBC,GAAsB,kBACtBC,GAAeH,GAAoBC,GAAwBC,GAC3DE,GAAa,iBAGbM,GAAW,IAAMX,GAAgB,IACjCY,GAAU,IAAMR,GAAe,IAC/BS,GAAS,2BACTC,GAAa,MAAQF,GAAU,IAAMC,GAAS,IAC9CE,GAAc,KAAOf,GAAgB,IACrCgB,GAAa,kCACbC,GAAa,qCACbX,GAAQ,UAGRY,GAAWJ,GAAa,IACxBK,GAAW,IAAMd,GAAa,KAC9Be,GAAY,MAAQd,GAAQ,MAAQ,CAACS,GAAaC,GAAYC,EAAU,EAAE,KAAK,GAAG,EAAI,IAAME,GAAWD,GAAW,KAClHG,GAAQF,GAAWD,GAAWE,GAC9BE,GAAW,MAAQ,CAACP,GAAcH,GAAU,IAAKA,GAASI,GAAYC,GAAYN,EAAQ,EAAE,KAAK,GAAG,EAAI,IAGxGY,GAAY,OAAOV,GAAS,MAAQA,GAAS,KAAOS,GAAWD,GAAO,GAAG,EAS7E,SAASG,GAAef,EAAQ,CAC9B,OAAOA,EAAO,MAAMc,EAAS,GAAK,CAAA,CACpC,CC1BA,SAASE,GAAchB,EAAQ,CAC7B,OAAOD,GAAWC,CAAM,EACpBe,GAAef,CAAM,EACrBC,GAAaD,CAAM,CACzB,CCHA,SAASiB,GAAgBC,EAAY,CACnC,OAAO,SAASlB,EAAQ,CACtBA,EAASd,GAASc,CAAM,EAExB,IAAImB,EAAapB,GAAWC,CAAM,EAC9BgB,GAAchB,CAAM,EACpB,OAEAoB,EAAMD,EACNA,EAAW,CAAC,EACZnB,EAAO,OAAO,CAAC,EAEfqB,EAAWF,EACX7B,GAAU6B,EAAY,CAAC,EAAE,KAAK,EAAE,EAChCnB,EAAO,MAAM,CAAC,EAElB,OAAOoB,EAAIF,CAAU,EAAG,EAAGG,CAC/B,CACA,CCXA,IAAIC,GAAaL,GAAgB,aAAa,EAE9C,MAAAM,GAAeD,GCHf,SAASE,GAAWxB,EAAQ,CAC1B,OAAOsB,GAAWpC,GAASc,CAAM,EAAE,YAAa,CAAA,CAClD,CCRA,SAASyB,GAAYjD,EAAOC,EAAUiD,EAAaC,EAAW,CAC5D,IAAIjD,EAAQ,GACRC,EAASH,GAAS,KAAO,EAAIA,EAAM,OAKvC,IAHImD,GAAahD,IACf+C,EAAclD,EAAM,EAAEE,CAAK,GAEtB,EAAEA,EAAQC,GACf+C,EAAcjD,EAASiD,EAAalD,EAAME,CAAK,EAAGA,EAAOF,CAAK,EAEhE,OAAOkD,CACT,CChBA,SAASE,GAAeC,EAAQ,CAC9B,OAAO,SAASC,EAAK,CACnB,OAAoCD,IAAOC,CAAG,CAClD,CACA,CCRA,IAAIC,GAAkB,CAEpB,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAC1E,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAC1E,EAAQ,IAAM,EAAQ,IACtB,EAAQ,IAAM,EAAQ,IACtB,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IACtB,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAC1E,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAC1E,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IACnC,EAAQ,KAAM,EAAQ,KACtB,EAAQ,KAAM,EAAQ,KACtB,EAAQ,KAER,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAC1B,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACtF,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACtF,EAAU,IAAM,EAAU,IAC1B,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACz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","x_google_ignoreList":[18,19,20,21,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,58,59]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pitcher/js-api",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "type": "module",
5
5
  "main": "js-api.umd.min.js",
6
6
  "sideEffects": false