@corti/embedded-web 0.1.0-alpha.1
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/LICENSE +21 -0
- package/README.md +273 -0
- package/dist/CortiEmbedded.d.ts +102 -0
- package/dist/CortiEmbedded.js +452 -0
- package/dist/CortiEmbedded.js.map +1 -0
- package/dist/bundle.js +96 -0
- package/dist/corti-embedded.d.ts +1 -0
- package/dist/corti-embedded.js +5 -0
- package/dist/corti-embedded.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/internal-types.d.ts +231 -0
- package/dist/internal-types.js +2 -0
- package/dist/internal-types.js.map +1 -0
- package/dist/public-types.d.ts +238 -0
- package/dist/public-types.js +2 -0
- package/dist/public-types.js.map +1 -0
- package/dist/react/CortiEmbeddedReact.d.ts +25 -0
- package/dist/react/CortiEmbeddedReact.js +28 -0
- package/dist/react/CortiEmbeddedReact.js.map +1 -0
- package/dist/react/index.d.ts +2 -0
- package/dist/react/index.js +2 -0
- package/dist/react/index.js.map +1 -0
- package/dist/styles/base.d.ts +4 -0
- package/dist/styles/base.js +10 -0
- package/dist/styles/base.js.map +1 -0
- package/dist/styles/container-styles.d.ts +1 -0
- package/dist/styles/container-styles.js +35 -0
- package/dist/styles/container-styles.js.map +1 -0
- package/dist/styles/theme.d.ts +2 -0
- package/dist/styles/theme.js +101 -0
- package/dist/styles/theme.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/utils/PostMessageHandler.d.ts +119 -0
- package/dist/utils/PostMessageHandler.js +353 -0
- package/dist/utils/PostMessageHandler.js.map +1 -0
- package/dist/utils/baseUrl.d.ts +1 -0
- package/dist/utils/baseUrl.js +25 -0
- package/dist/utils/baseUrl.js.map +1 -0
- package/dist/utils/embedUrl.d.ts +2 -0
- package/dist/utils/embedUrl.js +23 -0
- package/dist/utils/embedUrl.js.map +1 -0
- package/dist/utils/errorFormatter.d.ts +10 -0
- package/dist/utils/errorFormatter.js +163 -0
- package/dist/utils/errorFormatter.js.map +1 -0
- package/dist/web-bundle.js +89 -0
- package/dist/web-index.d.ts +3 -0
- package/dist/web-index.js +3 -0
- package/dist/web-index.js.map +1 -0
- package/package.json +129 -0
package/dist/bundle.js
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
var N=globalThis,I=N.ShadowRoot&&(N.ShadyCSS===void 0||N.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,J=Symbol(),he=new WeakMap,C=class{constructor(e,t,s){if(this._$cssResult$=!0,s!==J)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o,t=this.t;if(I&&e===void 0){let s=t!==void 0&&t.length===1;s&&(e=he.get(t)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),s&&he.set(t,e))}return e}toString(){return this.cssText}},le=r=>new C(typeof r=="string"?r:r+"",void 0,J),M=(r,...e)=>{let t=r.length===1?r[0]:e.reduce(((s,i,o)=>s+(n=>{if(n._$cssResult$===!0)return n.cssText;if(typeof n=="number")return n;throw Error("Value passed to 'css' function must be a 'css' function result: "+n+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+r[o+1]),r[0]);return new C(t,r,J)},pe=(r,e)=>{if(I)r.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(let t of e){let s=document.createElement("style"),i=N.litNonce;i!==void 0&&s.setAttribute("nonce",i),s.textContent=t.cssText,r.appendChild(s)}},K=I?r=>r:r=>r instanceof CSSStyleSheet?(e=>{let t="";for(let s of e.cssRules)t+=s.cssText;return le(t)})(r):r;var{is:De,defineProperty:Te,getOwnPropertyDescriptor:Ne,getOwnPropertyNames:Ie,getOwnPropertySymbols:ke,getPrototypeOf:qe}=Object,k=globalThis,ue=k.trustedTypes,Be=ue?ue.emptyScript:"",je=k.reactiveElementPolyfillSupport,x=(r,e)=>r,U={toAttribute(r,e){switch(e){case Boolean:r=r?Be:null;break;case Object:case Array:r=r==null?r:JSON.stringify(r)}return r},fromAttribute(r,e){let t=r;switch(e){case Boolean:t=r!==null;break;case Number:t=r===null?null:Number(r);break;case Object:case Array:try{t=JSON.parse(r)}catch{t=null}}return t}},q=(r,e)=>!De(r,e),me={attribute:!0,type:String,converter:U,reflect:!1,useDefault:!1,hasChanged:q};Symbol.metadata??=Symbol("metadata"),k.litPropertyMetadata??=new WeakMap;var E=class extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=me){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){let s=Symbol(),i=this.getPropertyDescriptor(e,s,t);i!==void 0&&Te(this.prototype,e,i)}}static getPropertyDescriptor(e,t,s){let{get:i,set:o}=Ne(this.prototype,e)??{get(){return this[t]},set(n){this[t]=n}};return{get:i,set(n){let c=i?.call(this);o?.call(this,n),this.requestUpdate(e,c,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??me}static _$Ei(){if(this.hasOwnProperty(x("elementProperties")))return;let e=qe(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(x("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(x("properties"))){let t=this.properties,s=[...Ie(t),...ke(t)];for(let i of s)this.createProperty(i,t[i])}let e=this[Symbol.metadata];if(e!==null){let t=litPropertyMetadata.get(e);if(t!==void 0)for(let[s,i]of t)this.elementProperties.set(s,i)}this._$Eh=new Map;for(let[t,s]of this.elementProperties){let i=this._$Eu(t,s);i!==void 0&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){let t=[];if(Array.isArray(e)){let s=new Set(e.flat(1/0).reverse());for(let i of s)t.unshift(K(i))}else e!==void 0&&t.push(K(e));return t}static _$Eu(e,t){let s=t.attribute;return s===!1?void 0:typeof s=="string"?s:typeof e=="string"?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),this.renderRoot!==void 0&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){let e=new Map,t=this.constructor.elementProperties;for(let s of t.keys())this.hasOwnProperty(s)&&(e.set(s,this[s]),delete this[s]);e.size>0&&(this._$Ep=e)}createRenderRoot(){let e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return pe(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,t,s){this._$AK(e,s)}_$ET(e,t){let s=this.constructor.elementProperties.get(e),i=this.constructor._$Eu(e,s);if(i!==void 0&&s.reflect===!0){let o=(s.converter?.toAttribute!==void 0?s.converter:U).toAttribute(t,s.type);this._$Em=e,o==null?this.removeAttribute(i):this.setAttribute(i,o),this._$Em=null}}_$AK(e,t){let s=this.constructor,i=s._$Eh.get(e);if(i!==void 0&&this._$Em!==i){let o=s.getPropertyOptions(i),n=typeof o.converter=="function"?{fromAttribute:o.converter}:o.converter?.fromAttribute!==void 0?o.converter:U;this._$Em=i;let c=n.fromAttribute(t,o.type);this[i]=c??this._$Ej?.get(i)??c,this._$Em=null}}requestUpdate(e,t,s){if(e!==void 0){let i=this.constructor,o=this[e];if(s??=i.getPropertyOptions(e),!((s.hasChanged??q)(o,t)||s.useDefault&&s.reflect&&o===this._$Ej?.get(e)&&!this.hasAttribute(i._$Eu(e,s))))return;this.C(e,t,s)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(e,t,{useDefault:s,reflect:i,wrapped:o},n){s&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,n??t??this[e]),o!==!0||n!==void 0)||(this._$AL.has(e)||(this.hasUpdated||s||(t=void 0),this._$AL.set(e,t)),i===!0&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}let e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[i,o]of this._$Ep)this[i]=o;this._$Ep=void 0}let s=this.constructor.elementProperties;if(s.size>0)for(let[i,o]of s){let{wrapped:n}=o,c=this[i];n!==!0||this._$AL.has(i)||c===void 0||this.C(i,void 0,o,c)}}let e=!1,t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach((s=>s.hostUpdate?.())),this.update(t)):this._$EM()}catch(s){throw e=!1,this._$EM(),s}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(e){}firstUpdated(e){}};E.elementStyles=[],E.shadowRootOptions={mode:"open"},E[x("elementProperties")]=new Map,E[x("finalized")]=new Map,je?.({ReactiveElement:E}),(k.reactiveElementVersions??=[]).push("2.1.1");var te=globalThis,B=te.trustedTypes,fe=B?B.createPolicy("lit-html",{createHTML:r=>r}):void 0,_e="$lit$",v=`lit$${Math.random().toFixed(9).slice(2)}$`,we="?"+v,ze=`<${we}>`,b=document,O=()=>b.createComment(""),P=r=>r===null||typeof r!="object"&&typeof r!="function",se=Array.isArray,Fe=r=>se(r)||typeof r?.[Symbol.iterator]=="function",G=`[
|
|
2
|
+
\f\r]`,L=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,ge=/-->/g,ye=/>/g,_=RegExp(`>|${G}(?:([^\\s"'>=/]+)(${G}*=${G}*(?:[^
|
|
3
|
+
\f\r"'\`<>=]|("|')|))|$)`,"g"),Ee=/'/g,ve=/"/g,be=/^(?:script|style|textarea|title)$/i,re=r=>(e,...t)=>({_$litType$:r,strings:e,values:t}),ie=re(1),rt=re(2),it=re(3),A=Symbol.for("lit-noChange"),u=Symbol.for("lit-nothing"),$e=new WeakMap,w=b.createTreeWalker(b,129);function Ae(r,e){if(!se(r)||!r.hasOwnProperty("raw"))throw Error("invalid template strings array");return fe!==void 0?fe.createHTML(e):e}var We=(r,e)=>{let t=r.length-1,s=[],i,o=e===2?"<svg>":e===3?"<math>":"",n=L;for(let c=0;c<t;c++){let a=r[c],l,h,d=-1,f=0;for(;f<a.length&&(n.lastIndex=f,h=n.exec(a),h!==null);)f=n.lastIndex,n===L?h[1]==="!--"?n=ge:h[1]!==void 0?n=ye:h[2]!==void 0?(be.test(h[2])&&(i=RegExp("</"+h[2],"g")),n=_):h[3]!==void 0&&(n=_):n===_?h[0]===">"?(n=i??L,d=-1):h[1]===void 0?d=-2:(d=n.lastIndex-h[2].length,l=h[1],n=h[3]===void 0?_:h[3]==='"'?ve:Ee):n===ve||n===Ee?n=_:n===ge||n===ye?n=L:(n=_,i=void 0);let p=n===_&&r[c+1].startsWith("/>")?" ":"";o+=n===L?a+ze:d>=0?(s.push(l),a.slice(0,d)+_e+a.slice(d)+v+p):a+v+(d===-2?c:p)}return[Ae(r,o+(r[t]||"<?>")+(e===2?"</svg>":e===3?"</math>":"")),s]},H=class r{constructor({strings:e,_$litType$:t},s){let i;this.parts=[];let o=0,n=0,c=e.length-1,a=this.parts,[l,h]=We(e,t);if(this.el=r.createElement(l,s),w.currentNode=this.el.content,t===2||t===3){let d=this.el.content.firstChild;d.replaceWith(...d.childNodes)}for(;(i=w.nextNode())!==null&&a.length<c;){if(i.nodeType===1){if(i.hasAttributes())for(let d of i.getAttributeNames())if(d.endsWith(_e)){let f=h[n++],p=i.getAttribute(d).split(v),m=/([.?@])?(.*)/.exec(f);a.push({type:1,index:o,name:m[2],strings:p,ctor:m[1]==="."?Q:m[1]==="?"?X:m[1]==="@"?Y:R}),i.removeAttribute(d)}else d.startsWith(v)&&(a.push({type:6,index:o}),i.removeAttribute(d));if(be.test(i.tagName)){let d=i.textContent.split(v),f=d.length-1;if(f>0){i.textContent=B?B.emptyScript:"";for(let p=0;p<f;p++)i.append(d[p],O()),w.nextNode(),a.push({type:2,index:++o});i.append(d[f],O())}}}else if(i.nodeType===8)if(i.data===we)a.push({type:2,index:o});else{let d=-1;for(;(d=i.data.indexOf(v,d+1))!==-1;)a.push({type:7,index:o}),d+=v.length-1}o++}}static createElement(e,t){let s=b.createElement("template");return s.innerHTML=e,s}};function S(r,e,t=r,s){if(e===A)return e;let i=s!==void 0?t._$Co?.[s]:t._$Cl,o=P(e)?void 0:e._$litDirective$;return i?.constructor!==o&&(i?._$AO?.(!1),o===void 0?i=void 0:(i=new o(r),i._$AT(r,t,s)),s!==void 0?(t._$Co??=[])[s]=i:t._$Cl=i),i!==void 0&&(e=S(r,i._$AS(r,e.values),i,s)),e}var Z=class{constructor(e,t){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){let{el:{content:t},parts:s}=this._$AD,i=(e?.creationScope??b).importNode(t,!0);w.currentNode=i;let o=w.nextNode(),n=0,c=0,a=s[0];for(;a!==void 0;){if(n===a.index){let l;a.type===2?l=new D(o,o.nextSibling,this,e):a.type===1?l=new a.ctor(o,a.name,a.strings,this,e):a.type===6&&(l=new ee(o,this,e)),this._$AV.push(l),a=s[++c]}n!==a?.index&&(o=w.nextNode(),n++)}return w.currentNode=b,i}p(e){let t=0;for(let s of this._$AV)s!==void 0&&(s.strings!==void 0?(s._$AI(e,s,t),t+=s.strings.length-2):s._$AI(e[t])),t++}},D=class r{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,t,s,i){this.type=2,this._$AH=u,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=s,this.options=i,this._$Cv=i?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode,t=this._$AM;return t!==void 0&&e?.nodeType===11&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=S(this,e,t),P(e)?e===u||e==null||e===""?(this._$AH!==u&&this._$AR(),this._$AH=u):e!==this._$AH&&e!==A&&this._(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):Fe(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==u&&P(this._$AH)?this._$AA.nextSibling.data=e:this.T(b.createTextNode(e)),this._$AH=e}$(e){let{values:t,_$litType$:s}=e,i=typeof s=="number"?this._$AC(e):(s.el===void 0&&(s.el=H.createElement(Ae(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===i)this._$AH.p(t);else{let o=new Z(i,this),n=o.u(this.options);o.p(t),this.T(n),this._$AH=o}}_$AC(e){let t=$e.get(e.strings);return t===void 0&&$e.set(e.strings,t=new H(e)),t}k(e){se(this._$AH)||(this._$AH=[],this._$AR());let t=this._$AH,s,i=0;for(let o of e)i===t.length?t.push(s=new r(this.O(O()),this.O(O()),this,this.options)):s=t[i],s._$AI(o),i++;i<t.length&&(this._$AR(s&&s._$AB.nextSibling,i),t.length=i)}_$AR(e=this._$AA.nextSibling,t){for(this._$AP?.(!1,!0,t);e!==this._$AB;){let s=e.nextSibling;e.remove(),e=s}}setConnected(e){this._$AM===void 0&&(this._$Cv=e,this._$AP?.(e))}},R=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,t,s,i,o){this.type=1,this._$AH=u,this._$AN=void 0,this.element=e,this.name=t,this._$AM=i,this.options=o,s.length>2||s[0]!==""||s[1]!==""?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=u}_$AI(e,t=this,s,i){let o=this.strings,n=!1;if(o===void 0)e=S(this,e,t,0),n=!P(e)||e!==this._$AH&&e!==A,n&&(this._$AH=e);else{let c=e,a,l;for(e=o[0],a=0;a<o.length-1;a++)l=S(this,c[s+a],t,a),l===A&&(l=this._$AH[a]),n||=!P(l)||l!==this._$AH[a],l===u?e=u:e!==u&&(e+=(l??"")+o[a+1]),this._$AH[a]=l}n&&!i&&this.j(e)}j(e){e===u?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}},Q=class extends R{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===u?void 0:e}},X=class extends R{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==u)}},Y=class extends R{constructor(e,t,s,i,o){super(e,t,s,i,o),this.type=5}_$AI(e,t=this){if((e=S(this,e,t,0)??u)===A)return;let s=this._$AH,i=e===u&&s!==u||e.capture!==s.capture||e.once!==s.once||e.passive!==s.passive,o=e!==u&&(s===u||i);i&&this.element.removeEventListener(this.name,this,s),o&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}},ee=class{constructor(e,t,s){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(e){S(this,e)}};var Ve=te.litHtmlPolyfillSupport;Ve?.(H,D),(te.litHtmlVersions??=[]).push("3.3.1");var Se=(r,e,t)=>{let s=t?.renderBefore??e,i=s._$litPart$;if(i===void 0){let o=t?.renderBefore??null;s._$litPart$=i=new D(e.insertBefore(O(),o),o,void 0,t??{})}return i._$AI(r),i};var oe=globalThis,$=class extends E{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){let t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=Se(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return A}};$._$litElement$=!0,$.finalized=!0,oe.litElementHydrateSupport?.({LitElement:$});var Je=oe.litElementPolyfillSupport;Je?.({LitElement:$});(oe.litElementVersions??=[]).push("4.2.1");var Ke={attribute:!0,type:String,converter:U,reflect:!1,hasChanged:q},Ge=(r=Ke,e,t)=>{let{kind:s,metadata:i}=t,o=globalThis.litPropertyMetadata.get(i);if(o===void 0&&globalThis.litPropertyMetadata.set(i,o=new Map),s==="setter"&&((r=Object.create(r)).wrapped=!0),o.set(t.name,r),s==="accessor"){let{name:n}=t;return{set(c){let a=e.get.call(this);e.set.call(this,c),this.requestUpdate(n,a,r)},init(c){return c!==void 0&&this.C(n,void 0,r,c),c}}}if(s==="setter"){let{name:n}=t;return function(c){let a=this[n];e.call(this,c),this.requestUpdate(n,a,r)}}throw Error("Unsupported decorator location: "+s)};function j(r){return(e,t)=>typeof t=="object"?Ge(r,e,t):((s,i,o)=>{let n=i.hasOwnProperty(o);return i.constructor.createProperty(o,s),n?Object.getOwnPropertyDescriptor(i,o):void 0})(r,e,t)}var Re=M`
|
|
4
|
+
* {
|
|
5
|
+
box-sizing: border-box;
|
|
6
|
+
}
|
|
7
|
+
`;var Ce=M`
|
|
8
|
+
:host {
|
|
9
|
+
/* Make the component fill its container completely */
|
|
10
|
+
display: block;
|
|
11
|
+
position: absolute;
|
|
12
|
+
top: 0;
|
|
13
|
+
left: 0;
|
|
14
|
+
right: 0;
|
|
15
|
+
bottom: 0;
|
|
16
|
+
width: 100%;
|
|
17
|
+
height: 100%;
|
|
18
|
+
|
|
19
|
+
margin: 0;
|
|
20
|
+
padding: 0;
|
|
21
|
+
background-color: transparent;
|
|
22
|
+
overflow: hidden;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/* Handle visibility state */
|
|
26
|
+
:host([visibility='hidden']) {
|
|
27
|
+
display: none;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* Ensure iframe fills the entire component */
|
|
31
|
+
iframe {
|
|
32
|
+
width: 100% !important;
|
|
33
|
+
height: 100% !important;
|
|
34
|
+
border: none !important;
|
|
35
|
+
margin: 0 !important;
|
|
36
|
+
padding: 0 !important;
|
|
37
|
+
}
|
|
38
|
+
`;function F(r){let e;try{e=new URL(r)}catch{throw new Error("Invalid baseURL: not a parseable URL")}if(e.protocol!=="https:")throw new Error("Invalid baseURL: must use https");let t=e.host.toLowerCase();if(!/^assistant\.[a-z0-9-]+\.corti\.app$/i.test(t))throw new Error("Invalid baseURL: host must match assistant.xxx.corti.app");if(e.pathname&&e.pathname!=="/"&&e.pathname!=="")throw new Error("Invalid baseURL: must not include a path");if(e.username||e.password)throw new Error("Invalid baseURL: must not include credentials");return e.origin.replace(/\/+$/,"")}function ne(r){return`${r}/embedded`}function Me(r,e){if(!r||r.startsWith("about:"))return!1;try{let t=new URL(r,window.location.href),s=new URL(e);return t.origin!==s.origin?!1:t.pathname.replace(/\/+$/,"")==="/embedded"}catch{return!1}}function Ze(r){try{return JSON.parse(r)}catch{return null}}function W(r){let e=r.match(/\b([1-5]\d{2})\b/);return e?e[1]:void 0}function ae(r){return typeof r=="object"&&r!==null&&("expected"in r||"code"in r||"path"in r||"message"in r)}function ce(r){let{path:e,expected:t,message:s,code:i}=r;if(s)return s;let o=e&&e.length>0?e.join("."):"field";return t?`Invalid ${o}: expected ${t}`:i?`Validation error in ${o} (${i})`:`Validation error in ${o}`}function xe(r){return r.length===0?"Unknown validation error":r.length===1?ce(r[0]):`Multiple validation errors: ${r.map(ce).join("; ")}`}function g(r,e="An error occurred"){if(!r)return{message:e,details:r};if(r instanceof Error){let t=W(r.message);return{message:r.message||e,code:t,details:r}}if(typeof r=="string"){let t=W(r);return{message:r,code:t,details:r}}if(Array.isArray(r)){if(r.every(ae)){let t=r;return{message:xe(t),code:t[0]?.code,details:r}}return{message:`Multiple errors: ${r.length} item(s)`,details:r}}if(typeof r=="object"){let t=r;if(t.message&&typeof t.message=="string"){let s=t.message,{code:i}=t;if(i||(i=W(s)),t.details?.message&&typeof t.details.message=="string"){let o=Ze(t.details.message);Array.isArray(o)&&o.every(ae)&&(s=xe(o))}return{message:s,code:i,details:t.details}}if(ae(t))return{message:ce(t),code:t.code,details:r};if(t.error||t.message||t.detail){let s=t.error||t.message||t.detail,i=typeof s=="string"?s:e,o=t.code||t.status;return!o&&typeof s=="string"&&(o=W(s)),{message:i,code:o,details:r}}}return{message:e,details:r}}var V=class r{constructor(e,t={}){this.pendingRequests=new Map,this.messageListener=null,this.isReady=!1,this.iframe=e,this.callbacks=t,this.setupMessageListener()}setupMessageListener(){this.messageListener=e=>{if(e.source!==this.iframe.contentWindow)return;let t=this.getTrustedOrigin();if(!t||e.origin!==t)return;let{data:s}=e;if(s?.type==="CORTI_EMBEDDED_EVENT"){this.handleEvent(s);return}s.requestId&&this.pendingRequests.has(s.requestId)&&this.handleResponse(s)},window.addEventListener("message",this.messageListener)}handleEvent(e){let t=e.event,{payload:s}=e;switch((t==="ready"||t==="loaded")&&(this.isReady=!0),t){case"ready":case"loaded":this.callbacks.onReady?.();break;case"authChanged":this.callbacks.onAuthChanged?.(s);break;case"interactionCreated":this.callbacks.onInteractionCreated?.(s);break;case"recordingStarted":this.callbacks.onRecordingStarted?.();break;case"recordingStopped":this.callbacks.onRecordingStopped?.();break;case"documentGenerated":this.callbacks.onDocumentGenerated?.(s);break;case"documentUpdated":this.callbacks.onDocumentUpdated?.(s);break;case"navigationChanged":this.callbacks.onNavigationChanged?.(s);break;case"usage":this.callbacks.onUsage?.(s);break;default:console.warn(`Unhandled event type: ${t}`);break}}handleResponse(e){let t=this.pendingRequests.get(e.requestId);if(t){let{resolve:s,reject:i}=t;if(this.pendingRequests.delete(e.requestId),e.success===!1||e.error){let o={message:e.error||"Request failed",code:e.errorCode,details:e.errorDetails};this.callbacks.onError?.(o),i(o)}else s(e)}}destroy(){this.messageListener&&(window.removeEventListener("message",this.messageListener),this.messageListener=null),this.pendingRequests.clear()}updateCallbacks(e){this.callbacks={...this.callbacks,...e}}get ready(){return this.isReady}async waitForReady(e=3e4){return this.isReady?Promise.resolve():new Promise((t,s)=>{let i=setTimeout(()=>{s(new Error("Timeout waiting for iframe to be ready"))},e),o=n=>{n.source===this.iframe.contentWindow&&n.origin===this.getTrustedOrigin()&&n.data?.type==="CORTI_EMBEDDED_EVENT"&&n.data.event==="ready"&&(clearTimeout(i),window.removeEventListener("message",o),t())};window.addEventListener("message",o)})}async postMessage(e,t=1e4){if(!this.iframe.contentWindow)throw new Error("Iframe not ready");await this.waitForReady();let{contentWindow:s}=this.iframe,i=r.generateRequestId();return new Promise((o,n)=>{let c=setTimeout(()=>{this.pendingRequests.delete(i),n(new Error("Request timeout"))},t),a={resolve:d=>{clearTimeout(c),o(d)},reject:d=>{clearTimeout(c),n(d)}};this.pendingRequests.set(i,a);let l={...e,requestId:i},h=this.getTrustedOrigin();if(!h){this.pendingRequests.delete(i),n(new Error("Cannot determine trusted origin for postMessage"));return}s.postMessage(l,h)})}async auth(e){let t=await this.postMessage({type:"CORTI_EMBEDDED",version:"v1",action:"auth",payload:e});if(this.isReady=!1,t.payload&&typeof t.success)return t.payload.user;throw new Error(t.error)}async configureSession(e){await this.postMessage({type:"CORTI_EMBEDDED",version:"v1",action:"configureSession",payload:e})}async navigate(e){await this.postMessage({type:"CORTI_EMBEDDED",version:"v1",action:"navigate",payload:e})}async addFacts(e){await this.postMessage({type:"CORTI_EMBEDDED",version:"v1",action:"addFacts",payload:e})}async createInteraction(e){let t=await this.postMessage({type:"CORTI_EMBEDDED",version:"v1",action:"createInteraction",payload:e});if(t.payload&&typeof t.success)return t.payload;throw new Error(t.error)}async startRecording(){await this.postMessage({type:"CORTI_EMBEDDED",version:"v1",action:"startRecording",payload:{}})}async stopRecording(){await this.postMessage({type:"CORTI_EMBEDDED",version:"v1",action:"stopRecording",payload:{}})}async getStatus(){let e=await this.postMessage({type:"CORTI_EMBEDDED",version:"v1",action:"getStatus",payload:{}});if(e.payload&&typeof e.success)return e.payload;throw new Error(e.error)}async configure(e){let t=await this.postMessage({type:"CORTI_EMBEDDED",version:"v1",action:"configure",payload:e});if(t.payload&&typeof t.success)return t.payload;throw new Error(t.error)}async setCredentials(e){await this.postMessage({type:"CORTI_EMBEDDED",version:"v1",action:"setCredentials",payload:e})}static generateRequestId(){return`req_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}getTrustedOrigin(){try{let e=this.iframe.getAttribute("src")||this.iframe.src;return e?new URL(e,window.location.href).origin:null}catch{return null}}};var Ue=function(r,e,t,s){var i=arguments.length,o=i<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,t):s,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(r,e,t,s);else for(var c=r.length-1;c>=0;c--)(n=r[c])&&(o=(i<3?n(o):i>3?n(e,t,o):n(e,t))||o);return i>3&&o&&Object.defineProperty(e,t,o),o},y=class extends ${constructor(){super(...arguments),this.visibility="hidden",this.postMessageHandler=null,this.normalizedBaseURL=null}connectedCallback(){if(super.connectedCallback(),!this.baseURL){this.dispatchErrorEvent({message:"baseURL is required"});return}try{this.normalizedBaseURL=F(this.baseURL)}catch(e){throw this.dispatchErrorEvent({message:e.message||"Invalid baseURL"}),e}}disconnectedCallback(){super.disconnectedCallback(),this.postMessageHandler&&(this.postMessageHandler.destroy(),this.postMessageHandler=null)}async setupPostMessageHandler(){if(this.postMessageHandler)return;let e=this.getIframe();if(e?.contentWindow){let t={onReady:()=>{this.dispatchPublicEvent("ready",void 0)},onAuthChanged:s=>{this.dispatchPublicEvent("auth-changed",{user:s.user})},onInteractionCreated:s=>{this.dispatchPublicEvent("interaction-created",{interaction:s.interaction})},onRecordingStarted:()=>{this.dispatchPublicEvent("recording-started",void 0)},onRecordingStopped:()=>{this.dispatchPublicEvent("recording-stopped",void 0)},onDocumentGenerated:s=>{this.dispatchPublicEvent("document-generated",{document:s.document})},onDocumentUpdated:s=>{this.dispatchPublicEvent("document-updated",{document:s.document})},onNavigationChanged:s=>{this.dispatchPublicEvent("navigation-changed",{path:s.path})},onUsage:s=>{this.dispatchPublicEvent("usage",{creditsConsumed:s.creditsConsumed})},onError:s=>{this.dispatchErrorEvent(s)}};this.postMessageHandler=new V(e,t)}else this.dispatchErrorEvent({message:"No iframe or contentWindow available"})}dispatchPublicEvent(e,t){this.dispatchEvent(new CustomEvent(e,{detail:t}))}dispatchErrorEvent(e){this.dispatchPublicEvent("error",e)}isRealIframeLoad(e){let t=e.getAttribute("src")||"";return this.normalizedBaseURL?Me(t,this.normalizedBaseURL):!1}async handleIframeLoad(e){let t=e.target;if(t&&this.isRealIframeLoad(t))try{await this.setupPostMessageHandler()}catch(s){this.dispatchErrorEvent({message:`Failed to setup PostMessageHandler on iframe load: ${s}`})}}getIframe(){return this.shadowRoot?.querySelector("iframe")||null}updated(e){if(super.updated(e),e.has("baseURL")){try{this.normalizedBaseURL=F(this.baseURL)}catch(s){this.postMessageHandler&&(this.postMessageHandler.destroy(),this.postMessageHandler=null);let i=this.getIframe();i&&i.setAttribute("src","about:blank"),this.dispatchErrorEvent({message:s.message||"Invalid baseURL"});return}this.postMessageHandler&&(this.postMessageHandler.destroy(),this.postMessageHandler=null);let t=this.getIframe();if(t){let s=this.normalizedBaseURL?ne(this.normalizedBaseURL):"";t.getAttribute("src")!==s&&(t.setAttribute("src",s),t.setAttribute("allow",`microphone ${s}; camera ${s}; device-capture ${s}; display-capture ${s}`))}}}async auth(e){if(!this.postMessageHandler)throw new Error("Component not ready");try{let t={access_token:e.access_token,token_type:e.token_type,expires_at:e.expires_at,expires_in:e.expires_in,refresh_expires_in:e.refresh_expires_in,refresh_token:e.refresh_token,id_token:e.id_token,"not-before-policy":e["not-before-policy"],session_state:e.session_state,scope:e.scope,profile:e.profile,mode:e.mode};return await this.postMessageHandler.auth(t)}catch(t){let s=g(t,"Authentication failed");throw this.dispatchErrorEvent(s),new Error(JSON.stringify(s))}}async createInteraction(e){if(!this.postMessageHandler)throw new Error("Component not ready");try{let t=await this.postMessageHandler.createInteraction(e);return{id:t.id,createdAt:t.createdAt}}catch(t){let s=g(t,"Failed to create interaction");throw this.dispatchErrorEvent(s),new Error(JSON.stringify(s))}}async configureSession(e){if(!this.postMessageHandler)throw new Error("Component not ready");try{let t={defaultLanguage:e.defaultLanguage,defaultOutputLanguage:e.defaultOutputLanguage,defaultTemplateKey:e.defaultTemplateKey,defaultMode:e.defaultMode};await this.postMessageHandler.configureSession(t)}catch(t){let s=g(t,"Failed to configure session");throw this.dispatchErrorEvent(s),new Error(JSON.stringify(s))}}async addFacts(e){if(!this.postMessageHandler)throw new Error("Component not ready");try{let t={facts:e};await this.postMessageHandler.addFacts(t)}catch(t){let s=g(t,"Failed to add facts");throw this.dispatchErrorEvent(s),new Error(JSON.stringify(s))}}async navigate(e){if(!this.postMessageHandler)throw new Error("Component not ready");try{let t={path:e};await this.postMessageHandler.navigate(t)}catch(t){let s=g(t,"Failed to navigate");throw this.dispatchErrorEvent(s),new Error(JSON.stringify(s))}}async startRecording(){if(!this.postMessageHandler)throw new Error("Component not ready");try{await this.postMessageHandler.startRecording()}catch(e){let t=g(e,"Failed to start recording");throw this.dispatchErrorEvent(t),new Error(JSON.stringify(t))}}async stopRecording(){if(!this.postMessageHandler)throw new Error("Component not ready");try{await this.postMessageHandler.stopRecording()}catch(e){let t=g(e,"Failed to stop recording");throw this.dispatchErrorEvent(t),new Error(JSON.stringify(t))}}async getStatus(){if(!this.postMessageHandler)return{ready:!1,auth:{authenticated:!1,user:void 0},currentUrl:void 0,interaction:void 0};try{return await this.postMessageHandler.getStatus()}catch(e){let t=g(e,"Failed to get status");throw this.dispatchErrorEvent(t),new Error(JSON.stringify(t))}}async configure(e){if(!this.postMessageHandler)throw new Error("Component not ready");try{return await this.postMessageHandler.configure(e)}catch(t){let s=g(t,"Failed to configure component");throw this.dispatchErrorEvent(s),new Error(JSON.stringify(s))}}async setCredentials(e){if(!this.postMessageHandler)throw new Error("Component not ready");try{if(!e.password)throw new Error("Password is required");await this.postMessageHandler.setCredentials(e)}catch(t){let s=g(t,"Failed to set credentials");throw this.dispatchErrorEvent(s),new Error(JSON.stringify(s))}}show(){this.visibility="visible"}hide(){this.visibility="hidden"}getDebugStatus(){let e=this.getIframe();return{ready:e?.contentDocument?.readyState==="complete",iframeExists:!!e,iframeSrc:e?.src,iframeContentWindow:!!e?.contentWindow,iframeContentDocument:!!e?.contentDocument,iframeReadyState:e?.contentDocument?.readyState,postMessageHandlerExists:!!this.postMessageHandler,postMessageHandlerReady:this.postMessageHandler?.ready||!1,baseURL:this.baseURL}}render(){return this.baseURL?ie`
|
|
39
|
+
<iframe
|
|
40
|
+
src=${ne(F(this.baseURL))}
|
|
41
|
+
title="Corti Embedded UI"
|
|
42
|
+
sandbox=${"allow-forms allow-modals allow-scripts allow-same-origin"}
|
|
43
|
+
allow="microphone *; camera *; device-capture *; display-capture *"
|
|
44
|
+
@load=${e=>this.handleIframeLoad(e)}
|
|
45
|
+
@unload=${()=>this.postMessageHandler?.destroy()}
|
|
46
|
+
style=${this.visibility==="hidden"?"display: none;":"display: block;"}
|
|
47
|
+
></iframe>
|
|
48
|
+
`:ie`<div>baseURL is required</div>`}};y.styles=[Re,Ce];Ue([j({type:String,reflect:!0})],y.prototype,"visibility",void 0);Ue([j({type:String,reflect:!0})],y.prototype,"baseURL",void 0);customElements.get("corti-embedded")||customElements.define("corti-embedded",y);var Qe=new Set(["children","localName","ref","style","className"]),Le=new WeakMap,Oe=(r,e,t,s,i)=>{let o=i?.[e];o===void 0?(r[e]=t,t==null&&e in HTMLElement.prototype&&r.removeAttribute(e)):t!==s&&((n,c,a)=>{let l=Le.get(n);l===void 0&&Le.set(n,l=new Map);let h=l.get(c);a!==void 0?h===void 0?(l.set(c,h={handleEvent:a}),n.addEventListener(c,h)):h.handleEvent=a:h!==void 0&&(l.delete(c),n.removeEventListener(c,h))})(r,o,t)},de=({react:r,tagName:e,elementClass:t,events:s,displayName:i})=>{let o=new Set(Object.keys(s??{})),n=r.forwardRef(((c,a)=>{let l=r.useRef(new Map),h=r.useRef(null),d={},f={};for(let[p,m]of Object.entries(c))Qe.has(p)?d[p==="className"?"class":p]=m:o.has(p)||p in t.prototype?f[p]=m:d[p]=m;return r.useLayoutEffect((()=>{if(h.current===null)return;let p=new Map;for(let m in f)Oe(h.current,m,c[m],l.current.get(m),s),l.current.delete(m),p.set(m,c[m]);for(let[m,He]of l.current)Oe(h.current,m,void 0,He,s);l.current=p})),r.useLayoutEffect((()=>{h.current?.removeAttribute("defer-hydration")}),[]),d.suppressHydrationWarning=!0,r.createElement(e,{...d,ref:r.useCallback((p=>{h.current=p,typeof a=="function"?a(p):a!==null&&(a.current=p)}),[a])})}));return n.displayName=i??t.name,n};import*as T from"react";var Xe=de({tagName:"corti-embedded",elementClass:y,react:T,events:{onReady:"ready",onAuthChanged:"auth-changed",onInteractionCreated:"interaction-created",onRecordingStarted:"recording-started",onRecordingStopped:"recording-stopped",onDocumentGenerated:"document-generated",onDocumentUpdated:"document-updated",onNavigationChanged:"navigation-changed",onError:"error",onUsage:"usage"}}),Pe=T.forwardRef((r,e)=>T.createElement(Xe,{ref:e,...r}));Pe.displayName="CortiEmbeddedReact";export{y as CortiEmbedded,Pe as CortiEmbeddedReact};
|
|
49
|
+
/*! Bundled license information:
|
|
50
|
+
|
|
51
|
+
@lit/reactive-element/css-tag.js:
|
|
52
|
+
(**
|
|
53
|
+
* @license
|
|
54
|
+
* Copyright 2019 Google LLC
|
|
55
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
56
|
+
*)
|
|
57
|
+
|
|
58
|
+
@lit/reactive-element/reactive-element.js:
|
|
59
|
+
lit-html/lit-html.js:
|
|
60
|
+
lit-element/lit-element.js:
|
|
61
|
+
@lit/reactive-element/decorators/custom-element.js:
|
|
62
|
+
@lit/reactive-element/decorators/property.js:
|
|
63
|
+
@lit/reactive-element/decorators/state.js:
|
|
64
|
+
@lit/reactive-element/decorators/event-options.js:
|
|
65
|
+
@lit/reactive-element/decorators/base.js:
|
|
66
|
+
@lit/reactive-element/decorators/query.js:
|
|
67
|
+
@lit/reactive-element/decorators/query-all.js:
|
|
68
|
+
@lit/reactive-element/decorators/query-async.js:
|
|
69
|
+
@lit/reactive-element/decorators/query-assigned-nodes.js:
|
|
70
|
+
(**
|
|
71
|
+
* @license
|
|
72
|
+
* Copyright 2017 Google LLC
|
|
73
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
74
|
+
*)
|
|
75
|
+
|
|
76
|
+
lit-html/is-server.js:
|
|
77
|
+
(**
|
|
78
|
+
* @license
|
|
79
|
+
* Copyright 2022 Google LLC
|
|
80
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
81
|
+
*)
|
|
82
|
+
|
|
83
|
+
@lit/reactive-element/decorators/query-assigned-elements.js:
|
|
84
|
+
(**
|
|
85
|
+
* @license
|
|
86
|
+
* Copyright 2021 Google LLC
|
|
87
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
88
|
+
*)
|
|
89
|
+
|
|
90
|
+
@lit/react/create-component.js:
|
|
91
|
+
(**
|
|
92
|
+
* @license
|
|
93
|
+
* Copyright 2018 Google LLC
|
|
94
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
95
|
+
*)
|
|
96
|
+
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corti-embedded.js","sourceRoot":"","sources":["../src/corti-embedded.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,8BAA8B;AAC9B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACvC,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC","sourcesContent":["import { CortiEmbedded } from './CortiEmbedded.js';\n\n// Register the main component\nif (!customElements.get('corti-embedded'))\n customElements.define('corti-embedded', CortiEmbedded);\n"]}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import './corti-embedded.js';
|
|
2
|
+
export { CortiEmbedded } from './CortiEmbedded.js';
|
|
3
|
+
export { CortiEmbeddedReact } from './react/index.js';
|
|
4
|
+
export type { CortiEmbeddedReactProps, CortiEmbeddedReactRef, } from './react/index.js';
|
|
5
|
+
export type { AuthCredentials, ComponentStatus, ConfigureAppPayload, ConfigureAppResponsePayload, CortiEmbeddedAPI, EmbeddedEventData, EventListener, Fact, InteractionDetails, SessionConfig, User, } from './public-types.js';
|
|
6
|
+
export type { PostMessageHandlerCallbacks } from './utils/PostMessageHandler.js';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,0BAA0B;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC","sourcesContent":["import './corti-embedded.js';\n\nexport { CortiEmbedded } from './CortiEmbedded.js';\n\n// Export React components\nexport { CortiEmbeddedReact } from './react/index.js';\nexport type {\n CortiEmbeddedReactProps,\n CortiEmbeddedReactRef,\n} from './react/index.js';\n\n// Export clean public types only\nexport type {\n AuthCredentials,\n ComponentStatus,\n ConfigureAppPayload,\n ConfigureAppResponsePayload,\n CortiEmbeddedAPI,\n EmbeddedEventData,\n EventListener,\n Fact,\n InteractionDetails,\n SessionConfig,\n User,\n} from './public-types.js';\n\n// Export PostMessageHandler types for advanced usage\nexport type { PostMessageHandlerCallbacks } from './utils/PostMessageHandler.js';\n"]}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import type { Corti } from '@corti/sdk';
|
|
2
|
+
import type { User } from './public-types.js';
|
|
3
|
+
export type APIVersion = 'v1';
|
|
4
|
+
export type MessageType = 'CORTI_EMBEDDED' | 'CORTI_EMBEDDED_RESPONSE' | 'CORTI_EMBEDDED_EVENT';
|
|
5
|
+
export type AuthMode = 'stateless' | 'stateful';
|
|
6
|
+
export type DefaultMode = 'virtual' | 'in-person';
|
|
7
|
+
export type EmbeddedAction = 'auth' | 'createInteraction' | 'addFacts' | 'configureSession' | 'navigate' | 'startRecording' | 'stopRecording' | 'getStatus' | 'configure' | 'setCredentials';
|
|
8
|
+
export type EmbeddedEvent = 'ready' | 'loaded' | 'recordingStarted' | 'recordingStopped' | 'documentGenerated' | 'documentUpdated' | 'documentSynced' | 'authChanged' | 'interactionCreated' | 'navigationChanged';
|
|
9
|
+
export interface KeycloakTokenResponse {
|
|
10
|
+
access_token: string;
|
|
11
|
+
token_type: string;
|
|
12
|
+
expires_at?: number | null;
|
|
13
|
+
expires_in?: number | null;
|
|
14
|
+
refresh_expires_in?: number | null;
|
|
15
|
+
refresh_token?: string;
|
|
16
|
+
id_token?: string;
|
|
17
|
+
'not-before-policy'?: number | null;
|
|
18
|
+
session_state?: string;
|
|
19
|
+
scope?: string;
|
|
20
|
+
profile?: {
|
|
21
|
+
name: string;
|
|
22
|
+
email: string;
|
|
23
|
+
sub: string;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface AuthPayload extends KeycloakTokenResponse {
|
|
27
|
+
mode: AuthMode;
|
|
28
|
+
}
|
|
29
|
+
export interface AuthResponse {
|
|
30
|
+
user: {
|
|
31
|
+
id: string;
|
|
32
|
+
email: string;
|
|
33
|
+
name?: string;
|
|
34
|
+
[key: string]: unknown;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export interface CreateInteractionResponse {
|
|
38
|
+
id: string;
|
|
39
|
+
createdAt: string;
|
|
40
|
+
status?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface AddFactsPayload {
|
|
43
|
+
facts: Corti.FactsCreateInput[];
|
|
44
|
+
}
|
|
45
|
+
export interface ConfigureSessionPayload {
|
|
46
|
+
defaultLanguage?: string;
|
|
47
|
+
defaultOutputLanguage?: string;
|
|
48
|
+
defaultTemplateKey?: string;
|
|
49
|
+
defaultMode?: DefaultMode;
|
|
50
|
+
}
|
|
51
|
+
export interface NavigatePayload {
|
|
52
|
+
path: string;
|
|
53
|
+
}
|
|
54
|
+
interface AppearanceConfig {
|
|
55
|
+
primaryColor: string | null;
|
|
56
|
+
}
|
|
57
|
+
interface FeaturesConfig {
|
|
58
|
+
interactionTitle: boolean;
|
|
59
|
+
aiChat: boolean;
|
|
60
|
+
documentFeedback: boolean;
|
|
61
|
+
navigation: boolean;
|
|
62
|
+
virtualMode: boolean;
|
|
63
|
+
}
|
|
64
|
+
interface LocaleConfig {
|
|
65
|
+
interfaceLanguage: string;
|
|
66
|
+
}
|
|
67
|
+
export interface ConfigureAppPayload {
|
|
68
|
+
appearance?: Partial<AppearanceConfig>;
|
|
69
|
+
features?: Partial<FeaturesConfig>;
|
|
70
|
+
locale?: Partial<LocaleConfig>;
|
|
71
|
+
}
|
|
72
|
+
export interface ConfigureAppResponsePayload {
|
|
73
|
+
appearance: AppearanceConfig;
|
|
74
|
+
features: FeaturesConfig;
|
|
75
|
+
locale: LocaleConfig;
|
|
76
|
+
}
|
|
77
|
+
export interface GetStatusResponse {
|
|
78
|
+
ready: boolean;
|
|
79
|
+
auth: {
|
|
80
|
+
authenticated: boolean;
|
|
81
|
+
user?: User;
|
|
82
|
+
};
|
|
83
|
+
currentUrl?: string;
|
|
84
|
+
interaction?: {
|
|
85
|
+
encounter: Corti.InteractionsEncounterResponse;
|
|
86
|
+
documents: Corti.DocumentsListResponse['data'];
|
|
87
|
+
facts: Corti.FactsListResponse['facts'];
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export interface SetCredentialsPayload {
|
|
91
|
+
password: string;
|
|
92
|
+
}
|
|
93
|
+
export interface NavigateEventPayload {
|
|
94
|
+
interactionId: string;
|
|
95
|
+
}
|
|
96
|
+
export interface DocumentEventPayload {
|
|
97
|
+
document: Corti.DocumentsGetResponse;
|
|
98
|
+
}
|
|
99
|
+
export interface AuthChangedEventPayload {
|
|
100
|
+
user: {
|
|
101
|
+
id: string;
|
|
102
|
+
email: string;
|
|
103
|
+
name?: string;
|
|
104
|
+
[key: string]: unknown;
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
export interface InteractionCreatedEventPayload {
|
|
108
|
+
interaction: {
|
|
109
|
+
id: string;
|
|
110
|
+
createdAt: string;
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
export interface NavigationChangedEventPayload {
|
|
114
|
+
path: string;
|
|
115
|
+
}
|
|
116
|
+
export interface BaseMessage {
|
|
117
|
+
type: MessageType;
|
|
118
|
+
version: APIVersion;
|
|
119
|
+
}
|
|
120
|
+
export interface EmbeddedRequest extends BaseMessage {
|
|
121
|
+
type: 'CORTI_EMBEDDED';
|
|
122
|
+
action: EmbeddedAction;
|
|
123
|
+
requestId: string;
|
|
124
|
+
payload?: unknown;
|
|
125
|
+
}
|
|
126
|
+
export interface EmbeddedResponse extends BaseMessage {
|
|
127
|
+
type: 'CORTI_EMBEDDED_RESPONSE';
|
|
128
|
+
action: EmbeddedAction;
|
|
129
|
+
requestId: string;
|
|
130
|
+
success: boolean;
|
|
131
|
+
payload?: unknown;
|
|
132
|
+
error?: string;
|
|
133
|
+
errorCode?: string;
|
|
134
|
+
errorDetails?: unknown;
|
|
135
|
+
}
|
|
136
|
+
export interface EmbeddedEventMessage extends BaseMessage {
|
|
137
|
+
type: 'CORTI_EMBEDDED_EVENT';
|
|
138
|
+
event: EmbeddedEvent;
|
|
139
|
+
payload?: unknown;
|
|
140
|
+
}
|
|
141
|
+
export interface AuthRequest extends EmbeddedRequest {
|
|
142
|
+
action: 'auth';
|
|
143
|
+
payload: AuthPayload;
|
|
144
|
+
}
|
|
145
|
+
export interface AuthResponseMessage extends EmbeddedResponse {
|
|
146
|
+
action: 'auth';
|
|
147
|
+
payload?: AuthResponse;
|
|
148
|
+
}
|
|
149
|
+
export interface CreateInteractionRequest extends EmbeddedRequest {
|
|
150
|
+
action: 'createInteraction';
|
|
151
|
+
payload: Corti.InteractionsEncounterCreateRequest;
|
|
152
|
+
}
|
|
153
|
+
export interface CreateInteractionResponseMessage extends EmbeddedResponse {
|
|
154
|
+
action: 'createInteraction';
|
|
155
|
+
payload: CreateInteractionResponse;
|
|
156
|
+
}
|
|
157
|
+
export interface AddFactsRequest extends EmbeddedRequest {
|
|
158
|
+
action: 'addFacts';
|
|
159
|
+
payload: AddFactsPayload;
|
|
160
|
+
}
|
|
161
|
+
export interface ConfigureSessionRequest extends EmbeddedRequest {
|
|
162
|
+
action: 'configureSession';
|
|
163
|
+
payload: ConfigureSessionPayload;
|
|
164
|
+
}
|
|
165
|
+
export interface NavigateRequest extends EmbeddedRequest {
|
|
166
|
+
action: 'navigate';
|
|
167
|
+
payload: NavigatePayload;
|
|
168
|
+
}
|
|
169
|
+
export interface StartRecordingRequest extends EmbeddedRequest {
|
|
170
|
+
action: 'startRecording';
|
|
171
|
+
}
|
|
172
|
+
export interface StopRecordingRequest extends EmbeddedRequest {
|
|
173
|
+
action: 'stopRecording';
|
|
174
|
+
}
|
|
175
|
+
export interface GetStatusRequest extends EmbeddedRequest {
|
|
176
|
+
action: 'getStatus';
|
|
177
|
+
}
|
|
178
|
+
export interface GetStatusResponseMessage extends EmbeddedResponse {
|
|
179
|
+
action: 'getStatus';
|
|
180
|
+
payload: GetStatusResponse;
|
|
181
|
+
}
|
|
182
|
+
export interface ConfigureRequest extends EmbeddedRequest {
|
|
183
|
+
action: 'configure';
|
|
184
|
+
payload: ConfigureAppPayload;
|
|
185
|
+
}
|
|
186
|
+
export interface SetCredentialsRequest extends EmbeddedRequest {
|
|
187
|
+
action: 'setCredentials';
|
|
188
|
+
payload: SetCredentialsPayload;
|
|
189
|
+
}
|
|
190
|
+
export interface ReadyEvent extends EmbeddedEventMessage {
|
|
191
|
+
event: 'ready';
|
|
192
|
+
}
|
|
193
|
+
export interface LoadedEvent extends EmbeddedEventMessage {
|
|
194
|
+
event: 'loaded';
|
|
195
|
+
payload: NavigateEventPayload;
|
|
196
|
+
}
|
|
197
|
+
export interface RecordingStartedEvent extends EmbeddedEventMessage {
|
|
198
|
+
event: 'recordingStarted';
|
|
199
|
+
}
|
|
200
|
+
export interface RecordingStoppedEvent extends EmbeddedEventMessage {
|
|
201
|
+
event: 'recordingStopped';
|
|
202
|
+
}
|
|
203
|
+
export interface DocumentGeneratedEvent extends EmbeddedEventMessage {
|
|
204
|
+
event: 'documentGenerated';
|
|
205
|
+
payload: DocumentEventPayload;
|
|
206
|
+
}
|
|
207
|
+
export interface DocumentUpdatedEvent extends EmbeddedEventMessage {
|
|
208
|
+
event: 'documentUpdated';
|
|
209
|
+
payload: DocumentEventPayload;
|
|
210
|
+
}
|
|
211
|
+
export interface DocumentSyncedEvent extends EmbeddedEventMessage {
|
|
212
|
+
event: 'documentSynced';
|
|
213
|
+
payload: DocumentEventPayload;
|
|
214
|
+
}
|
|
215
|
+
export interface AuthChangedEvent extends EmbeddedEventMessage {
|
|
216
|
+
event: 'authChanged';
|
|
217
|
+
payload: AuthChangedEventPayload;
|
|
218
|
+
}
|
|
219
|
+
export interface InteractionCreatedEvent extends EmbeddedEventMessage {
|
|
220
|
+
event: 'interactionCreated';
|
|
221
|
+
payload: InteractionCreatedEventPayload;
|
|
222
|
+
}
|
|
223
|
+
export interface NavigationChangedEvent extends EmbeddedEventMessage {
|
|
224
|
+
event: 'navigationChanged';
|
|
225
|
+
payload: NavigationChangedEventPayload;
|
|
226
|
+
}
|
|
227
|
+
export type AnyEmbeddedRequest = AuthRequest | CreateInteractionRequest | AddFactsRequest | ConfigureSessionRequest | NavigateRequest | StartRecordingRequest | StopRecordingRequest | GetStatusRequest | ConfigureRequest | SetCredentialsRequest;
|
|
228
|
+
export type AnyEmbeddedResponse = AuthResponseMessage | CreateInteractionResponseMessage | GetStatusResponseMessage | EmbeddedResponse;
|
|
229
|
+
export type AnyEmbeddedEvent = ReadyEvent | LoadedEvent | RecordingStartedEvent | RecordingStoppedEvent | DocumentGeneratedEvent | DocumentUpdatedEvent | DocumentSyncedEvent | AuthChangedEvent | InteractionCreatedEvent | NavigationChangedEvent;
|
|
230
|
+
export type AnyEmbeddedMessage = AnyEmbeddedRequest | AnyEmbeddedResponse | AnyEmbeddedEvent;
|
|
231
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-types.js","sourceRoot":"","sources":["../src/internal-types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Corti } from '@corti/sdk';\nimport type { User } from './public-types.js';\n\nexport type APIVersion = 'v1';\n\nexport type MessageType =\n | 'CORTI_EMBEDDED'\n | 'CORTI_EMBEDDED_RESPONSE'\n | 'CORTI_EMBEDDED_EVENT';\n\nexport type AuthMode = 'stateless' | 'stateful';\n\nexport type DefaultMode = 'virtual' | 'in-person';\n\nexport type EmbeddedAction =\n | 'auth'\n | 'createInteraction'\n | 'addFacts'\n | 'configureSession'\n | 'navigate'\n | 'startRecording'\n | 'stopRecording'\n | 'getStatus'\n | 'configure'\n | 'setCredentials';\n\nexport type EmbeddedEvent =\n | 'ready'\n | 'loaded'\n | 'recordingStarted'\n | 'recordingStopped'\n | 'documentGenerated'\n | 'documentUpdated'\n | 'documentSynced'\n | 'authChanged'\n | 'interactionCreated'\n | 'navigationChanged';\n\nexport interface KeycloakTokenResponse {\n access_token: string;\n token_type: string;\n expires_at?: number | null;\n expires_in?: number | null;\n refresh_expires_in?: number | null;\n refresh_token?: string;\n id_token?: string;\n 'not-before-policy'?: number | null;\n session_state?: string;\n scope?: string;\n profile?: {\n name: string;\n email: string;\n sub: string;\n };\n}\n\n// Authentication Schema\nexport interface AuthPayload extends KeycloakTokenResponse {\n mode: AuthMode;\n}\n\nexport interface AuthResponse {\n user: {\n id: string;\n email: string;\n name?: string;\n [key: string]: unknown;\n };\n}\n\nexport interface CreateInteractionResponse {\n id: string;\n createdAt: string;\n status?: string;\n}\n\n// Add Facts Schema\nexport interface AddFactsPayload {\n facts: Corti.FactsCreateInput[];\n}\n\n// Configure Session Schema\nexport interface ConfigureSessionPayload {\n defaultLanguage?: string;\n defaultOutputLanguage?: string;\n defaultTemplateKey?: string;\n defaultMode?: DefaultMode;\n}\n\n// Navigate Schema\nexport interface NavigatePayload {\n path: string;\n}\n\n// App configuration schema\ninterface AppearanceConfig {\n primaryColor: string | null;\n}\n\ninterface FeaturesConfig {\n interactionTitle: boolean;\n aiChat: boolean;\n documentFeedback: boolean;\n navigation: boolean;\n virtualMode: boolean;\n}\n\ninterface LocaleConfig {\n interfaceLanguage: string;\n}\n\nexport interface ConfigureAppPayload {\n appearance?: Partial<AppearanceConfig>;\n features?: Partial<FeaturesConfig>;\n locale?: Partial<LocaleConfig>;\n}\n\nexport interface ConfigureAppResponsePayload {\n appearance: AppearanceConfig;\n features: FeaturesConfig;\n locale: LocaleConfig;\n}\n\n// Get status schema\nexport interface GetStatusResponse {\n ready: boolean;\n auth: {\n authenticated: boolean;\n user?: User;\n };\n currentUrl?: string;\n interaction?: {\n encounter: Corti.InteractionsEncounterResponse;\n documents: Corti.DocumentsListResponse['data'];\n facts: Corti.FactsListResponse['facts'];\n };\n}\n\n// Set credentials schema\nexport interface SetCredentialsPayload {\n password: string;\n}\n\nexport interface NavigateEventPayload {\n interactionId: string;\n}\n\nexport interface DocumentEventPayload {\n document: Corti.DocumentsGetResponse;\n}\n\nexport interface AuthChangedEventPayload {\n user: {\n id: string;\n email: string;\n name?: string;\n [key: string]: unknown;\n };\n}\n\nexport interface InteractionCreatedEventPayload {\n interaction: {\n id: string;\n createdAt: string;\n };\n}\n\nexport interface NavigationChangedEventPayload {\n path: string;\n}\n\n// Base Message Types\nexport interface BaseMessage {\n type: MessageType;\n version: APIVersion;\n}\n\nexport interface EmbeddedRequest extends BaseMessage {\n type: 'CORTI_EMBEDDED';\n action: EmbeddedAction;\n requestId: string;\n payload?: unknown;\n}\n\nexport interface EmbeddedResponse extends BaseMessage {\n type: 'CORTI_EMBEDDED_RESPONSE';\n action: EmbeddedAction;\n requestId: string;\n success: boolean;\n payload?: unknown;\n error?: string;\n errorCode?: string;\n errorDetails?: unknown;\n}\n\nexport interface EmbeddedEventMessage extends BaseMessage {\n type: 'CORTI_EMBEDDED_EVENT';\n event: EmbeddedEvent;\n payload?: unknown;\n}\n\n// Specific Request/Response Types\nexport interface AuthRequest extends EmbeddedRequest {\n action: 'auth';\n payload: AuthPayload;\n}\n\nexport interface AuthResponseMessage extends EmbeddedResponse {\n action: 'auth';\n payload?: AuthResponse;\n}\n\nexport interface CreateInteractionRequest extends EmbeddedRequest {\n action: 'createInteraction';\n payload: Corti.InteractionsEncounterCreateRequest;\n}\n\nexport interface CreateInteractionResponseMessage extends EmbeddedResponse {\n action: 'createInteraction';\n payload: CreateInteractionResponse;\n}\n\nexport interface AddFactsRequest extends EmbeddedRequest {\n action: 'addFacts';\n payload: AddFactsPayload;\n}\n\nexport interface ConfigureSessionRequest extends EmbeddedRequest {\n action: 'configureSession';\n payload: ConfigureSessionPayload;\n}\n\nexport interface NavigateRequest extends EmbeddedRequest {\n action: 'navigate';\n payload: NavigatePayload;\n}\n\nexport interface StartRecordingRequest extends EmbeddedRequest {\n action: 'startRecording';\n}\n\nexport interface StopRecordingRequest extends EmbeddedRequest {\n action: 'stopRecording';\n}\n\nexport interface GetStatusRequest extends EmbeddedRequest {\n action: 'getStatus';\n}\n\nexport interface GetStatusResponseMessage extends EmbeddedResponse {\n action: 'getStatus';\n payload: GetStatusResponse;\n}\n\nexport interface ConfigureRequest extends EmbeddedRequest {\n action: 'configure';\n payload: ConfigureAppPayload;\n}\n\nexport interface SetCredentialsRequest extends EmbeddedRequest {\n action: 'setCredentials';\n payload: SetCredentialsPayload;\n}\n\n// Event Types\nexport interface ReadyEvent extends EmbeddedEventMessage {\n event: 'ready';\n}\n\nexport interface LoadedEvent extends EmbeddedEventMessage {\n event: 'loaded';\n payload: NavigateEventPayload;\n}\n\nexport interface RecordingStartedEvent extends EmbeddedEventMessage {\n event: 'recordingStarted';\n}\n\nexport interface RecordingStoppedEvent extends EmbeddedEventMessage {\n event: 'recordingStopped';\n}\n\nexport interface DocumentGeneratedEvent extends EmbeddedEventMessage {\n event: 'documentGenerated';\n payload: DocumentEventPayload;\n}\n\nexport interface DocumentUpdatedEvent extends EmbeddedEventMessage {\n event: 'documentUpdated';\n payload: DocumentEventPayload;\n}\n\nexport interface DocumentSyncedEvent extends EmbeddedEventMessage {\n event: 'documentSynced';\n payload: DocumentEventPayload;\n}\n\nexport interface AuthChangedEvent extends EmbeddedEventMessage {\n event: 'authChanged';\n payload: AuthChangedEventPayload;\n}\n\nexport interface InteractionCreatedEvent extends EmbeddedEventMessage {\n event: 'interactionCreated';\n payload: InteractionCreatedEventPayload;\n}\n\nexport interface NavigationChangedEvent extends EmbeddedEventMessage {\n event: 'navigationChanged';\n payload: NavigationChangedEventPayload;\n}\n\n// Request/Response/Event types\nexport type AnyEmbeddedRequest =\n | AuthRequest\n | CreateInteractionRequest\n | AddFactsRequest\n | ConfigureSessionRequest\n | NavigateRequest\n | StartRecordingRequest\n | StopRecordingRequest\n | GetStatusRequest\n | ConfigureRequest\n | SetCredentialsRequest;\n\nexport type AnyEmbeddedResponse =\n | AuthResponseMessage\n | CreateInteractionResponseMessage\n | GetStatusResponseMessage\n | EmbeddedResponse;\n\nexport type AnyEmbeddedEvent =\n | ReadyEvent\n | LoadedEvent\n | RecordingStartedEvent\n | RecordingStoppedEvent\n | DocumentGeneratedEvent\n | DocumentUpdatedEvent\n | DocumentSyncedEvent\n | AuthChangedEvent\n | InteractionCreatedEvent\n | NavigationChangedEvent;\n\nexport type AnyEmbeddedMessage =\n | AnyEmbeddedRequest\n | AnyEmbeddedResponse\n | AnyEmbeddedEvent;\n"]}
|