@tinkerlandai/longplay-sdk 0.10.4 → 0.10.5

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +6 -2
  3. package/dist/{chunk-ACF2FBUB.js → chunk-5BWSWP6H.js} +1 -1
  4. package/dist/{chunk-KBM7BYQY.js → chunk-5FAUO337.js} +1 -1
  5. package/dist/{chunk-HOW7NIIR.js → chunk-ABL2UMTI.js} +1 -1
  6. package/dist/{chunk-SBPTOOYB.js → chunk-BEBSMWPR.js} +1 -1
  7. package/dist/{chunk-2HFA34QO.js → chunk-EK6IPAY5.js} +2 -2
  8. package/dist/chunk-FSTRGSM5.js +1 -0
  9. package/dist/{chunk-RE6BIFLN.js → chunk-KMCA4Y2Q.js} +1 -1
  10. package/dist/{chunk-MRN4HP4W.js → chunk-MSOVR5KN.js} +1 -1
  11. package/dist/{chunk-G56XGVMS.js → chunk-O3FHA25D.js} +1 -1
  12. package/dist/{chunk-VMM3GA3L.js → chunk-OHYC6K3A.js} +1 -1
  13. package/dist/{chunk-ZPZVSC4J.js → chunk-QOUOTUVB.js} +1 -1
  14. package/dist/{chunk-X6BCUINI.js → chunk-ZDT32X4G.js} +1 -1
  15. package/dist/{chunk-YQHPEP4X.js → chunk-ZEEDAM4H.js} +1 -1
  16. package/dist/{chunk-JB46ZKGZ.js → chunk-ZIUBXO6M.js} +1 -1
  17. package/dist/{content-NYMIZRNR.js → content-QPJOW6OT.js} +1 -1
  18. package/dist/funnel-runtime-host-EHYY7OIZ.js +1 -0
  19. package/dist/index.js +1 -1
  20. package/dist/openrouter.js +1 -1
  21. package/dist/page.js +1 -1
  22. package/dist/{paywall-EJCNWDHK.js → paywall-EYRLWKC5.js} +1 -1
  23. package/dist/popup.js +1 -1
  24. package/dist/react-native.js +1 -1
  25. package/dist/screen-renderer-KOKMHO6R.js +1 -0
  26. package/dist/server.js +1 -1
  27. package/dist/visual-dom-YGLIHSKU.js +1 -0
  28. package/dist/visual.js +1 -1
  29. package/package.json +10 -9
  30. package/dist/chunk-VOEFXEPP.js +0 -1
  31. package/dist/funnel-runtime-host-UL4DEJDU.js +0 -1
  32. package/dist/screen-renderer-JMHV4GPP.js +0 -1
  33. package/dist/visual-dom-DQLPBZ2Z.js +0 -1
  34. /package/dist/{chunk-XSVQHPQT.js → chunk-BI4R5Q7Z.js} +0 -0
  35. /package/dist/{chunk-CLXORAOK.js → chunk-MPE7OZTE.js} +0 -0
  36. /package/dist/{chunk-7DXL3LHT.js → chunk-XVT5BKJW.js} +0 -0
@@ -0,0 +1 @@
1
+ import{d as t}from"./chunk-ZIUBXO6M.js";import{Ga as n}from"./chunk-EK6IPAY5.js";function r(e,o,a){return n(e,o,a,t)}export{r as a};
@@ -1,2 +1,2 @@
1
- import{a as re,b as ne,c as oe}from"./chunk-CLXORAOK.js";var be=/^[a-zA-Z:_][a-zA-Z0-9:_.-]*$/,Y={revert:function(){}},H=new Map,Q=new Set;function we(t){return t==="html"?{childList:!0,subtree:!0,attributes:!0,characterData:!0}:{childList:!1,subtree:!1,attributes:!0,attributeFilter:[t]}}function J(t){var e=H.get(t);return e||(e={element:t,attributes:{}},H.set(t,e)),e}function j(t,e,r,n,a){var p=r(t),u={isDirty:!1,originalValue:p,virtualValue:p,mutations:[],el:t,_positionTimeout:null,observer:new MutationObserver(function(){if(!Pe&&!(e==="position"&&u._positionTimeout)){e==="position"&&(u._positionTimeout=setTimeout(function(){u._positionTimeout=null},1e3));var l=r(t);e==="position"&&l.parentNode===u.virtualValue.parentNode&&l.insertBeforeNode===u.virtualValue.insertBeforeNode||l!==u.virtualValue&&(u.originalValue=l,a(u))}}),mutationRunner:a,setValue:n,getCurrentValue:r};return e==="position"&&t.parentNode?u.observer.observe(t.parentNode,{childList:!0,subtree:!0,attributes:!1,characterData:!1}):u.observer.observe(t,we(e)),u}function G(t,e){var r=e.getCurrentValue(e.el);e.virtualValue=t,t&&typeof t!="string"?(!r||t.parentNode!==r.parentNode||t.insertBeforeNode!==r.insertBeforeNode)&&(e.isDirty=!0,ie()):t!==r&&(e.isDirty=!0,ie())}function ye(t){var e=t.originalValue;t.mutations.forEach(function(r){return e=r.mutate(e)}),G(Ce(e),t)}function Ee(t){var e=new Set(t.originalValue.split(/\s+/).filter(Boolean));t.mutations.forEach(function(r){return r.mutate(e)}),G(Array.from(e).filter(Boolean).join(" "),t)}function Me(t){var e=t.originalValue;t.mutations.forEach(function(r){return e=r.mutate(e)}),G(e,t)}function Se(t){var e=t.parentSelector,r=t.insertBeforeSelector,n=document.querySelector(e);if(!n)return null;var a=r?document.querySelector(r):null;return r&&!a?null:{parentNode:n,insertBeforeNode:a}}function Ve(t){var e=t.originalValue;t.mutations.forEach(function(r){var n=r.mutate(),a=Se(n);e=a||e}),G(e,t)}var Ae=function(e){return e.innerHTML},ke=function(e,r){return e.innerHTML=r};function ae(t){var e=J(t);return e.html||(e.html=j(t,"html",Ae,ke,ye)),e.html}var Ne=function(e){return{parentNode:e.parentElement,insertBeforeNode:e.nextElementSibling}},Te=function(e,r){r.insertBeforeNode&&!r.parentNode.contains(r.insertBeforeNode)||r.parentNode.insertBefore(e,r.insertBeforeNode)};function ue(t){var e=J(t);return e.position||(e.position=j(t,"position",Ne,Te,Ve)),e.position}var xe=function(e,r){return r?e.className=r:e.removeAttribute("class")},Re=function(e){return e.className};function le(t){var e=J(t);return e.classes||(e.classes=j(t,"class",Re,xe,Ee)),e.classes}var qe=function(e){return function(r){var n;return(n=r.getAttribute(e))!=null?n:null}},Le=function(e){return function(r,n){return n!==null?r.setAttribute(e,n):r.removeAttribute(e)}};function ce(t,e){var r=J(t);return r.attributes[e]||(r.attributes[e]=j(t,e,qe(e),Le(e),Me)),r.attributes[e]}function Ie(t,e){var r=H.get(t);if(r)if(e==="html"){var n,a;(n=r.html)==null||(a=n.observer)==null||a.disconnect(),delete r.html}else if(e==="class"){var p,u;(p=r.classes)==null||(u=p.observer)==null||u.disconnect(),delete r.classes}else if(e==="position"){var l,E;(l=r.position)==null||(E=l.observer)==null||E.disconnect(),delete r.position}else{var g,b,f;(g=r.attributes)==null||(b=g[e])==null||(f=b.observer)==null||f.disconnect(),delete r.attributes[e]}}var D;function Ce(t){return D||(D=document.createElement("div")),D.innerHTML=t,D.innerHTML}function z(t,e,r){if(r.isDirty){r.isDirty=!1;var n=r.virtualValue;r.mutations.length||Ie(t,e),r.setValue(t,n)}}function Oe(t,e){t.html&&z(e,"html",t.html),t.classes&&z(e,"class",t.classes),t.position&&z(e,"position",t.position),Object.keys(t.attributes).forEach(function(r){z(e,r,t.attributes[r])})}function ie(){H.forEach(Oe)}function Be(t,e){var r=null;t.kind==="html"?r=ae(e):t.kind==="class"?r=le(e):t.kind==="attribute"?r=ce(e,t.attribute):t.kind==="position"&&(r=ue(e)),r&&(r.mutations.push(t),r.mutationRunner(r))}function De(t,e){var r=null;if(t.kind==="html"?r=ae(e):t.kind==="class"?r=le(e):t.kind==="attribute"?r=ce(e,t.attribute):t.kind==="position"&&(r=ue(e)),!!r){var n=r.mutations.indexOf(t);n!==-1&&r.mutations.splice(n,1),r.mutationRunner(r)}}function fe(t){if(!(t.kind==="position"&&t.elements.size===1)){var e=new Set(t.elements),r=document.querySelectorAll(t.selector);r.forEach(function(n){e.has(n)||(t.elements.add(n),Be(t,n))})}}function ze(t){t.elements.forEach(function(e){return De(t,e)}),t.elements.clear(),Q.delete(t)}function se(){Q.forEach(fe)}var Pe=!1;var Z;function He(){typeof document>"u"||(Z||(Z=new MutationObserver(function(){se()})),se(),Z.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!1,characterData:!1}))}He();function U(t){return typeof document>"u"?Y:(Q.add(t),fe(t),{revert:function(){ze(t)}})}function K(t,e){return U({kind:"html",elements:new Set,mutate:e,selector:t})}function de(t,e){return U({kind:"position",elements:new Set,mutate:e,selector:t})}function C(t,e){return U({kind:"class",elements:new Set,mutate:e,selector:t})}function P(t,e,r){return be.test(e)?e==="class"||e==="className"?C(t,function(n){var a=r(Array.from(n).join(" "));n.clear(),a&&a.split(/\s+/g).filter(Boolean).forEach(function(p){return n.add(p)})}):U({kind:"attribute",attribute:e,elements:new Set,mutate:r,selector:t}):Y}function Je(t){var e=t.selector,r=t.action,n=t.value,a=t.attribute,p=t.parentSelector,u=t.insertBeforeSelector;if(a==="html"){if(r==="append")return K(e,function(l){return l+(n??"")});if(r==="set")return K(e,function(){return n??""})}else if(a==="class"){if(r==="append")return C(e,function(l){n&&l.add(n)});if(r==="remove")return C(e,function(l){n&&l.delete(n)});if(r==="set")return C(e,function(l){l.clear(),n&&l.add(n)})}else if(a==="position"){if(r==="set"&&p)return de(e,function(){return{insertBeforeSelector:u,parentSelector:p}})}else{if(r==="append")return P(e,a,function(l){return l!==null?l+(n??""):n??""});if(r==="set")return P(e,a,function(){return n??""});if(r==="remove")return P(e,a,function(){return null})}return Y}var je={html:K,classes:C,attribute:P,position:de,declarative:Je},X=je;import Ue from"dompurify";var T=class extends Error{constructor(){super("IAM page check exceeded its work budget")}},_=new WeakMap,$=new WeakSet;function ee(t){$.add(t)}function Ge(t){let e=new Set,r=new Set,n,a=0,p=!1,u=0,l,E=()=>{e.size||a||(n?.disconnect(),l!==void 0&&cancelAnimationFrame(l),t.removeEventListener("visibilitychange",f),_.delete(t))};function g(h){if(t.hidden)return;let M=performance.now(),w=new Map,v=new Map,V=()=>{if(performance.now()-M>8)throw new T},x=o=>{V();let i=w.get(o);return i||(i=t.querySelectorAll(o),w.set(o,i)),V(),i},R=re({querySelectorAll:x},V),W=o=>{let i=o.filter(m=>!w.has(m));if(!i.length)return;let s=new Map;for(let m of i){let d=/^([a-z][a-z0-9-]*)\[(id|data-testid|data-test|data-qa|data-indiana-id)="((?:[^"\\\x00-\x1f\x7f]|\\["\\])*)"\]$/.exec(m);if(!d)throw Error("Invalid IAM render selector");let[,y,k,A]=d,I=A.replace(/\\(["\\])/g,"$1"),O=s.get(y);O||s.set(y,O=new Map);let B=O.get(k);B||O.set(k,B=new Map);let F=B.get(I);F||B.set(I,F=[]),w.set(m,F)}V();let c=t.querySelectorAll(i.join(","));if(V(),c.length>8192)throw Error("IAM render selection budget exceeded");for(let m of c){let d=s.get(m.localName.toLowerCase());if(d)for(let[y,k]of d){let A=m.getAttribute(y);A!==null&&k.get(A)?.push(m)}V()}},S={query:x,checkpoint:V,matches(o,i){let s=v.get(i);if(!s){try{let c=!1;s={match:oe(o,t,location.pathname,V,m=>(c||(W(o.selectors),c=!0),R(m)))}}catch(c){s={error:c}}v.set(i,s)}if("error"in s)throw s.error;return s.match}},N=[],q=[],L=[];for(let o of h)if(e.has(o))try{N.push({job:o,commit:o.prepare(S)})}catch(i){if(i instanceof T)throw i;q.push({job:o,error:i})}V();for(let{job:o,error:i}of q)e.has(o)&&o.fail(i);for(let{job:o,commit:i}of N)if(e.has(o))try{V(),i(s=>L.push(s))}catch(s){if(s instanceof T)throw s;o.fail(s)}for(let o of L)o()}function b(h){if(!(l!==void 0||t.hidden))try{g(h),u=0}catch(M){if(!(M instanceof T))throw M;for(let w of[...e])w.suspend();if(u++>=2){for(let w of[...e])w.fail(M);return}l=requestAnimationFrame(()=>{l=void 0,b([...e])})}}function f(){p||!e.size||t.hidden||(p=!0,queueMicrotask(()=>{p=!1,b([...e])}))}return{begin(){a++},end(){--a===0&&(r.clear(),b([...e])),E()},add(h){return n||(n=new MutationObserver(M=>{let w=v=>$.has(v)||!!(v.parentNode&&$.has(v.parentNode));M.some(v=>!w(v.target)&&!(v.type==="childList"&&[...v.addedNodes,...v.removedNodes].length>0&&[...v.addedNodes,...v.removedNodes].every(w)))&&f()}),n.observe(t.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["style","hidden","data-indiana-id","data-indiana-release","data-testid","id","name"]}),t.addEventListener("visibilitychange",f)),e.add(h),a?r.add(h):b([h]),()=>{e.delete(h),r.delete(h),E()}}}}function pe(){let t=_.get(document);return t||(t=Ge(document),_.set(document,t)),t}function me(t){return pe().add(t)}function Ye(t){let e=pe();e.begin();try{t()}finally{e.end()}}var te,he;function ve(t){return(!te||he!==window)&&(te=Ue(window),he=window),te.sanitize(t,{USE_PROFILES:{html:!0},FORBID_TAGS:["form","input","textarea","select","button","style"]})}function ge(t){let e={...t};if(!["html","class","style","position","href","src","alt","title","id","role","hidden"].includes(e.attribute)&&!/^(aria|data)-[a-z0-9_-]+$/.test(e.attribute))throw new Error("Unsupported visual attribute");document.querySelector(e.selector);for(let r of document.querySelectorAll(e.selector))if(["SCRIPT","IFRAME","OBJECT","EMBED","HTML","HEAD"].includes(r.tagName)||r.tagName==="BODY"&&e.attribute==="html")throw new Error("Protected visual target");if(e.attribute==="html"&&(e.value=ve(e.value??"")),["href","src"].includes(e.attribute)&&e.action!=="remove"){let r=new URL(e.value??"",location.href);if(!["https:","http:","mailto:","tel:"].includes(r.protocol)||e.attribute==="src"&&!["https:","http:"].includes(r.protocol))throw new Error("Unsafe visual URL")}return e.parentSelector&&document.querySelector(e.parentSelector),e.insertBeforeSelector&&document.querySelector(e.insertBeforeSelector),e}function tt(t,e={}){if(t.renderGuard&&!e.requireUniqueTargets)throw new Error("IAM render guard requires the source release fence");if(e.requireUniqueTargets)return We(t,e);let r=t.domMutations.map(ge),n=[],a=!1,p=!1,u,l=()=>{if(!a){a=!0,u?.disconnect();for(let g of n.reverse())g()}},E=()=>{a||p||(!r.length||t.css||e.allowJs&&t.js||r.some(g=>document.querySelector(g.selector)))&&(p=!0,e.onApplied?.())};try{if(t.css){let f=document.createElement("style");e.nonce&&(f.nonce=e.nonce),f.textContent=t.css,document.head.append(f),n.push(()=>f.remove())}for(let f of r){let h=X.declarative(f);n.push(()=>h.revert())}if(e.allowJs&&t.js){let f=document.createElement("script");e.nonce&&(f.nonce=e.nonce),f.textContent=t.js,document.head.append(f),n.push(()=>f.remove())}let g=performance.now(),b=new WeakMap;u=new MutationObserver(f=>{if(!a){performance.now()-g>1e3&&(g=performance.now(),b=new WeakMap);for(let h of f){let M=(b.get(h.target)??0)+1;if(b.set(h.target,M),M>40){l(),e.onError?.(new Error("Visual changes conflict with repeated page rendering"));return}}E()}}),u.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,characterData:!0}),E()}catch(g){throw l(),g}return{revert:l,inspect(){return{status:"unavailable",total:0,applied:0}},get applied(){return p}}}function We(t,e){let r=e?.boundVariations??[t],n=new Set,a=new Set,p=[],u=new Map,l=r.flatMap(o=>o.renderGuard?[ne(o.renderGuard)]:[]),E=l[0];if(l.some(o=>JSON.stringify(o)!==JSON.stringify(E)))throw new Error("IAM variations use different render states");if(t.js||r.some(o=>o.js))throw Error("IAM scripts cannot execute");if(r.length>20||r.reduce((o,i)=>o+i.css.length,0)>262144)throw Error("IAM target budget");let g=(o,i)=>{for(let c of o.domMutations){if(c.action!=="set"||c.attribute!=="html")throw Error("Unsupported IAM mutation");n.add(c.selector),a.add(c.selector)}if(!o.css)return;let s=document.createElement("style");ee(s),s.media="not all",e?.nonce&&(s.nonce=e.nonce),s.textContent=o.css;try{if(document.head.append(s),!s.sheet)throw Error("IAM CSS is blocked");for(let c of s.sheet.cssRules){if(!("selectorText"in c)||typeof c.selectorText!="string")throw Error("Unsupported IAM style rule");n.add(c.selectorText),i&&p.push({selector:c.selectorText,css:c.cssText})}}finally{s.remove()}};for(let o of r)g(o,!1);if(g(t,!0),n.size>200)throw Error("IAM target budget");let b=t.domMutations.map(ge),f=!1,h=!1,M=!1,w=!1,v="",V=0,x=(o,i)=>{let s=`${o}:${i}`;if(s!==v&&(v=s,!(!e?.onTargetStatus||V>=32))){V++;try{e.onTargetStatus({status:o,total:n.size,matched:i})}catch{}}},R={},W=E?JSON.stringify(E):"",S,N="",q=()=>{if(!f){f=!0,R.unsubscribe?.();for(let o of u.values())o.revert();u.clear(),S?.remove(),S=void 0,h=!1}},L=()=>{for(let o of u.values())o.revert();u.clear(),S?.remove(),S=void 0,N="",h=!1};return R.unsubscribe=me({suspend:L,fail(o){q(),e?.onError?.(o)},prepare(o){if(E&&!o.matches(E,W))return s=>{f||(L(),w=!1,s(()=>{f||x("inactive",null)}))};let i=new Map;for(let s of n){let c=o.query(s);if(c.length>1)throw Error("IAM target is ambiguous in this rendered state");if(c.length){if(a.has(s)&&c[0].children.length)throw Error("IAM text target is no longer a leaf");i.set(s,c[0])}o.checkpoint()}return s=>{if(f)return;for(let[d,y]of u)i.get(d)!==y.element&&(y.revert(),u.delete(d));for(let d of new Set(b.map(y=>y.selector))){let y=i.get(d);if(!y||u.has(d))continue;let k=b.filter(A=>A.selector===d).map(A=>X.declarative(A));u.set(d,{element:y,revert:()=>k.forEach(A=>A.revert())})}let c=p.filter(d=>i.has(d.selector)).map(d=>d.css).join(`
1
+ import{a as re,b as ne,c as oe}from"./chunk-MPE7OZTE.js";var be=/^[a-zA-Z:_][a-zA-Z0-9:_.-]*$/,Y={revert:function(){}},H=new Map,Q=new Set;function we(t){return t==="html"?{childList:!0,subtree:!0,attributes:!0,characterData:!0}:{childList:!1,subtree:!1,attributes:!0,attributeFilter:[t]}}function J(t){var e=H.get(t);return e||(e={element:t,attributes:{}},H.set(t,e)),e}function j(t,e,r,n,a){var p=r(t),u={isDirty:!1,originalValue:p,virtualValue:p,mutations:[],el:t,_positionTimeout:null,observer:new MutationObserver(function(){if(!Pe&&!(e==="position"&&u._positionTimeout)){e==="position"&&(u._positionTimeout=setTimeout(function(){u._positionTimeout=null},1e3));var l=r(t);e==="position"&&l.parentNode===u.virtualValue.parentNode&&l.insertBeforeNode===u.virtualValue.insertBeforeNode||l!==u.virtualValue&&(u.originalValue=l,a(u))}}),mutationRunner:a,setValue:n,getCurrentValue:r};return e==="position"&&t.parentNode?u.observer.observe(t.parentNode,{childList:!0,subtree:!0,attributes:!1,characterData:!1}):u.observer.observe(t,we(e)),u}function G(t,e){var r=e.getCurrentValue(e.el);e.virtualValue=t,t&&typeof t!="string"?(!r||t.parentNode!==r.parentNode||t.insertBeforeNode!==r.insertBeforeNode)&&(e.isDirty=!0,ie()):t!==r&&(e.isDirty=!0,ie())}function ye(t){var e=t.originalValue;t.mutations.forEach(function(r){return e=r.mutate(e)}),G(Ce(e),t)}function Ee(t){var e=new Set(t.originalValue.split(/\s+/).filter(Boolean));t.mutations.forEach(function(r){return r.mutate(e)}),G(Array.from(e).filter(Boolean).join(" "),t)}function Me(t){var e=t.originalValue;t.mutations.forEach(function(r){return e=r.mutate(e)}),G(e,t)}function Se(t){var e=t.parentSelector,r=t.insertBeforeSelector,n=document.querySelector(e);if(!n)return null;var a=r?document.querySelector(r):null;return r&&!a?null:{parentNode:n,insertBeforeNode:a}}function Ve(t){var e=t.originalValue;t.mutations.forEach(function(r){var n=r.mutate(),a=Se(n);e=a||e}),G(e,t)}var Ae=function(e){return e.innerHTML},ke=function(e,r){return e.innerHTML=r};function ae(t){var e=J(t);return e.html||(e.html=j(t,"html",Ae,ke,ye)),e.html}var Ne=function(e){return{parentNode:e.parentElement,insertBeforeNode:e.nextElementSibling}},Te=function(e,r){r.insertBeforeNode&&!r.parentNode.contains(r.insertBeforeNode)||r.parentNode.insertBefore(e,r.insertBeforeNode)};function ue(t){var e=J(t);return e.position||(e.position=j(t,"position",Ne,Te,Ve)),e.position}var xe=function(e,r){return r?e.className=r:e.removeAttribute("class")},Re=function(e){return e.className};function le(t){var e=J(t);return e.classes||(e.classes=j(t,"class",Re,xe,Ee)),e.classes}var qe=function(e){return function(r){var n;return(n=r.getAttribute(e))!=null?n:null}},Le=function(e){return function(r,n){return n!==null?r.setAttribute(e,n):r.removeAttribute(e)}};function ce(t,e){var r=J(t);return r.attributes[e]||(r.attributes[e]=j(t,e,qe(e),Le(e),Me)),r.attributes[e]}function Ie(t,e){var r=H.get(t);if(r)if(e==="html"){var n,a;(n=r.html)==null||(a=n.observer)==null||a.disconnect(),delete r.html}else if(e==="class"){var p,u;(p=r.classes)==null||(u=p.observer)==null||u.disconnect(),delete r.classes}else if(e==="position"){var l,E;(l=r.position)==null||(E=l.observer)==null||E.disconnect(),delete r.position}else{var g,b,f;(g=r.attributes)==null||(b=g[e])==null||(f=b.observer)==null||f.disconnect(),delete r.attributes[e]}}var D;function Ce(t){return D||(D=document.createElement("div")),D.innerHTML=t,D.innerHTML}function z(t,e,r){if(r.isDirty){r.isDirty=!1;var n=r.virtualValue;r.mutations.length||Ie(t,e),r.setValue(t,n)}}function Oe(t,e){t.html&&z(e,"html",t.html),t.classes&&z(e,"class",t.classes),t.position&&z(e,"position",t.position),Object.keys(t.attributes).forEach(function(r){z(e,r,t.attributes[r])})}function ie(){H.forEach(Oe)}function Be(t,e){var r=null;t.kind==="html"?r=ae(e):t.kind==="class"?r=le(e):t.kind==="attribute"?r=ce(e,t.attribute):t.kind==="position"&&(r=ue(e)),r&&(r.mutations.push(t),r.mutationRunner(r))}function De(t,e){var r=null;if(t.kind==="html"?r=ae(e):t.kind==="class"?r=le(e):t.kind==="attribute"?r=ce(e,t.attribute):t.kind==="position"&&(r=ue(e)),!!r){var n=r.mutations.indexOf(t);n!==-1&&r.mutations.splice(n,1),r.mutationRunner(r)}}function fe(t){if(!(t.kind==="position"&&t.elements.size===1)){var e=new Set(t.elements),r=document.querySelectorAll(t.selector);r.forEach(function(n){e.has(n)||(t.elements.add(n),Be(t,n))})}}function ze(t){t.elements.forEach(function(e){return De(t,e)}),t.elements.clear(),Q.delete(t)}function se(){Q.forEach(fe)}var Pe=!1;var Z;function He(){typeof document>"u"||(Z||(Z=new MutationObserver(function(){se()})),se(),Z.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!1,characterData:!1}))}He();function U(t){return typeof document>"u"?Y:(Q.add(t),fe(t),{revert:function(){ze(t)}})}function K(t,e){return U({kind:"html",elements:new Set,mutate:e,selector:t})}function de(t,e){return U({kind:"position",elements:new Set,mutate:e,selector:t})}function C(t,e){return U({kind:"class",elements:new Set,mutate:e,selector:t})}function P(t,e,r){return be.test(e)?e==="class"||e==="className"?C(t,function(n){var a=r(Array.from(n).join(" "));n.clear(),a&&a.split(/\s+/g).filter(Boolean).forEach(function(p){return n.add(p)})}):U({kind:"attribute",attribute:e,elements:new Set,mutate:r,selector:t}):Y}function Je(t){var e=t.selector,r=t.action,n=t.value,a=t.attribute,p=t.parentSelector,u=t.insertBeforeSelector;if(a==="html"){if(r==="append")return K(e,function(l){return l+(n??"")});if(r==="set")return K(e,function(){return n??""})}else if(a==="class"){if(r==="append")return C(e,function(l){n&&l.add(n)});if(r==="remove")return C(e,function(l){n&&l.delete(n)});if(r==="set")return C(e,function(l){l.clear(),n&&l.add(n)})}else if(a==="position"){if(r==="set"&&p)return de(e,function(){return{insertBeforeSelector:u,parentSelector:p}})}else{if(r==="append")return P(e,a,function(l){return l!==null?l+(n??""):n??""});if(r==="set")return P(e,a,function(){return n??""});if(r==="remove")return P(e,a,function(){return null})}return Y}var je={html:K,classes:C,attribute:P,position:de,declarative:Je},X=je;import Ue from"dompurify";var T=class extends Error{constructor(){super("IAM page check exceeded its work budget")}},_=new WeakMap,$=new WeakSet;function ee(t){$.add(t)}function Ge(t){let e=new Set,r=new Set,n,a=0,p=!1,u=0,l,E=()=>{e.size||a||(n?.disconnect(),l!==void 0&&cancelAnimationFrame(l),t.removeEventListener("visibilitychange",f),_.delete(t))};function g(h){if(t.hidden)return;let M=performance.now(),w=new Map,v=new Map,V=()=>{if(performance.now()-M>8)throw new T},x=o=>{V();let i=w.get(o);return i||(i=t.querySelectorAll(o),w.set(o,i)),V(),i},R=re({querySelectorAll:x},V),W=o=>{let i=o.filter(m=>!w.has(m));if(!i.length)return;let s=new Map;for(let m of i){let d=/^([a-z][a-z0-9-]*)\[(id|data-testid|data-test|data-qa|data-indiana-id)="((?:[^"\\\x00-\x1f\x7f]|\\["\\])*)"\]$/.exec(m);if(!d)throw Error("Invalid IAM render selector");let[,y,k,A]=d,I=A.replace(/\\(["\\])/g,"$1"),O=s.get(y);O||s.set(y,O=new Map);let B=O.get(k);B||O.set(k,B=new Map);let F=B.get(I);F||B.set(I,F=[]),w.set(m,F)}V();let c=t.querySelectorAll(i.join(","));if(V(),c.length>8192)throw Error("IAM render selection budget exceeded");for(let m of c){let d=s.get(m.localName.toLowerCase());if(d)for(let[y,k]of d){let A=m.getAttribute(y);A!==null&&k.get(A)?.push(m)}V()}},S={query:x,checkpoint:V,matches(o,i){let s=v.get(i);if(!s){try{let c=!1;s={match:oe(o,t,location.pathname,V,m=>(c||(W(o.selectors),c=!0),R(m)))}}catch(c){s={error:c}}v.set(i,s)}if("error"in s)throw s.error;return s.match}},N=[],q=[],L=[];for(let o of h)if(e.has(o))try{N.push({job:o,commit:o.prepare(S)})}catch(i){if(i instanceof T)throw i;q.push({job:o,error:i})}V();for(let{job:o,error:i}of q)e.has(o)&&o.fail(i);for(let{job:o,commit:i}of N)if(e.has(o))try{V(),i(s=>L.push(s))}catch(s){if(s instanceof T)throw s;o.fail(s)}for(let o of L)o()}function b(h){if(!(l!==void 0||t.hidden))try{g(h),u=0}catch(M){if(!(M instanceof T))throw M;for(let w of[...e])w.suspend();if(u++>=2){for(let w of[...e])w.fail(M);return}l=requestAnimationFrame(()=>{l=void 0,b([...e])})}}function f(){p||!e.size||t.hidden||(p=!0,queueMicrotask(()=>{p=!1,b([...e])}))}return{begin(){a++},end(){--a===0&&(r.clear(),b([...e])),E()},add(h){return n||(n=new MutationObserver(M=>{let w=v=>$.has(v)||!!(v.parentNode&&$.has(v.parentNode));M.some(v=>!w(v.target)&&!(v.type==="childList"&&[...v.addedNodes,...v.removedNodes].length>0&&[...v.addedNodes,...v.removedNodes].every(w)))&&f()}),n.observe(t.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["style","hidden","data-indiana-id","data-indiana-release","data-testid","id","name"]}),t.addEventListener("visibilitychange",f)),e.add(h),a?r.add(h):b([h]),()=>{e.delete(h),r.delete(h),E()}}}}function pe(){let t=_.get(document);return t||(t=Ge(document),_.set(document,t)),t}function me(t){return pe().add(t)}function Ye(t){let e=pe();e.begin();try{t()}finally{e.end()}}var te,he;function ve(t){return(!te||he!==window)&&(te=Ue(window),he=window),te.sanitize(t,{USE_PROFILES:{html:!0},FORBID_TAGS:["form","input","textarea","select","button","style"]})}function ge(t){let e={...t};if(!["html","class","style","position","href","src","alt","title","id","role","hidden"].includes(e.attribute)&&!/^(aria|data)-[a-z0-9_-]+$/.test(e.attribute))throw new Error("Unsupported visual attribute");document.querySelector(e.selector);for(let r of document.querySelectorAll(e.selector))if(["SCRIPT","IFRAME","OBJECT","EMBED","HTML","HEAD"].includes(r.tagName)||r.tagName==="BODY"&&e.attribute==="html")throw new Error("Protected visual target");if(e.attribute==="html"&&(e.value=ve(e.value??"")),["href","src"].includes(e.attribute)&&e.action!=="remove"){let r=new URL(e.value??"",location.href);if(!["https:","http:","mailto:","tel:"].includes(r.protocol)||e.attribute==="src"&&!["https:","http:"].includes(r.protocol))throw new Error("Unsafe visual URL")}return e.parentSelector&&document.querySelector(e.parentSelector),e.insertBeforeSelector&&document.querySelector(e.insertBeforeSelector),e}function tt(t,e={}){if(t.renderGuard&&!e.requireUniqueTargets)throw new Error("IAM render guard requires the source release fence");if(e.requireUniqueTargets)return We(t,e);let r=t.domMutations.map(ge),n=[],a=!1,p=!1,u,l=()=>{if(!a){a=!0,u?.disconnect();for(let g of n.reverse())g()}},E=()=>{a||p||(!r.length||t.css||e.allowJs&&t.js||r.some(g=>document.querySelector(g.selector)))&&(p=!0,e.onApplied?.())};try{if(t.css){let f=document.createElement("style");e.nonce&&(f.nonce=e.nonce),f.textContent=t.css,document.head.append(f),n.push(()=>f.remove())}for(let f of r){let h=X.declarative(f);n.push(()=>h.revert())}if(e.allowJs&&t.js){let f=document.createElement("script");e.nonce&&(f.nonce=e.nonce),f.textContent=t.js,document.head.append(f),n.push(()=>f.remove())}let g=performance.now(),b=new WeakMap;u=new MutationObserver(f=>{if(!a){performance.now()-g>1e3&&(g=performance.now(),b=new WeakMap);for(let h of f){let M=(b.get(h.target)??0)+1;if(b.set(h.target,M),M>40){l(),e.onError?.(new Error("Visual changes conflict with repeated page rendering"));return}}E()}}),u.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,characterData:!0}),E()}catch(g){throw l(),g}return{revert:l,inspect(){return{status:"unavailable",total:0,applied:0}},get applied(){return p}}}function We(t,e){let r=e?.boundVariations??[t],n=new Set,a=new Set,p=[],u=new Map,l=r.flatMap(o=>o.renderGuard?[ne(o.renderGuard)]:[]),E=l[0];if(l.some(o=>JSON.stringify(o)!==JSON.stringify(E)))throw new Error("IAM variations use different render states");if(t.js||r.some(o=>o.js))throw Error("IAM scripts cannot execute");if(r.length>20||r.reduce((o,i)=>o+i.css.length,0)>262144)throw Error("IAM target budget");let g=(o,i)=>{for(let c of o.domMutations){if(c.action!=="set"||c.attribute!=="html")throw Error("Unsupported IAM mutation");n.add(c.selector),a.add(c.selector)}if(!o.css)return;let s=document.createElement("style");ee(s),s.media="not all",e?.nonce&&(s.nonce=e.nonce),s.textContent=o.css;try{if(document.head.append(s),!s.sheet)throw Error("IAM CSS is blocked");for(let c of s.sheet.cssRules){if(!("selectorText"in c)||typeof c.selectorText!="string")throw Error("Unsupported IAM style rule");n.add(c.selectorText),i&&p.push({selector:c.selectorText,css:c.cssText})}}finally{s.remove()}};for(let o of r)g(o,!1);if(g(t,!0),n.size>200)throw Error("IAM target budget");let b=t.domMutations.map(ge),f=!1,h=!1,M=!1,w=!1,v="",V=0,x=(o,i)=>{let s=`${o}:${i}`;if(s!==v&&(v=s,!(!e?.onTargetStatus||V>=32))){V++;try{e.onTargetStatus({status:o,total:n.size,matched:i})}catch{}}},R={},W=E?JSON.stringify(E):"",S,N="",q=()=>{if(!f){f=!0,R.unsubscribe?.();for(let o of u.values())o.revert();u.clear(),S?.remove(),S=void 0,h=!1}},L=()=>{for(let o of u.values())o.revert();u.clear(),S?.remove(),S=void 0,N="",h=!1};return R.unsubscribe=me({suspend:L,fail(o){q(),e?.onError?.(o)},prepare(o){if(E&&!o.matches(E,W))return s=>{f||(L(),w=!1,s(()=>{f||x("inactive",null)}))};let i=new Map;for(let s of n){let c=o.query(s);if(c.length>1)throw Error("IAM target is ambiguous in this rendered state");if(c.length){if(a.has(s)&&c[0].children.length)throw Error("IAM text target is no longer a leaf");i.set(s,c[0])}o.checkpoint()}return s=>{if(f)return;for(let[d,y]of u)i.get(d)!==y.element&&(y.revert(),u.delete(d));for(let d of new Set(b.map(y=>y.selector))){let y=i.get(d);if(!y||u.has(d))continue;let k=b.filter(A=>A.selector===d).map(A=>X.declarative(A));u.set(d,{element:y,revert:()=>k.forEach(A=>A.revert())})}let c=p.filter(d=>i.has(d.selector)).map(d=>d.css).join(`
2
2
  `);c!==N&&(N=c,c?(S||(S=document.createElement("style"),ee(S),e?.nonce&&(S.nonce=e.nonce),document.head.append(S)),S.textContent=c):(S?.remove(),S=void 0)),h=n.size===0||i.size>0;let m=i.size===n.size?"matched":i.size>0?"partial":w?"missing":"waiting";i.size&&(w=!0),s(()=>{f||x(m,i.size)}),h&&!M&&s(()=>{!f&&h&&!M&&(M=!0,e?.onApplied?.())})}}}),f&&R.unsubscribe(),{revert:q,inspect(){let o=b.length+p.reduce((m,d)=>m+(d.css.includes("font-size:")?1:0)+(d.css.includes("color:")?1:0),0);if(f)return{status:"error",total:o,applied:0};if(v.startsWith("inactive:"))return{status:"inactive",total:o,applied:0};if(!o)return{status:"no_changes",total:o,applied:0};let i=0,s=0;for(let m of b){let d=document.querySelectorAll(m.selector);d.length===1&&(s++,d[0].innerHTML===ve(m.value??"")&&i++)}let c=document.createElement("span");for(let m of p){let d=document.querySelectorAll(m.selector),y=d.length===1?d[0]:void 0,k=m.css.slice(m.css.indexOf("{")+1,m.css.lastIndexOf("}"));c.style.cssText=k;for(let A of["font-size","color"]){let I=c.style.getPropertyValue(A);I&&y?.isConnected&&(s++,getComputedStyle(y).getPropertyValue(A)===I&&i++)}}return{status:i===o?"applied":s?i?"partial":"mismatch":"waiting",total:o,applied:i}},get applied(){return h}}}export{Ye as a,ge as b,tt as c};
@@ -1 +1 @@
1
- var s={name:"@tinkerlandai/longplay-sdk",version:"0.10.4",description:"Framework-independent Longplay SDK for customer identity, entitlements, credits, offers and growth surfaces.",license:"UNLICENSED",repository:{type:"git",url:"git+https://github.com/tinkerlandai/Indiana.git",directory:"packages/sdk"},engines:{node:">=22"},publishConfig:{access:"public",tag:"beta"},type:"module",sideEffects:!1,files:["dist","README.md","README.zh-CN.md","CHANGELOG.md","THIRD_PARTY_NOTICES.md"],exports:{"./react-native":{types:"./dist/react-native.d.ts","react-native":"./dist/react-native.js",import:"./dist/react-native.js",default:"./dist/react-native.js"},".":{types:"./dist/index.d.ts",import:"./dist/index.js"},"./popup":{types:"./dist/popup.d.ts",import:"./dist/popup.js"},"./server":{types:"./dist/server.d.ts",import:"./dist/server.js"},"./openrouter":{types:"./dist/openrouter.d.ts",import:"./dist/openrouter.js"},"./native-shell":{types:"./dist/native-shell.d.ts",import:"./dist/native-shell.js"},"./page":{types:"./dist/page.d.ts",import:"./dist/page.js"},"./visual":{types:"./dist/visual.d.ts",import:"./dist/visual.js"}},scripts:{build:"tsup",prepack:"pnpm run build",typecheck:"tsc --noEmit",lint:"node ../../scripts/ci/lint.mjs --workspace packages/sdk"},dependencies:{"@ai-sdk/provider":"4.0.26","@types/json-schema":"7.0.15","css-tree":"^3.2.1","dom-mutator":"0.7.0",dompurify:"^3.4.15",zod:"4.6.6"},devDependencies:{"@indiana/contracts":"workspace:*","@openrouter/sdk":"^1.4.25","@types/css-tree":"^3.2.0",ai:"7.0.136",tsup:"^8.5.1",typescript:"^5.9.3","whatwg-url-minimum":"0.2.0"},peerDependencies:{"@openrouter/sdk":"^1.4.25"},peerDependenciesMeta:{"@openrouter/sdk":{optional:!0}}};var i="https://api.longplayai.com";export{s as a,i as b};
1
+ var s={name:"@tinkerlandai/longplay-sdk",version:"0.10.5",description:"Framework-independent Longplay SDK for customer identity, entitlements, credits, offers and growth surfaces.",license:"UNLICENSED",repository:{type:"git",url:"git+https://github.com/tinkerlandai/Indiana.git",directory:"packages/sdk"},engines:{node:">=22"},publishConfig:{access:"public",tag:"beta"},type:"module",sideEffects:!1,files:["dist","README.md","README.zh-CN.md","CHANGELOG.md","THIRD_PARTY_NOTICES.md"],exports:{"./react-native":{types:"./dist/react-native.d.ts","react-native":"./dist/react-native.js",import:"./dist/react-native.js",default:"./dist/react-native.js"},".":{types:"./dist/index.d.ts",import:"./dist/index.js"},"./popup":{types:"./dist/popup.d.ts",import:"./dist/popup.js"},"./server":{types:"./dist/server.d.ts",import:"./dist/server.js"},"./openrouter":{types:"./dist/openrouter.d.ts",import:"./dist/openrouter.js"},"./native-shell":{types:"./dist/native-shell.d.ts",import:"./dist/native-shell.js"},"./page":{types:"./dist/page.d.ts",import:"./dist/page.js"},"./visual":{types:"./dist/visual.d.ts",import:"./dist/visual.js"}},scripts:{build:"tsup",prepack:"pnpm run build",typecheck:"tsc --noEmit",lint:"node ../../scripts/ci/lint.mjs --workspace packages/sdk"},dependencies:{"@ai-sdk/provider":"4.0.26","@types/json-schema":"7.0.15","css-tree":"^3.2.1","dom-mutator":"0.7.0",dompurify:"^3.4.15",zod:"4.6.6"},devDependencies:{"@indiana/contracts":"workspace:*","@openrouter/sdk":"^1.4.25","@types/css-tree":"^3.2.0",ai:"7.0.136",tsup:"^8.5.1",typescript:"^5.9.3","whatwg-url-minimum":"0.2.0"},peerDependencies:{"@openrouter/sdk":"^1.4.25"},peerDependenciesMeta:{"@openrouter/sdk":{optional:!0}}};var i="https://api.longplayai.com";export{s as a,i as b};
@@ -1 +1 @@
1
- import{a as m,c as p}from"./chunk-7DXL3LHT.js";import{z as d}from"zod";var V=d.enum(["sandbox","live"]),j=d.object({projectId:d.string().min(1),environment:V}).strict();import{z as t}from"zod";var y=t.tuple([t.number().min(0).max(1),t.number().min(0).max(1)]).refine(([n,l])=>n<=l),A=t.strictObject({attribute:t.string().optional(),seed:t.string(),hashVersion:t.literal(2),ranges:t.array(y).max(100)}),E=t.strictObject({id:t.string().min(1).max(255),condition:p,gate:t.boolean().optional()}),$=t.strictObject({key:t.string().optional(),name:t.string().optional(),passthrough:t.boolean().optional()}),R={condition:p.optional(),parentConditions:t.array(E).max(100).optional(),weights:t.array(t.number().min(0).max(1)).max(20).optional(),coverage:t.number().min(0).max(1).optional(),hashAttribute:t.string().optional(),fallbackAttribute:t.string().optional(),hashVersion:t.literal(2).optional(),disableStickyBucketing:t.boolean().optional(),bucketVersion:t.number().int().nonnegative().optional(),minBucketVersion:t.number().int().nonnegative().optional(),filters:t.array(A).max(100).optional(),ranges:t.array(y).max(20).optional(),meta:t.array($).max(20).optional(),seed:t.string().optional(),name:t.string().optional(),phase:t.string().optional()},g=t.strictObject({...R,key:t.string().min(1).max(255),variations:t.tuple([m,m]).rest(m).refine(n=>n.length<=20),urlPatterns:t.array(t.strictObject({include:t.boolean(),type:t.enum(["regex","simple"]),pattern:t.string()})).max(100).optional(),force:t.number().int().nonnegative().optional(),active:t.boolean().optional(),persistQueryString:t.boolean().optional()}),C=t.strictObject({value:m,variationId:t.number().int(),key:t.string(),name:t.string().optional(),bucket:t.number().optional(),passthrough:t.boolean().optional(),inExperiment:t.boolean(),hashUsed:t.boolean().optional(),hashAttribute:t.string(),hashValue:t.string(),featureId:t.string().nullable(),stickyBucketUsed:t.boolean().optional()}),G=t.strictObject({...R,id:t.string().max(255).optional(),force:m.optional(),variations:t.array(m).min(2).max(20).optional(),key:t.string().optional(),range:y.optional(),tracks:t.array(t.strictObject({experiment:g,result:C})).max(100).optional()}),H=t.strictObject({defaultValue:m.optional(),rules:t.array(G).max(500).optional()}),b=t.record(t.string(),t.union([t.strictObject({type:t.literal("hashed"),attributeKey:t.string(),values:t.array(t.string().regex(/^[a-f0-9]{64}$/))}),t.strictObject({type:t.literal("list"),attributeKey:t.string(),values:t.array(t.union([t.string(),t.number()]))}),t.strictObject({type:t.literal("condition"),condition:p})])),Y=t.strictObject({scope:j,generation:t.string().regex(/^[a-f0-9]{64}$/),evaluatedAt:t.iso.datetime({offset:!0}),expiresAt:t.iso.datetime({offset:!0}).nullable(),features:t.record(t.string(),H),savedGroups:b,experiments:t.record(t.uuid(),g)});import{z as a}from"zod";import{z as e}from"zod";import{z as r}from"zod";var k=r.strictObject({schemaVersion:r.literal(1),renderKey:r.string().min(1).max(256),routeTemplate:r.string().startsWith("/").max(2048),selectors:r.array(r.string().regex(/^[a-z][a-z0-9-]*\[(?:id|data-testid|data-test|data-qa|data-indiana-id)="(?:[^"\\\x00-\x1f\x7f]|\\["\\])*"\]$/).max(512)),present:r.array(r.number().int().min(0)).min(1),absent:r.array(r.number().int().min(0))}).superRefine((n,l)=>{let o=[...n.present,...n.absent];(new Set(n.selectors).size!==n.selectors.length||new Set(o).size!==o.length||o.length!==n.selectors.length||o.some(s=>s>=n.selectors.length))&&l.addIssue({code:"custom",message:"Incomplete or ambiguous render signature"})}),O=r.strictObject({renderKey:r.string().min(1).max(256),routeKey:r.string().min(1).max(256),stateKey:r.string().min(1).max(256),documentKey:r.string().min(1).max(256),documentHash:r.string().regex(/^[a-f0-9]{64}$/),compositionKey:r.string().min(1).max(256),entryMode:r.enum(["hard","soft"]),match:r.strictObject({present:r.array(r.number().int().min(0)),absent:r.array(r.number().int().min(0))})});import{z as u}from"zod";var U=["enterprise-internal-indiana-test","tinkerland-indiana-prod"],h="[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",N=u.string().regex(new RegExp(`^${h}/${h}/${h}/manifest\\.json$`)),M=u.strictObject({kind:u.literal("gcs-resumable"),url:u.url(),bucket:u.enum(U),objectKey:N,byteLength:u.number().int().positive(),expiresAt:u.iso.datetime()}).superRefine((n,l)=>{let o=new URL(n.url),s=o.searchParams,z=["uploadType","upload_id","name","upload_protocol","ifGenerationMatch"];(o.origin!=="https://storage.googleapis.com"||o.username||o.password||o.hash||o.pathname!==`/upload/storage/v1/b/${n.bucket}/o`||[...s.keys()].some(S=>!z.includes(S)||s.getAll(S).length!==1)||s.get("uploadType")!=="resumable"||!/^[A-Za-z0-9_-]{1,4096}$/.test(s.get("upload_id")??"")||s.has("name")&&s.get("name")!==`app-manifests/${n.objectKey}`||s.has("upload_protocol")&&s.get("upload_protocol")!=="resumable"||s.has("ifGenerationMatch")&&s.get("ifGenerationMatch")!=="0")&&l.addIssue({code:"custom",message:"Invalid IAM upload capability"})});var i=e.string().min(1).max(256),c=e.string().regex(/^[a-f0-9]{64}$/),se=e.strictObject({versionId:e.uuid(),manifestDigest:c,sourceGraphDigest:c,pageKey:i,stateKey:i,documentKey:i,documentHash:c,elementKey:i.optional(),nodeId:i.optional(),contentHash:c.optional(),renderKey:i.optional()}),P=e.strictObject({pageKey:i,documentKey:i,expectedDocumentHash:c,renderKey:i.optional(),nodeId:i,elementKey:i,expectedContentHash:c,property:e.enum(["text","fontSize","color"]),value:e.union([e.string().max(4e3),e.number().finite()])}),w=e.strictObject({versionId:e.uuid(),manifestDigest:c,sourceGraphDigest:c,pageKey:i,stateKey:i,documentKey:i,documentHash:c,renderKey:i.optional(),patches:e.array(P.omit({pageKey:!0,documentKey:!0,expectedDocumentHash:!0,renderKey:!0})).min(1).max(200)}),B=/^[a-z][a-z0-9-]{0,39}$/,x=e.string().regex(B),K=e.enum(["web","ios","android"]),oe=e.discriminatedUnion("action",[e.strictObject({action:e.literal("register"),requestId:e.uuid(),client:x,platform:K,label:e.string().trim().min(1).max(100),sha256:c,bytes:e.number().int().min(1),transferBytes:e.number().int().min(1)}),e.strictObject({action:e.literal("complete"),versionId:e.uuid()}),e.strictObject({action:e.literal("current"),versionId:e.uuid(),expectedCurrent:e.uuid().nullable()}),e.strictObject({action:e.literal("delivery"),enabled:e.boolean()}),e.strictObject({action:e.literal("changes"),versionId:e.uuid(),experimentId:e.uuid(),variationId:i,changesetId:e.uuid().nullable(),expectedRevision:c.nullable(),editorUrl:e.string().url().max(2048),patches:e.array(P).max(200)})]),v=e.strictObject({id:e.uuid(),projectId:e.uuid(),environmentId:e.uuid(),clientKey:x,platform:K,label:e.string(),sha256:c,bytes:e.number().int().positive(),objectKey:e.string(),state:e.enum(["uploading","ready","rejected"]),isCurrent:e.boolean(),revision:e.number().int().nonnegative(),createdAt:e.string(),expiresAt:e.string(),readyAt:e.string().nullable(),summary:e.record(e.string(),e.json()),routeTree:e.json().nullable(),validation:e.record(e.string(),e.json())}),_=e.strictObject({key:x,platform:K,currentId:e.uuid().nullable()}),ce=e.strictObject({rows:e.array(v).max(100),nextCursor:e.uuid().nullable(),clients:e.array(_).max(20)}),f=e.strictObject({storedBytes:e.number().int().nonnegative(),reservedBytes:e.number().int().nonnegative(),chargedBytes:e.number().int().nonnegative(),versions:e.number().int().nonnegative(),objects:e.number().int().nonnegative(),orphanObjects:e.number().int().nonnegative(),missingReadyObjects:e.number().int().nonnegative(),unknownObjectSizes:e.number().int().nonnegative(),byteLimit:e.number().int().positive(),versionLimit:e.number().int().positive(),remainingBytes:e.number().int().nonnegative()}),me=e.strictObject({asOf:e.iso.datetime({offset:!0}),reclamation:e.literal("manual-review-required"),buckets:e.strictObject({source:f,runtime:f,previews:f})}),le=e.strictObject({version:v,actorId:e.uuid(),claims:e.record(e.string(),e.json())}),ue=e.strictObject({version:v,upload:M.nullable()}),pe=e.object({format:e.literal("indiana-route-state-index"),schemaVersion:e.literal(3),routes:e.array(e.object({routeKey:i,path:e.string(),documentKey:i,documentHash:c,initialStateKey:i,initialRenderKey:i})),renders:e.array(O)}).loose().superRefine((n,l)=>{(!n.renders||n.routes.some(o=>!n.renders?.some(s=>s.renderKey===o.initialRenderKey&&s.routeKey===o.routeKey&&s.documentKey===o.documentKey&&s.stateKey===o.initialStateKey&&s.documentHash===o.documentHash&&s.entryMode==="hard")))&&l.addIssue({code:"custom",message:"Incomplete render catalog"})}),ge=e.strictObject({rows:e.array(e.object({id:e.uuid(),name:e.string(),status:e.string(),variations:e.array(e.object({id:i,key:i,name:e.string().optional()}).loose())}).loose()),limited:e.boolean()}),de=e.strictObject({enabled:e.boolean(),allowedOrigins:e.array(e.string())});var D=a.strictObject({selector:a.string().min(1).max(2048),action:a.enum(["set","append","remove"]),attribute:a.string().min(1).max(128).refine(n=>["html","class","style","position","href","src","alt","title","id","role","hidden"].includes(n)||/^(aria|data)-[a-z0-9_-]+$/.test(n)),value:a.string().max(5e4).optional(),parentSelector:a.string().max(2048).optional(),insertBeforeSelector:a.string().max(2048).optional()}),T=a.strictObject({variation:a.string().min(1).max(128),description:a.string().max(2e3).default(""),css:a.string().max(1e5).default(""),js:a.string().max(1e5).default(""),domMutations:a.array(D).max(200).default([]),iam:w.optional(),renderGuard:k.optional()}),I=T.omit({variation:!0,description:!0,iam:!0}),F=g.omit({variations:!0,active:!0}).extend({changeId:a.string().regex(/^[a-f0-9]{64}$/),variations:a.tuple([I,I]).rest(I).refine(n=>n.length<=20)}),Ke=a.strictObject({trackExposures:a.boolean(),environmentId:a.uuid(),generation:a.string().regex(/^[a-f0-9]{64}$/),experiments:a.array(F).max(100),savedGroups:b});export{j as a,g as b,C as c,b as d,Y as e,k as f,se as g,x as h,Ke as i};
1
+ import{a as m,c as p}from"./chunk-XVT5BKJW.js";import{z as d}from"zod";var V=d.enum(["sandbox","live"]),j=d.object({projectId:d.string().min(1),environment:V}).strict();import{z as t}from"zod";var y=t.tuple([t.number().min(0).max(1),t.number().min(0).max(1)]).refine(([n,l])=>n<=l),A=t.strictObject({attribute:t.string().optional(),seed:t.string(),hashVersion:t.literal(2),ranges:t.array(y).max(100)}),E=t.strictObject({id:t.string().min(1).max(255),condition:p,gate:t.boolean().optional()}),$=t.strictObject({key:t.string().optional(),name:t.string().optional(),passthrough:t.boolean().optional()}),R={condition:p.optional(),parentConditions:t.array(E).max(100).optional(),weights:t.array(t.number().min(0).max(1)).max(20).optional(),coverage:t.number().min(0).max(1).optional(),hashAttribute:t.string().optional(),fallbackAttribute:t.string().optional(),hashVersion:t.literal(2).optional(),disableStickyBucketing:t.boolean().optional(),bucketVersion:t.number().int().nonnegative().optional(),minBucketVersion:t.number().int().nonnegative().optional(),filters:t.array(A).max(100).optional(),ranges:t.array(y).max(20).optional(),meta:t.array($).max(20).optional(),seed:t.string().optional(),name:t.string().optional(),phase:t.string().optional()},g=t.strictObject({...R,key:t.string().min(1).max(255),variations:t.tuple([m,m]).rest(m).refine(n=>n.length<=20),urlPatterns:t.array(t.strictObject({include:t.boolean(),type:t.enum(["regex","simple"]),pattern:t.string()})).max(100).optional(),force:t.number().int().nonnegative().optional(),active:t.boolean().optional(),persistQueryString:t.boolean().optional()}),C=t.strictObject({value:m,variationId:t.number().int(),key:t.string(),name:t.string().optional(),bucket:t.number().optional(),passthrough:t.boolean().optional(),inExperiment:t.boolean(),hashUsed:t.boolean().optional(),hashAttribute:t.string(),hashValue:t.string(),featureId:t.string().nullable(),stickyBucketUsed:t.boolean().optional()}),G=t.strictObject({...R,id:t.string().max(255).optional(),force:m.optional(),variations:t.array(m).min(2).max(20).optional(),key:t.string().optional(),range:y.optional(),tracks:t.array(t.strictObject({experiment:g,result:C})).max(100).optional()}),H=t.strictObject({defaultValue:m.optional(),rules:t.array(G).max(500).optional()}),b=t.record(t.string(),t.union([t.strictObject({type:t.literal("hashed"),attributeKey:t.string(),values:t.array(t.string().regex(/^[a-f0-9]{64}$/))}),t.strictObject({type:t.literal("list"),attributeKey:t.string(),values:t.array(t.union([t.string(),t.number()]))}),t.strictObject({type:t.literal("condition"),condition:p})])),Y=t.strictObject({scope:j,generation:t.string().regex(/^[a-f0-9]{64}$/),evaluatedAt:t.iso.datetime({offset:!0}),expiresAt:t.iso.datetime({offset:!0}).nullable(),features:t.record(t.string(),H),savedGroups:b,experiments:t.record(t.uuid(),g)});import{z as a}from"zod";import{z as e}from"zod";import{z as r}from"zod";var k=r.strictObject({schemaVersion:r.literal(1),renderKey:r.string().min(1).max(256),routeTemplate:r.string().startsWith("/").max(2048),selectors:r.array(r.string().regex(/^[a-z][a-z0-9-]*\[(?:id|data-testid|data-test|data-qa|data-indiana-id)="(?:[^"\\\x00-\x1f\x7f]|\\["\\])*"\]$/).max(512)),present:r.array(r.number().int().min(0)).min(1),absent:r.array(r.number().int().min(0))}).superRefine((n,l)=>{let o=[...n.present,...n.absent];(new Set(n.selectors).size!==n.selectors.length||new Set(o).size!==o.length||o.length!==n.selectors.length||o.some(s=>s>=n.selectors.length))&&l.addIssue({code:"custom",message:"Incomplete or ambiguous render signature"})}),O=r.strictObject({renderKey:r.string().min(1).max(256),routeKey:r.string().min(1).max(256),stateKey:r.string().min(1).max(256),documentKey:r.string().min(1).max(256),documentHash:r.string().regex(/^[a-f0-9]{64}$/),compositionKey:r.string().min(1).max(256),entryMode:r.enum(["hard","soft"]),match:r.strictObject({present:r.array(r.number().int().min(0)),absent:r.array(r.number().int().min(0))})});import{z as u}from"zod";var U=["enterprise-internal-indiana-test","tinkerland-indiana-prod"],h="[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",N=u.string().regex(new RegExp(`^${h}/${h}/${h}/manifest\\.json$`)),M=u.strictObject({kind:u.literal("gcs-resumable"),url:u.url(),bucket:u.enum(U),objectKey:N,byteLength:u.number().int().positive(),expiresAt:u.iso.datetime()}).superRefine((n,l)=>{let o=new URL(n.url),s=o.searchParams,z=["uploadType","upload_id","name","upload_protocol","ifGenerationMatch"];(o.origin!=="https://storage.googleapis.com"||o.username||o.password||o.hash||o.pathname!==`/upload/storage/v1/b/${n.bucket}/o`||[...s.keys()].some(S=>!z.includes(S)||s.getAll(S).length!==1)||s.get("uploadType")!=="resumable"||!/^[A-Za-z0-9_-]{1,4096}$/.test(s.get("upload_id")??"")||s.has("name")&&s.get("name")!==`app-manifests/${n.objectKey}`||s.has("upload_protocol")&&s.get("upload_protocol")!=="resumable"||s.has("ifGenerationMatch")&&s.get("ifGenerationMatch")!=="0")&&l.addIssue({code:"custom",message:"Invalid IAM upload capability"})});var i=e.string().min(1).max(256),c=e.string().regex(/^[a-f0-9]{64}$/),se=e.strictObject({versionId:e.uuid(),manifestDigest:c,sourceGraphDigest:c,pageKey:i,stateKey:i,documentKey:i,documentHash:c,elementKey:i.optional(),nodeId:i.optional(),contentHash:c.optional(),renderKey:i.optional()}),P=e.strictObject({pageKey:i,documentKey:i,expectedDocumentHash:c,renderKey:i.optional(),nodeId:i,elementKey:i,expectedContentHash:c,property:e.enum(["text","fontSize","color"]),value:e.union([e.string().max(4e3),e.number().finite()])}),w=e.strictObject({versionId:e.uuid(),manifestDigest:c,sourceGraphDigest:c,pageKey:i,stateKey:i,documentKey:i,documentHash:c,renderKey:i.optional(),patches:e.array(P.omit({pageKey:!0,documentKey:!0,expectedDocumentHash:!0,renderKey:!0})).min(1).max(200)}),B=/^[a-z][a-z0-9-]{0,39}$/,x=e.string().regex(B),K=e.enum(["web","ios","android"]),oe=e.discriminatedUnion("action",[e.strictObject({action:e.literal("register"),requestId:e.uuid(),client:x,platform:K,label:e.string().trim().min(1).max(100),sha256:c,bytes:e.number().int().min(1),transferBytes:e.number().int().min(1)}),e.strictObject({action:e.literal("complete"),versionId:e.uuid()}),e.strictObject({action:e.literal("current"),versionId:e.uuid(),expectedCurrent:e.uuid().nullable()}),e.strictObject({action:e.literal("delivery"),enabled:e.boolean()}),e.strictObject({action:e.literal("changes"),versionId:e.uuid(),experimentId:e.uuid(),variationId:i,changesetId:e.uuid().nullable(),expectedRevision:c.nullable(),editorUrl:e.string().url().max(2048),patches:e.array(P).max(200)})]),v=e.strictObject({id:e.uuid(),projectId:e.uuid(),environmentId:e.uuid(),clientKey:x,platform:K,label:e.string(),sha256:c,bytes:e.number().int().positive(),objectKey:e.string(),state:e.enum(["uploading","ready","rejected"]),isCurrent:e.boolean(),revision:e.number().int().nonnegative(),createdAt:e.string(),expiresAt:e.string(),readyAt:e.string().nullable(),summary:e.record(e.string(),e.json()),routeTree:e.json().nullable(),validation:e.record(e.string(),e.json())}),_=e.strictObject({key:x,platform:K,currentId:e.uuid().nullable()}),ce=e.strictObject({rows:e.array(v).max(100),nextCursor:e.uuid().nullable(),clients:e.array(_).max(20)}),f=e.strictObject({storedBytes:e.number().int().nonnegative(),reservedBytes:e.number().int().nonnegative(),chargedBytes:e.number().int().nonnegative(),versions:e.number().int().nonnegative(),objects:e.number().int().nonnegative(),orphanObjects:e.number().int().nonnegative(),missingReadyObjects:e.number().int().nonnegative(),unknownObjectSizes:e.number().int().nonnegative(),byteLimit:e.number().int().positive(),versionLimit:e.number().int().positive(),remainingBytes:e.number().int().nonnegative()}),me=e.strictObject({asOf:e.iso.datetime({offset:!0}),reclamation:e.literal("manual-review-required"),buckets:e.strictObject({source:f,runtime:f,previews:f})}),le=e.strictObject({version:v,actorId:e.uuid(),claims:e.record(e.string(),e.json())}),ue=e.strictObject({version:v,upload:M.nullable()}),pe=e.object({format:e.literal("indiana-route-state-index"),schemaVersion:e.literal(3),routes:e.array(e.object({routeKey:i,path:e.string(),documentKey:i,documentHash:c,initialStateKey:i,initialRenderKey:i})),renders:e.array(O)}).loose().superRefine((n,l)=>{(!n.renders||n.routes.some(o=>!n.renders?.some(s=>s.renderKey===o.initialRenderKey&&s.routeKey===o.routeKey&&s.documentKey===o.documentKey&&s.stateKey===o.initialStateKey&&s.documentHash===o.documentHash&&s.entryMode==="hard")))&&l.addIssue({code:"custom",message:"Incomplete render catalog"})}),ge=e.strictObject({rows:e.array(e.object({id:e.uuid(),name:e.string(),status:e.string(),variations:e.array(e.object({id:i,key:i,name:e.string().optional()}).loose())}).loose()),limited:e.boolean()}),de=e.strictObject({enabled:e.boolean(),allowedOrigins:e.array(e.string())});var D=a.strictObject({selector:a.string().min(1).max(2048),action:a.enum(["set","append","remove"]),attribute:a.string().min(1).max(128).refine(n=>["html","class","style","position","href","src","alt","title","id","role","hidden"].includes(n)||/^(aria|data)-[a-z0-9_-]+$/.test(n)),value:a.string().max(5e4).optional(),parentSelector:a.string().max(2048).optional(),insertBeforeSelector:a.string().max(2048).optional()}),T=a.strictObject({variation:a.string().min(1).max(128),description:a.string().max(2e3).default(""),css:a.string().max(1e5).default(""),js:a.string().max(1e5).default(""),domMutations:a.array(D).max(200).default([]),iam:w.optional(),renderGuard:k.optional()}),I=T.omit({variation:!0,description:!0,iam:!0}),F=g.omit({variations:!0,active:!0}).extend({changeId:a.string().regex(/^[a-f0-9]{64}$/),variations:a.tuple([I,I]).rest(I).refine(n=>n.length<=20)}),Ke=a.strictObject({trackExposures:a.boolean(),environmentId:a.uuid(),generation:a.string().regex(/^[a-f0-9]{64}$/),experiments:a.array(F).max(100),savedGroups:b});export{j as a,g as b,C as c,b as d,Y as e,k as f,se as g,x as h,Ke as i};
@@ -1,4 +1,4 @@
1
- import{a as j,b as N,c as $,d as Y}from"./chunk-HOW7NIIR.js";import{a as D}from"./chunk-DSPLGTQI.js";import{a as O}from"./chunk-MRN4HP4W.js";import{b as U,e as _,g as C}from"./chunk-XSVQHPQT.js";var te=e=>new TextEncoder().encode(JSON.stringify({events:e})).length;function re(e,t){let n=e,r=o=>Number.isInteger(o)&&o>=0;return!!n&&typeof n=="object"&&r(n.inserted)&&r(n.duplicates)&&r(n.skipped)&&Array.isArray(n.rejected)&&n.inserted+n.duplicates+n.skipped+n.rejected.length===t}function V(e){let t=[],n,r=(a,i)=>e.log?.(`${e.label} ${a}`,i);function o(a){n===void 0&&t.length&&(n=setTimeout(()=>{u()},a))}async function s(a){let i;try{i=await e.fetch(e.endpoint,{method:"POST",body:JSON.stringify({events:a}),headers:{"Content-Type":"text/plain"},keepalive:!0,credentials:"omit"})}catch(p){return r("not sent",{error:p}),!1}if(i.status===408||i.status===429||i.status>=500)return r("not sent",{status:i.status}),!1;if(!i.ok)return r("rejected",{status:i.status,events:a.length}),!0;let f;try{f=await i.json()}catch{f=void 0}return re(f,a.length)?(f.rejected.length&&r("rejected",{rejected:f.rejected}),!0):(r("not acknowledged",{status:i.status}),!1)}function u(){clearTimeout(n),n=void 0;let a=[];for(;t.length&&a.length<20&&(!a.length||te([...a,t[0]].map(i=>i.event))<=65536);)a.push(t.shift());return a.length?s(a.map(i=>i.event)).then(i=>{if(i)return o(1e3);let f=a.filter(p=>++p.attempts<5);f.length<a.length&&r("dropped after retries",{events:a.length-f.length}),t.unshift(...f),o(5e3)}):Promise.resolve()}return{push(a){t.push({event:a,attempts:0}),t.length>=20?u():o(1e3)},flush:u}}async function q(e,t,n,r={}){let o=r.message??"Invalid SDK JSON response",s=e.headers.get("content-length");if(!e.ok||!/^application\/json(?:;|$)/i.test(e.headers.get("content-type")??"")||s!==null&&(!/^\d+$/.test(s)||Number(s)>t)||!e.body)throw e.body?.cancel().catch(()=>{}),Error(o);let u=e.body.getReader(),a=[],i=0,f=!1,p=()=>{},g=new Promise((v,h)=>{p=()=>h(Error(o)),n.addEventListener("abort",p,{once:!0}),n.aborted&&p()});try{for(;;){let m=await Promise.race([u.read(),g]);if(m.done){f=!0;break}if(i+=m.value.byteLength,i>t)throw Error(o);a.push(m.value)}let v=new Uint8Array(i),h=0;for(let m of a)v.set(m,h),h+=m.length;return JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(v))}finally{n.removeEventListener("abort",p),f||u.cancel().catch(()=>{}),u.releaseLock()}}async function B(e,t){let n=e?.body;if(!n)return;let r=n.getReader(),o=0,s=!1,u,a=new Promise((p,g)=>{u=setTimeout(()=>g(Error("Exposure response timeout")),2e3)}),i=()=>{},f=new Promise((p,g)=>{i=()=>g(t?.reason),t?.addEventListener("abort",i,{once:!0}),t?.aborted&&i()});try{for(;;){let p=await Promise.race([r.read(),a,f]);if(p.done){s=!0;return}if(o+=p.value.byteLength,o>16384)throw Error("Exposure response budget")}}finally{clearTimeout(u),t?.removeEventListener("abort",i),s||r.cancel().catch(()=>{}),r.releaseLock()}}var fe=2*1024*1024,J=256*1024;async function G(e,t,n,r){let o=()=>{},s=new Promise((u,a)=>{o=()=>a(r.reason),r.addEventListener("abort",o,{once:!0}),r.aborted&&o()});try{let u=e(t,{...n,signal:r});return u.then(a=>{r.aborted&&a.body?.cancel().catch(()=>{})},()=>{}),await Promise.race([u,s])}finally{r.removeEventListener("abort",o)}}async function pe(e,t,n,r=!1){if(new TextEncoder().encode(n).byteLength>65536)throw Error("Exposure request budget");let o=new URL(t);o.searchParams.set("sdkVersion",O.version);let s=new AbortController,u=setTimeout(()=>s.abort(Error("Exposure request timeout")),5e3);try{let a=await G(e,o.href,{method:"POST",headers:{"Content-Type":"text/plain"},body:n,credentials:"omit",keepalive:r,redirect:"error"},s.signal);await B(a,s.signal)}finally{clearTimeout(u)}}function M(e){let t,n=!1;return{async read(r,o){if(n)throw Error("Experiment client stopped");t?.abort(Error("Experiment request superseded"));let s=new AbortController;t=s;let{signal:u}=s,a=setTimeout(()=>s.abort(Error("Experiment request timeout")),5e3);try{let i=await G(e,r,{cache:"no-cache",credentials:"omit",redirect:"error"},u),f=await q(i,o,u);return u.throwIfAborted(),f}finally{clearTimeout(a),t===s&&(t=void 0)}},destroy(){n=!0,t?.abort(Error("Experiment client stopped")),t=void 0}}}/*!
1
+ import{a as j,b as N,c as $,d as Y}from"./chunk-ABL2UMTI.js";import{a as D}from"./chunk-DSPLGTQI.js";import{a as O}from"./chunk-MSOVR5KN.js";import{b as U,e as _,g as C}from"./chunk-BI4R5Q7Z.js";var te=e=>new TextEncoder().encode(JSON.stringify({events:e})).length;function re(e,t){let n=e,r=o=>Number.isInteger(o)&&o>=0;return!!n&&typeof n=="object"&&r(n.inserted)&&r(n.duplicates)&&r(n.skipped)&&Array.isArray(n.rejected)&&n.inserted+n.duplicates+n.skipped+n.rejected.length===t}function V(e){let t=[],n,r=(a,i)=>e.log?.(`${e.label} ${a}`,i);function o(a){n===void 0&&t.length&&(n=setTimeout(()=>{u()},a))}async function s(a){let i;try{i=await e.fetch(e.endpoint,{method:"POST",body:JSON.stringify({events:a}),headers:{"Content-Type":"text/plain"},keepalive:!0,credentials:"omit"})}catch(p){return r("not sent",{error:p}),!1}if(i.status===408||i.status===429||i.status>=500)return r("not sent",{status:i.status}),!1;if(!i.ok)return r("rejected",{status:i.status,events:a.length}),!0;let f;try{f=await i.json()}catch{f=void 0}return re(f,a.length)?(f.rejected.length&&r("rejected",{rejected:f.rejected}),!0):(r("not acknowledged",{status:i.status}),!1)}function u(){clearTimeout(n),n=void 0;let a=[];for(;t.length&&a.length<20&&(!a.length||te([...a,t[0]].map(i=>i.event))<=65536);)a.push(t.shift());return a.length?s(a.map(i=>i.event)).then(i=>{if(i)return o(1e3);let f=a.filter(p=>++p.attempts<5);f.length<a.length&&r("dropped after retries",{events:a.length-f.length}),t.unshift(...f),o(5e3)}):Promise.resolve()}return{push(a){t.push({event:a,attempts:0}),t.length>=20?u():o(1e3)},flush:u}}async function q(e,t,n,r={}){let o=r.message??"Invalid SDK JSON response",s=e.headers.get("content-length");if(!e.ok||!/^application\/json(?:;|$)/i.test(e.headers.get("content-type")??"")||s!==null&&(!/^\d+$/.test(s)||Number(s)>t)||!e.body)throw e.body?.cancel().catch(()=>{}),Error(o);let u=e.body.getReader(),a=[],i=0,f=!1,p=()=>{},g=new Promise((v,h)=>{p=()=>h(Error(o)),n.addEventListener("abort",p,{once:!0}),n.aborted&&p()});try{for(;;){let m=await Promise.race([u.read(),g]);if(m.done){f=!0;break}if(i+=m.value.byteLength,i>t)throw Error(o);a.push(m.value)}let v=new Uint8Array(i),h=0;for(let m of a)v.set(m,h),h+=m.length;return JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(v))}finally{n.removeEventListener("abort",p),f||u.cancel().catch(()=>{}),u.releaseLock()}}async function B(e,t){let n=e?.body;if(!n)return;let r=n.getReader(),o=0,s=!1,u,a=new Promise((p,g)=>{u=setTimeout(()=>g(Error("Exposure response timeout")),2e3)}),i=()=>{},f=new Promise((p,g)=>{i=()=>g(t?.reason),t?.addEventListener("abort",i,{once:!0}),t?.aborted&&i()});try{for(;;){let p=await Promise.race([r.read(),a,f]);if(p.done){s=!0;return}if(o+=p.value.byteLength,o>16384)throw Error("Exposure response budget")}}finally{clearTimeout(u),t?.removeEventListener("abort",i),s||r.cancel().catch(()=>{}),r.releaseLock()}}var fe=2*1024*1024,J=256*1024;async function G(e,t,n,r){let o=()=>{},s=new Promise((u,a)=>{o=()=>a(r.reason),r.addEventListener("abort",o,{once:!0}),r.aborted&&o()});try{let u=e(t,{...n,signal:r});return u.then(a=>{r.aborted&&a.body?.cancel().catch(()=>{})},()=>{}),await Promise.race([u,s])}finally{r.removeEventListener("abort",o)}}async function pe(e,t,n,r=!1){if(new TextEncoder().encode(n).byteLength>65536)throw Error("Exposure request budget");let o=new URL(t);o.searchParams.set("sdkVersion",O.version);let s=new AbortController,u=setTimeout(()=>s.abort(Error("Exposure request timeout")),5e3);try{let a=await G(e,o.href,{method:"POST",headers:{"Content-Type":"text/plain"},body:n,credentials:"omit",keepalive:r,redirect:"error"},s.signal);await B(a,s.signal)}finally{clearTimeout(u)}}function M(e){let t,n=!1;return{async read(r,o){if(n)throw Error("Experiment client stopped");t?.abort(Error("Experiment request superseded"));let s=new AbortController;t=s;let{signal:u}=s,a=setTimeout(()=>s.abort(Error("Experiment request timeout")),5e3);try{let i=await G(e,r,{cache:"no-cache",credentials:"omit",redirect:"error"},u),f=await q(i,o,u);return u.throwIfAborted(),f}finally{clearTimeout(a),t===s&&(t=void 0)}},destroy(){n=!0,t?.abort(Error("Experiment client stopped")),t=void 0}}}/*!
2
2
  Portions ported from GrowthBook sdk-js @ ed29827 (GrowthBook.ts auto experiments, util.ts mergeQueryStrings,
3
3
  plugins/auto-attributes.ts). Copyright (c) GrowthBook, Inc. MIT License.
4
4
  */function ne(e,t){let n,r;try{n=new URL(e),r=new URL(t)}catch{return t}return n.searchParams.forEach((o,s)=>{r.searchParams.has(s)||r.searchParams.set(s,o)}),r.toString()}function oe(e,t){let n=navigator.userAgent,r=new URLSearchParams(t.search),o={};for(let s of["source","medium","campaign","term","content"]){let u=r.get(`utm_${s}`);u!==null&&(o[`utm${s[0].toUpperCase()}${s.slice(1)}`]=u)}return{id:e,deviceId:e,url:t.href,path:t.pathname,host:t.host,query:t.search,pageTitle:typeof document>"u"?"":document.title,browser:/Edg/.test(n)?"edge":/Chrome/.test(n)?"chrome":/Firefox/.test(n)?"firefox":/Safari/.test(n)?"safari":"unknown",deviceType:/Mobi/.test(n)?"mobile":"desktop",...o}}function ie(e){let t=e;if(!(!!t&&typeof t=="object"&&typeof t.environmentId=="string"&&typeof t.trackExposures=="boolean"&&/^[a-f0-9]{64}$/.test(t.generation??"")&&Array.isArray(t.experiments)&&t.experiments.length<=100&&t.experiments.every(r=>!!r&&!["namespace","status","url","groups"].some(o=>Object.hasOwn(r,o))&&(r.hashVersion===void 0||r.hashVersion===2)&&typeof r.key=="string"&&Array.isArray(r.variations)&&r.variations.length>=2&&r.variations.every(o=>!!o&&typeof o.urlRedirect=="string")&&(r.urlPatterns===void 0||Array.isArray(r.urlPatterns)))&&!!t.savedGroups&&typeof t.savedGroups=="object"&&!Array.isArray(t.savedGroups)))throw new Error("Invalid page experiment payload");return t}function be(e){if(e.configuration&&e.configuration.scope.environmentId!==e.environmentId)throw new Error("Page configuration belongs to another App environment");let t=$(e.baseUrl);if(!/^[0-9a-f-]{36}$/i.test(e.environmentId))throw new Error("environmentId must be the App environment ID");let n=e.fetch??globalThis.fetch.bind(globalThis),r=M(async(c,d)=>{let l=await n(c,d);if(!l.ok)throw l.body?.cancel().catch(()=>{}),new Error(`Page experiments unavailable (${l.status})`);return l}),o=e.log?(c,d)=>D(e.log,c,d):void 0,s=`${t}/api/v1/page-experiments/${e.environmentId}`,u=j(e.deviceIdCookie??"indiana_did"),a=N(),i=null,f={...e.attributes??{}},p="",g=!1,v=!1,h=0,m=0,w=new Map,T=V({endpoint:`${s}/events`,fetch:n,log:o,label:"Exposure"}),P=T.flush,E={trackedExperiments:new Set,log:o,onExperimentViewed:(c,d)=>{e.trackExposures===!1||i?.trackExposures===!1||T.push({eventUuid:crypto.randomUUID(),timestamp:new Date().toISOString(),deviceId:u,...a?{sessionId:a}:{},url:location.href,pageTitle:document.title.slice(0,512),experimentKey:c.key,variationKey:d.key})}},H=()=>{E.url=location.href,E.attributes={...oe(u,location),...f}};function Q(c){if(!e.disableCrossOriginUrlRedirects)return!1;try{let d=new URL(location.href);return c.variations.some(l=>{if(!l.urlRedirect)return!1;let y=new URL(l.urlRedirect);return y.protocol!==d.protocol||y.host!==d.host})}catch{return!0}}function K(c,d){let l=e.configuration?.snapshot?.generation,y=m,z=location.href;p=c;let W=e.navigate??(x=>location.replace(x)),Z=e.navigateDelay??(e.navigate?0:100),ee=e.maxNavigateDelay??1e3;Promise.all([Promise.race([d,new Promise(x=>setTimeout(x,ee))]),new Promise(x=>setTimeout(x,Z))]).then(()=>{!g&&y===m&&location.href===z&&(!e.configuration||e.configuration.fresh&&e.configuration.snapshot?.generation===l)&&W(c)})}function b(){if(!(!i||g||e.configuration&&!e.configuration.fresh)){H();for(let c of i.experiments){if(Q(c)){o?.("Auto experiment blocked",{id:c.key});continue}let d;try{d=C(c,E)}catch(l){o?.("Skipping page experiment",{id:c.key,error:String(l)});continue}if(w.set(c.key,d),!!d.inExperiment){if(d.value.urlRedirect){let l=c.persistQueryString?ne(location.href,d.value.urlRedirect):d.value.urlRedirect;U(l,c.urlPatterns??[])?o?.("Skipping redirect because original URL matches redirect URL",{id:c.key}):l!==p&&K(l,P())}break}}}}let R="",F=()=>{location.href!==R&&(m++,R=location.href,p="",b())},A,S;function X(){A??=Y(F),addEventListener("pagehide",L)}let L=()=>{P()};async function k(){if(g)return!1;let c=++h,d;try{d=e.configuration?await e.configuration.pageExperiments():await r.read(s,J)}catch(y){if(g||c!==h)return!1;throw y}if(g||c!==h)return!1;let l=ie(d);if(l.environmentId.toLowerCase()!==e.environmentId.toLowerCase())throw new Error("Page experiment payload scope changed");return i?.trackExposures===!1&&l.trackExposures&&E.trackedExperiments?.clear(),i=l,E.savedGroups=_(l.savedGroups),!0}function I(){g||(S??=e.configuration?.subscribe(()=>{!g&&e.configuration?.fresh&&k().then(c=>{c&&b()}).catch(c=>o?.("Page configuration unavailable",{error:String(c)}))}),X(),R=location.href)}return{async start(){v||g||(v=!0,await k()&&(I(),b()))},async refresh(){await k()&&(m++,v&&I(),p="",b())},setAttributes(c){m++,p="",f={...c},b()},getResults(){return new Map(w)},get generation(){return i?.generation??null},destroy(){g||(g=!0,h++,r.destroy(),S?.(),A?.(),removeEventListener("pagehide",L),i=null,w.clear(),P())}}}export{fe as a,pe as b,M as c,ne as d,oe as e,ie as f,be as g};
@@ -1 +1 @@
1
- import{a as ue,b as me,c as ye,d as ge,e as ve}from"./chunk-SBPTOOYB.js";import{M as fe,Y as le}from"./chunk-2HFA34QO.js";import{ea as pe,oa as we,qa as m}from"./chunk-ACF2FBUB.js";import{b as he,e as be}from"./chunk-EARSGITJ.js";import{d as Ie}from"./chunk-HOW7NIIR.js";import{a as z}from"./chunk-DSPLGTQI.js";import{b as de}from"./chunk-XSVQHPQT.js";function Ce(e){let b=e.view;if(!b?.paywall)throw new m("INVALID_REQUEST","The current node is not a Paywall");let n=b.paywall.receiptId,P=b.nodeId,y=b.visit,p=b.paywall.resolution,u=p,f="document"in p?p:null;function s(i){if(!me(i,p))throw new m("INVALID_RESPONSE","The pinned Paywall binding changed")}let o=b.paywall.quote,D=b.paywall.operation,C=!1,$=new AbortController,d=b.paywall.purchaseRequestId,r=0,c=b.paywall.selectionGeneration??0,T=b.paywall.canReselect===!0,A=null,O=new Map,g=new Map,V=new Map;function L(i){if(i.purchase&&i.purchase.receiptId!==n)throw new m("INVALID_RESPONSE","Purchase receipt changed");let a=i.run.paywall;return i.purchase??(a?.receiptId===n?a:null)}function S(){if(C)throw new m("IDENTITY_CHANGED","Paywall presentation has closed")}function _(i,a,l){if(S(),a!==r||l!==void 0&&o?.operationId!==l)return!1;let I=c,w=i.run.paywall;if(w?.receiptId===n){if((w.selectionGeneration??0)<c)return!1;c=w.selectionGeneration??0,T=w.canReselect===!0,s(w.resolution)}let v=L(i),h=c>I,k=h?v?.quote??null:v?.quote??o,E=v?.operation??(k?.operationId===o?.operationId?D:null);return k&&E&&ye(E,{operationId:k.operationId},"Purchase operation changed"),w?.receiptId===n&&(u=w.resolution,f="document"in u?u:f?{...u,document:f.document,offering:f.offering,capabilities:ue(u.capabilities,f.capabilities)}:null),(h||k?.operationId!==o?.operationId)&&(r++,w?.receiptId===n&&(d=w.purchaseRequestId)),o=k,D=ve(D,E,!0),!0}function x(i,a,l){return new Promise((I,w)=>{let v=!1,h=()=>{clearTimeout(B),$.signal.removeEventListener("abort",H)},k=F=>{v||(v=!0,h(),I(F))},E=F=>{v||(v=!0,h(),w(F))},H=()=>E(new m("IDENTITY_CHANGED","Paywall presentation has closed")),B=setTimeout(()=>E(new m("COMMAND_PENDING","The purchase command is still pending; retry the original request",202,l)),Math.max(0,a-Date.now()));$.signal.addEventListener("abort",H,{once:!0}),$.signal.aborted&&H(),i.then(k,E)})}function J(i){return new Promise(a=>{let l=()=>{clearTimeout(I),$.signal.removeEventListener("abort",l),a()},I=setTimeout(l,i);$.signal.addEventListener("abort",l,{once:!0}),$.signal.aborted&&l()})}async function j(i,a,l){S();let I=O.get(i);if(!I){let h=e.pendingCommands?.find(k=>k.requestId===i)??e.pendingCommand;if(h?.operation==="submit"&&h.requestId===i&&h.nodeId===P&&h.visit===y){a.type==="paywall_quote"&&h.input.type==="paywall_quote"&&h.input.predecessor&&!a.predecessor&&(a={...a,predecessor:h.input.predecessor});let k=le.parse(h),E=le.parse({...h,input:a});if(E.operation!=="submit"||k.operation!=="submit"||JSON.stringify(E.input)!==JSON.stringify(k.input))throw new m("CONFLICT","A restored purchase request cannot change its input");a=E.input,I=k,O.set(i,I)}}if(I){if(JSON.stringify(I.input)!==JSON.stringify(a))throw new m("CONFLICT","A purchase request cannot change its input")}else{let h=e.view;if(!h||h.nodeId!==P||h.visit!==y||h.paywall?.receiptId!==n)throw new m("PRECONDITION_FAILED","The Paywall visit has changed");I={operation:"submit",requestId:i,nodeId:P,visit:y,revision:h.revision,input:a},O.set(i,I)}let w=Date.now()+3e4,v=await x(e.submit(I),w,i);for(;v.run.pendingRequest?.requestId===i&&Date.now()<w&&!C&&(await J(Math.min(1e3,w-Date.now())),!(C||Date.now()>=w));)v=await x(e.resume(i),w,i);if(C)throw new m("IDENTITY_CHANGED","Paywall presentation has closed");if(v.run.pendingRequest?.requestId===i)throw new m("COMMAND_PENDING","The purchase command is still pending; retry the original request",202,i);if(!_(v,l,a.type==="paywall_confirm"||a.type==="paywall_cancel"?a.operationId:void 0))throw new m("PRECONDITION_FAILED","The purchase selection has changed")}async function q(i){if(!o)throw new m("INVALID_REQUEST","A quoted purchase is required");let a=`${i}:${o.operationId}`,l=g.get(a);if(!l){let I=i==="confirm"?"paywall_confirm":"paywall_cancel",w=e.pendingCommands?.find(v=>v.operation==="submit"&&v.input.type===I&&"operationId"in v.input&&v.input.operationId===o.operationId)??e.pendingCommand;l=w?.operation==="submit"&&w.input.type===I&&"operationId"in w.input&&w.input.operationId===o.operationId?w.requestId:crypto.randomUUID(),g.set(a,l)}if(await j(l,{type:i==="confirm"?"paywall_confirm":"paywall_cancel",operationId:o.operationId},r),!D)throw new m("INVALID_RESPONSE","The accepted purchase result is missing");return structuredClone(D)}return{get view(){return structuredClone(f)},get quote(){return o?structuredClone(o):null},get operation(){return D?structuredClone(D):null},get webViewUrl(){return e.webViewUrl},get canReselect(){return T},async refresh(){S();let i=r,a=await e.get();if(_(a,i),a.run.paywall?.receiptId!==n)throw new m("PRECONDITION_FAILED","Paywall presentation has changed");if(!f){if("document"in u||!e.resolvePaywall)throw new m("INVALID_RESPONSE","Public Paywall reader is unavailable");let l=await e.resolvePaywall(u);S(),s(l),f={...u,document:l.document,offering:l.offering,capabilities:ue(u.capabilities,l.capabilities)}}return structuredClone(f)},preview(i){if(!f)return Promise.reject(new m("PRECONDITION_FAILED","Load the Paywall presentation first"));if(d&&d!==i.requestId&&(A||!T))return Promise.reject(new m("COMMAND_PENDING","Retry the original purchase before starting another"));let a=f.document.buttons[i.actionId],l=a?.type==="checkout"?fe(a.product,i.selection,f.capabilities):null;if(!l)return Promise.reject(new m("PRODUCT_UNAVAILABLE","Choose an available Product in this purchase area"));let I=we(f.document.screen,l,i.selection,f.capabilities),w=JSON.stringify({actionId:i.actionId,product:l,featureQuantities:I,offerId:i.offerId,nativeOffer:i.nativeOffer});if(V.has(i.requestId)&&V.get(i.requestId)!==w)return Promise.reject(new m("CONFLICT","A purchase request cannot change its quantities or Product"));if(V.set(i.requestId,w),d===i.requestId&&A)return A;let v=d!==i.requestId&&c>0?{operationId:o?.operationId??null,generation:c}:void 0;if(v&&(!T||c<=0))return Promise.reject(new m("COMMAND_PENDING","Original purchase requires authoritative termination"));d!==i.requestId&&r++;let h=r;d=i.requestId;let k=(async()=>{if(await j(i.requestId,{type:"paywall_quote",actionId:i.actionId,productVersionId:l,...Object.keys(I).length?{featureQuantities:I}:{},...v?{predecessor:v}:{},...i.offerId?{offerId:i.offerId}:{},...i.nativeOffer?{nativeOffer:i.nativeOffer}:{}},h),!o)throw new m("INVALID_RESPONSE","The accepted quote is missing");return ge(o,{productVersionId:l,featureQuantities:I},"The selected purchase changed"),structuredClone(o)})();return A=k,k.then(()=>{A===k&&(A=null)},E=>{A===k&&(A=null),d===i.requestId&&e.pendingCommand?.requestId!==i.requestId&&E instanceof m&&E.status!==void 0&&E.status<500&&![401,425].includes(E.status)&&(d=null)}),k},confirm:()=>q("confirm"),cancel:()=>q("cancel"),async read(){if(S(),!o)throw new m("INVALID_REQUEST","A quoted purchase is required");let i=o.operationId,a=r,l=e.pendingCommands?.find(h=>h.operation==="submit"&&(h.input.type==="paywall_confirm"||h.input.type==="paywall_cancel")&&h.input.operationId===i)??e.pendingCommand;l?.operation==="submit"&&(l.input.type==="paywall_confirm"||l.input.type==="paywall_cancel")&&l.input.operationId===i&&await e.settle?.(l.requestId);let I=await e.get(void 0,{receiptId:n,operationId:i});S();let w=L(I);if(w?.quote&&w.quote.operationId!==i||w?.operation&&w.operation.operationId!==i)throw new m("INVALID_RESPONSE","Purchase operation changed");let v=_(I,a,i)?D:w?.operation;if(!v)throw new m("INVALID_RESPONSE","The current purchase result is missing");return structuredClone(v)},destroy(){C=!0,$.abort(),O.clear(),g.clear(),V.clear()}}}function Ee(e){let b=new Set,n=new Set,P=null;function y(p){if(e.reviewing||b.has(p)||n.has(p)||e.stopped)return;n.add(p);let u=async()=>{if(e.reviewing||e.stopped||e.key!==p){n.delete(p);return}if(e.busy||e.client.pendingCommand){setTimeout(()=>{u()},250);return}let f=(async()=>{let o=e.client.view,D=e.expected(),C=D.requestId,$=!1;try{await e.client.submit({operation:"shown",...D})}catch(d){if(!(d instanceof m)||d.code!=="CONFLICT"||d.status!==409||e.client.pendingCommand)throw d;await e.client.get();let r=e.client.view;if(e.stopped||e.reviewing||e.key!==p||!r||!o||r.id!==o.id||r.source.versionId!==o.source.versionId||r.nodeId!==D.nodeId||r.visit!==D.visit||r.revision<=D.revision||r.stopped||!r.screen||!["running","waiting"].includes(r.status)||e.client.pendingCommand)throw d;let c=e.expected();C=c.requestId,await e.client.submit({operation:"shown",...c})}for(;!e.stopped&&e.key===p&&e.client.pendingCommand?.requestId===C;){if(!e.client.settle)throw new m("COMMAND_PENDING","The original display acknowledgement is still pending");await e.client.settle(C),$=!0,e.client.pendingCommand?.requestId===C&&await new Promise(d=>setTimeout(d,1500))}e.stopped||e.key!==p||($&&await e.client.get(),!(e.stopped||e.key!==p)&&b.add(p))})();P=f;let s=()=>{P===f&&(P=null),n.delete(p)};f.then(s,o=>{s(),e.busy||e.fail(o)})};u()}return{report:y,get inFlight(){return P}}}function Pe(e){let b={},n=new Map;async function P(y){let p=e.client.view,u=p?.screen,f=u?.customerData.nodes[y.nodeId];if(e.stopped||e.busy||!p||!u||!f)return;if(!["refresh","next","previous","filter","sources_next","sources_previous"].includes(y.action)){let r=e.document,c=r?pe(r,y.nodeId):null,T=c?.type==="customer_data"?c.data.outputs?.[y.action]:void 0;T&&u.outputs.includes(T)?await e.perform(()=>e.client.submit({operation:"submit",...e.expected(),input:{type:"screen",output:T,answers:e.answers,selection:y.value?{[y.nodeId]:y.value}:{}}})):await e.onIntent?.(y,p);return}let o=y.action.startsWith("sources_")?f.resources.find(r=>r.key===y.value):null;if(y.action.startsWith("sources_")&&!o)throw new m("INVALID_REQUEST","Choose a current resource");let D=`${p.visit}:${y.nodeId}:${o?.key??""}`,C=n.get(D)??[null],d=b[y.nodeId]??{page:1,after:null,filter:"all",...o?{resourceKey:o.key}:{}};if(y.action==="filter"){let r=y.value;if(!r||!(f.source==="offer_history"?["all","issued","reserved","redeemed","expired","revoked"]:["all","purchase","refund","source","usage","debt","settlement"]).includes(r))throw new m("INVALID_REQUEST","Unknown data filter");d={page:1,after:null,filter:r},C.splice(0,C.length,null)}else if(y.action==="next"||y.action==="sources_next"){let r=o?.sources.at(-1),c=o?r?{kind:"ledger",cursor:{at:r.detail[0],id:r.id,type:"source"}}:null:u.dataCursors[y.nodeId];if(!c||!o&&!f.hasNext)return;C[d.page]=c,d={...d,page:d.page+1,after:c}}else if(y.action==="previous"||y.action==="sources_previous"){if(d.page<=1)return;d={...d,page:d.page-1,after:C[d.page-2]??null}}n.set(D,C),b={...b,[y.nodeId]:d},await e.perform(()=>e.client.get({nodeId:p.nodeId,visit:p.visit,revision:p.revision,components:b}))}return{get queries(){return b},intent:P,reset(){b={},n.clear()}}}function Re(e){let{doc:b,holder:n,reviewHolder:P,mountScreenPreview:y}=e,p=!1,u,f=0,s=null,o="",D=new Map,C=r=>r?`${r.id}:${r.nodeId}:${r.visit}:${r.revision}:${r.paywall?.quote?.operationId??""}`:"";async function $(r){if(e.stopped||!e.client.review)return;p||(o=C(e.client.view),D.set(o,structuredClone(e.answers))),p=!0,u=r,n.hidden=!0,e.suspend(!0),P.hidden=!1;let c=++f;try{let T=await e.client.review(r);if(e.stopped||c!==f||!p)return;if(!T.review)throw new m("INVALID_RESPONSE","Historical projection is missing");s?.destroy(),s=null,P.replaceChildren();let A=T.run.locale.startsWith("zh"),O=b.createElement("p");O.textContent=A?"\u53EA\u8BFB\u56DE\u770B":"Read-only history",P.append(O);for(let[L,S]of T.review.pages.entries()){let _=b.createElement("button");_.type="button",_.textContent=A?`\u7B2C ${L+1} \u9875`:`Page ${L+1}`,_.onclick=()=>{$(S.receiptId)},P.append(_)}if(T.review.page){let L=T.review.page,S=b.createElement("div");if(S.inert=!0,P.append(S),s=y(S,{mode:"live",rendererUrl:e.client.webViewUrl,title:L.document.name,onAction:()=>{},onAnswers:()=>{},onCustomerDataIntent:()=>{},onRendered:()=>{},onEscape:()=>{d()}}),s.update(L.document,T.run.locale,{serverInput:{bindings:L.inputs,answers:L.answers,values:L.values}}),await s.ready,e.stopped||c!==f||!p)return}let g=A?{issued:"\u5DF2\u9886\u53D6",reserved:"\u5DF2\u9884\u7559",redeemed:"\u5DF2\u4F7F\u7528",expired:"\u5DF2\u8FC7\u671F",revoked:"\u5DF2\u64A4\u9500",unknown:"\u72B6\u6001\u5F85\u786E\u8BA4"}:{issued:"Issued",reserved:"Reserved",redeemed:"Used",expired:"Expired",revoked:"Revoked",unknown:"Status unconfirmed"},V=A?{pending:"\u5904\u7406\u4E2D",complete:"\u5DF2\u5B8C\u6210",cancelled:"\u5DF2\u53D6\u6D88",failed:"\u5931\u8D25",unknown:"\u72B6\u6001\u5F85\u786E\u8BA4"}:{pending:"Processing",complete:"Completed",cancelled:"Cancelled",failed:"Failed",unknown:"Status unconfirmed"};for(let L of[...T.review.coupons.map((S,_)=>`${A?"\u4F18\u60E0\u5238":"Coupon"} ${_+1}: ${g[S.status]}`),...T.review.purchases.map((S,_)=>`${A?"\u8D2D\u4E70":"Purchase"} ${_+1}: ${V[S.status]}`)]){let S=b.createElement("p");S.textContent=L,P.append(S)}e.client.view&&await e.enqueue(e.client.view)}catch(T){if(c!==f||e.stopped)return;s?.destroy(),s=null,P.replaceChildren(),e.fail(T)}}async function d(){if(!p||e.stopped||!e.client.review)return;let r=++f;try{if(await e.client.review(),e.stopped||r!==f)return;p=!1,f++,s?.destroy(),s=null,P.replaceChildren(),P.hidden=!0,n.hidden=!1;let c=e.client.view;C(c)!==o?(D.set(o,structuredClone(e.answers)),e.resetScreen()):(D.delete(o),e.suspend(!1)),c&&await e.enqueue(c)}catch(c){if(r!==f||e.stopped)return;s?.destroy(),s=null,P.replaceChildren(),e.fail(c)}}return{get active(){return p},get receipt(){return u},open:$,exit:d,get drafts(){return new Map([...D].map(([r,c])=>[r,structuredClone(c)]))},stop(){p=!1,f++,s?.destroy(),s=null,P.replaceChildren(),P.hidden=!0,n.hidden=!1}}}function De(e){if(!e.client.pageExperiments)throw new Error("The Run controller does not support page experiments");let b=e.client.pageExperiments.bind(e.client),n=!1,P=!1,y=0,p=!1,u=!1,f,s=new Map,o=new Set,D={},C=new Map,$=he(e.appManifestRelease),d=()=>{for(let g of s.values())g.effect.revert();s.clear();for(let g of C.values())g();C.clear()};function r(g){n||o.has(g)||(o.add(g),b(e.appManifestRelease,[g]).catch(V=>{o.delete(g),z(e.onError,V)}))}async function c(){if(n)return;let g=e.client.view;if(!g||g.stopped||!["running","waiting"].includes(g.status)){y++,d();return}if(p){u=!0;return}p=!0;let V=++y,L=`${g.id}:${g.visit}:${g.revision}`,S=location.href;try{let[_,{applyVisualVariation:x}]=await Promise.all([b(e.appManifestRelease),import("./visual-dom-DQLPBZ2Z.js")]),J=e.client.view;if(n||V!==y||!J||J.stopped||!["running","waiting"].includes(J.status)||`${J.id}:${J.visit}:${J.revision}`!==L||location.href!==S)return;let j=new Set,q=new Set;for(let i of _.assignments){let a=`${_.payload.environmentId}:${i.experimentKey}`;if(q.add(a),C.has(a)||C.set(a,be(a,D)),!!i.inExperiment)for(let l of _.payload.experiments){if(l.key!==i.experimentKey||!de(location.href,l.urlPatterns??[]))continue;let I=l.meta?.findIndex(H=>H.key===i.variationKey)??-1,w=l.variations[I];if(!w?.renderGuard)continue;let v=i.receiptId+":"+l.changeId,h=JSON.stringify([i.variationKey,w]);j.add(v);let k=s.get(v);if(k?.signature===h){k.effect.applied&&r(i.receiptId);continue}s.get(v)?.effect.revert(),s.delete(v);let E=x(w,{requireUniqueTargets:!0,boundVariations:l.variations,allowJs:!1,onApplied:()=>r(i.receiptId),onError:H=>z(e.onError,H)});s.set(v,{signature:h,effect:E}),E.applied&&r(i.receiptId)}}for(let[i,a]of s)j.has(i)||(a.effect.revert(),s.delete(i));for(let[i,a]of C)q.has(i)||(a(),C.delete(i))}catch(_){V===y&&d(),z(e.onError,_)}finally{p=!1,u&&!n&&(u=!1,c())}}let T=e.client.subscribe(()=>{y++,c()}),A=Ie(()=>{y++,d(),c()}),O=async()=>{await c(),n||(f=setTimeout(()=>{O()},15e3))};return{async start(){P||n||(P=!0,await O())},refresh:c,destroy(){n=!0,y++,clearTimeout(f),T(),A(),d(),$.destroy()}}}async function rn(e,b){let n=b,{mountScreenPreview:P}=await import("./screen-renderer-JMHV4GPP.js"),{showPaywall:y}=await import("./paywall-EJCNWDHK.js"),p=n.appManifestRelease?De({client:n.client,appManifestRelease:n.appManifestRelease,onError:n.onError}):void 0;p?.start();let u=e.ownerDocument,f=u.activeElement,s=u.createElement("section"),o=u.createElement("div"),D=u.createElement("div"),C=u.createElement("div"),$=u.createElement("button");C.hidden=!0,$.type="button";let d=u.createElement("p"),r=u.createElement("p"),c=u.createElement("button"),T=u.createElement("button"),A=u.createElement("button"),O=u.createElement("dialog");s.dataset.indianaFunnel="",s.setAttribute("aria-busy","false"),s.style.cssText="box-sizing:border-box;width:100%;min-width:0;font:14px/1.5 system-ui,sans-serif;color:#172033;background:#fff",D.style.cssText="display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 20px",d.setAttribute("role","status"),r.setAttribute("role","alert"),r.hidden=!0,c.type=T.type=A.type="button",D.append(c,d,r,A,$,T),s.append(o,C,D),e.append(s);let g=null,V=null,L=null,S="",_="",x="",J="",j="",q=!1,i=0,a=!1,l="",I=null,w=Promise.resolve(),v=null,h=null,k=new Set,E={},H=(t,R=null)=>{q||(h=R,r.textContent=t instanceof Error?t.message:"Request failed",r.hidden=!1,A.hidden=n.client.pendingCommand===null,z(n.onError,t))};function B(){let t=n.client.view;if(!t)throw new m("INVALID_REQUEST","No current Run is available");return{requestId:crypto.randomUUID(),nodeId:t.nodeId,visit:t.visit,revision:t.revision}}let F=Re({client:n.client,doc:u,holder:o,reviewHolder:C,mountScreenPreview:P,get stopped(){return q},get answers(){return E},suspend(t){V?.setSuspended(t)},resetScreen(){S="",_="",x=""},enqueue:Y,fail:H}),ee=Ee({client:n.client,expected:B,fail:H,get stopped(){return q},get reviewing(){return F.active},get key(){return S},get busy(){return i}}),ne=Pe({client:n.client,expected:B,perform:W,onIntent:n.onCustomerDataIntent,get stopped(){return q},get busy(){return i},get document(){return g?.document},get answers(){return E}}),oe=t=>t&&(t.screen||t.paywall)?`${t.id}:${t.nodeId}:${t.visit}`:"";function X(){let t=n.client.view;c.disabled=!F.active&&(i>0||!!n.client.pendingCommand||!t?.canBack||t.stopped||!["running","waiting"].includes(t.status)||!oe(t)||_!==oe(t))}async function W(t,R=!1){if(!(i&&!R||q||F.active&&!R)){i++,s.setAttribute("aria-busy","true"),X(),r.hidden=!0,h=null;try{if(!R&&ee.inFlight){let N=n.client.view;await ee.inFlight;let U=n.client.view;if(!N||!U||U.id!==N.id||U.nodeId!==N.nodeId||U.visit!==N.visit||U.stopped||!["running","waiting"].includes(U.status))throw new m("PRECONDITION_FAILED","The screen changed while its display was acknowledged")}if(q)return;let Q=await t();q||await Y(n.client.view??Q.run)}catch(Q){H(Q,n.client.pendingCommand?.requestId??null)}finally{i=Math.max(0,i-1),s.setAttribute("aria-busy",String(i>0)),q||(A.hidden=n.client.pendingCommand===null,X())}}}function te(){I&&clearTimeout(I),!(q||!L||!["running","waiting"].includes(L.status)&&!n.client.pendingCommand)&&(I=setTimeout(()=>{I=null,ce().finally(te)},L.pendingRequest||n.client.pendingCommand?1500:5e3))}async function ce(){if(!(q||a||i)){if(F.active){await F.open(F.receipt);return}a=!0;try{let t=n.client.pendingCommand;t&&n.client.settle&&await n.client.settle(t.requestId);let R=n.client.view,Q=ne.queries,N=await n.client.get(R?.screen&&Object.keys(Q).length?{nodeId:R.nodeId,visit:R.visit,revision:R.revision,components:Q}:void 0);!q&&Q===ne.queries&&await Y(n.client.view??N.run)}catch(t){H(t)}finally{a=!1}}}function Se(t){let R=t.screen?.presentation;if(!R||R.type==="inline"){O.open&&O.close(),s.parentElement!==e&&e.append(s);return}s.parentElement!==O&&(O.append(s),e.append(O));let Q={sm:420,md:640,lg:900};O.style.cssText=`padding:0;border:0;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto;width:${"size"in R?Q[R.size]+"px":"100vw"}`,O.setAttribute("aria-label",g?.document?.name??t.screen?.content.document.name??"Funnel"),O.open||O.showModal()}async function Fe(t){if(q)return;L=t,h&&n.client.pendingCommand?.requestId!==h&&(r.hidden=!0,h=null);let R=t.locale.startsWith("zh");if($.textContent=R?"\u56DE\u770B":"History",$.hidden=!n.client.review,c.textContent=F.active?R?"\u8FD4\u56DE\u5F53\u524D":"Return to current":R?"\u8FD4\u56DE":"Back",T.textContent=R?"\u5173\u95ED":"Close",A.textContent=R?"\u91CD\u8BD5":"Retry",X(),A.hidden=n.client.pendingCommand===null,d.textContent=t.pendingRequest?R?"\u6B63\u5728\u5904\u7406":"Processing":t.instruction?.type==="wait"?R?"\u7B49\u5F85\u4E2D":"Waiting":"",l!==`${t.revision}:${t.visit}:${t.status}:${t.stopped}`&&(l=`${t.revision}:${t.visit}:${t.status}:${t.stopped}`,z(n.onState,structuredClone(t))),!t.pendingRequest&&["closed","ineligible","failed"].includes(t.status)){Z();return}if(t.stopped||n.client.configurationReady===!1){F.stop(),g?.destroy(),g=null,V?.destroy(),V=null,o.replaceChildren(),S="",_="",x="",j="",O.open&&O.close(),s.hidden=!0,te();return}if(s.hidden=!1,F.active){te();return}let Q=oe(t);if(Q!==S&&(_="",g?.destroy(),g=null,V?.destroy(),V=null,o.replaceChildren(),S=Q,x="",j="",E={...t.answers},ne.reset()),Se(t),t.screen){let U=t.screen.content;g||(g=P(o,{mode:"live",rendererUrl:n.client.webViewUrl,title:U.document.name,onAction(G,se={},ae={}){if(F.active)return;E={...E,...ae};let Te=Object.fromEntries((t.screen?.inputs??[]).filter(({variable:re})=>Object.hasOwn(E,re)).map(({variable:re})=>[re,E[re]]));W(()=>n.client.submit({operation:"submit",...B(),input:{type:"screen",output:G,answers:Te,selection:se}}))},onAnswers:G=>{F.active||(E={...E,...G})},onCustomerDataIntent:G=>{F.active||ne.intent(G).catch(H)},onEscape:()=>{F.active||ie()},onError:G=>H(new Error(G)),onRendered:()=>ee.report(Q)}));let M={capabilities:t.screen.capabilities,customerData:t.screen.customerData,parameters:t.parameters,serverInput:{bindings:t.screen.inputs,answers:E,values:t.screen.values}},K=JSON.stringify([U,t.locale,M.parameters,t.screen.inputs,t.screen.values]);if(K!==x)g.update(U.document,t.locale,M),x=K,J=JSON.stringify(M.capabilities),j=JSON.stringify(M.customerData);else{let G=JSON.stringify(M.capabilities);G!==J&&(g.updateCapabilities(M.capabilities),J=G),JSON.stringify(M.customerData)!==j&&(g.updateCustomerData(M.customerData),j=JSON.stringify(M.customerData))}await g.ready}else if(t.paywall&&!V){let U=await y(o,{canInteract:()=>!F.active&&!q,start:async()=>Ce(n.client),onPurchase:n.onPurchase,onCheckoutUrl:n.onCheckoutUrl,resolveOfferId:n.resolveOfferId,onEvent:n.onEvent,onOpenUrl:M=>n.onOpenUrl?n.onOpenUrl({receiptId:t.paywall.receiptId,url:M,openIn:"same_window"}):u.defaultView?.location.assign(M),onAction:async M=>{if(F.active)return;let K=await n.client.submit({operation:"submit",requestId:crypto.randomUUID(),nodeId:t.nodeId,visit:t.visit,revision:t.revision,input:{type:"screen",output:M,answers:{}}});await Y(n.client.view??K.run)},onError:H,onDismiss:()=>{!F.active&&!q&&n.client.view?.visit===t.visit&&ie()}});q?U.host?.destroy():(V=U.host,V?.setSuspended(F.active)),ee.report(Q)}if(q)return;_=Q,X();let N=t.instruction;if(N&&(N.type==="open_url"||N.type==="event")&&!k.has(N.receiptId)){let U=u.createElement("button");U.type="button",U.textContent=N.type==="open_url"?`${R?"\u524D\u5F80":"Continue to"} ${new URL(N.url).host}`:R?"\u7EE7\u7EED":"Continue",U.onclick=()=>{let M=B(),K=N.type==="open_url"&&!n.onOpenUrl&&N.openIn==="new_window"?Ne(N.url):null;W(async()=>{let G="success";if(N.type==="open_url")if(n.onOpenUrl)try{G=await n.onOpenUrl({receiptId:N.receiptId,url:N.url,openIn:N.openIn})===!1?"failed":"opened"}catch(ae){z(n.onError,ae),G="failed"}else G=N.openIn==="new_window"&&!K?"failed":"opened";if(N.type==="event"){if(!n.onEvent)throw new m("EVENT_HANDLER_REQUIRED","Provide the event handler");await n.onEvent(N.event)}if(q||n.client.view?.nodeId!==M.nodeId||n.client.view.visit!==M.visit)throw new m("PRECONDITION_FAILED","The client action visit changed");let se=await n.client.submit({operation:"submit",...M,input:{type:"client_action",receiptId:N.receiptId,outcome:G}});return k.add(N.receiptId),N.type==="open_url"&&!n.onOpenUrl&&N.openIn==="same_window"&&u.defaultView?.location.assign(N.url),se})},o.replaceChildren(U)}!t.pendingRequest&&t.status==="completed"&&!k.has(`complete:${t.id}`)&&(k.add(`complete:${t.id}`),z(n.onComplete,structuredClone(t))),te()}function Ne(t){let R=u.defaultView?.open(t,"_blank")??null;return R&&(R.opener=null),R}function Y(t){return X(),w=w.catch(()=>{}).then(()=>Fe(t)),w}let Oe=n.client.subscribe(t=>{n.client.configurationReady===!1&&(s.hidden=!0,g?.destroy(),g=null,V?.destroy(),V=null,o.replaceChildren(),S="",_="",x="",j="",O.open&&O.close()),Y(t).catch(H)}),ke=n.client.subscribeError?.(H);function ie(){return v||(q?Promise.resolve():n.client.view&&!["running","waiting"].includes(n.client.view.status)?(Z(),Promise.resolve()):(v=W(()=>n.client.submit({operation:"close",...B()}),!0).then(()=>{n.client.view?.status==="closed"&&Z()}).finally(()=>{v=null}),v))}function Z(){p?.destroy(),!q&&(q=!0,I&&clearTimeout(I),Oe(),ke?.(),g?.destroy(),F.stop(),V?.destroy(),O.close(),O.remove(),s.remove(),f instanceof HTMLElement&&f.isConnected&&f.focus(),z(n.onDismiss,L?structuredClone(L):null))}c.onclick=()=>{if(!c.disabled){if(F.active){F.exit();return}W(()=>n.client.submit({operation:"back",...B()}))}},$.onclick=()=>{F.open()},T.onclick=()=>{ie()},A.onclick=()=>{W(()=>n.client.retry())},O.addEventListener("cancel",t=>{t.preventDefault(),ie()});try{let t=await n.client.get();await Y(n.client.view??t.run)}catch(t){throw Z(),t}return{destroy:Z,refresh:ce,review:F.open,exitReview:F.exit,get unappliedDrafts(){return F.drafts}}}export{De as a,rn as b};
1
+ import{a as ue,b as me,c as ye,d as ge,e as ve}from"./chunk-BEBSMWPR.js";import{M as fe,Y as le}from"./chunk-EK6IPAY5.js";import{ea as pe,oa as we,qa as m}from"./chunk-5BWSWP6H.js";import{b as he,e as be}from"./chunk-EARSGITJ.js";import{d as Ie}from"./chunk-ABL2UMTI.js";import{a as z}from"./chunk-DSPLGTQI.js";import{b as de}from"./chunk-BI4R5Q7Z.js";function Ce(e){let b=e.view;if(!b?.paywall)throw new m("INVALID_REQUEST","The current node is not a Paywall");let n=b.paywall.receiptId,P=b.nodeId,y=b.visit,p=b.paywall.resolution,u=p,f="document"in p?p:null;function s(i){if(!me(i,p))throw new m("INVALID_RESPONSE","The pinned Paywall binding changed")}let o=b.paywall.quote,D=b.paywall.operation,C=!1,$=new AbortController,d=b.paywall.purchaseRequestId,r=0,c=b.paywall.selectionGeneration??0,T=b.paywall.canReselect===!0,A=null,O=new Map,g=new Map,V=new Map;function L(i){if(i.purchase&&i.purchase.receiptId!==n)throw new m("INVALID_RESPONSE","Purchase receipt changed");let a=i.run.paywall;return i.purchase??(a?.receiptId===n?a:null)}function S(){if(C)throw new m("IDENTITY_CHANGED","Paywall presentation has closed")}function _(i,a,l){if(S(),a!==r||l!==void 0&&o?.operationId!==l)return!1;let I=c,w=i.run.paywall;if(w?.receiptId===n){if((w.selectionGeneration??0)<c)return!1;c=w.selectionGeneration??0,T=w.canReselect===!0,s(w.resolution)}let v=L(i),h=c>I,k=h?v?.quote??null:v?.quote??o,E=v?.operation??(k?.operationId===o?.operationId?D:null);return k&&E&&ye(E,{operationId:k.operationId},"Purchase operation changed"),w?.receiptId===n&&(u=w.resolution,f="document"in u?u:f?{...u,document:f.document,offering:f.offering,capabilities:ue(u.capabilities,f.capabilities)}:null),(h||k?.operationId!==o?.operationId)&&(r++,w?.receiptId===n&&(d=w.purchaseRequestId)),o=k,D=ve(D,E,!0),!0}function x(i,a,l){return new Promise((I,w)=>{let v=!1,h=()=>{clearTimeout(B),$.signal.removeEventListener("abort",H)},k=F=>{v||(v=!0,h(),I(F))},E=F=>{v||(v=!0,h(),w(F))},H=()=>E(new m("IDENTITY_CHANGED","Paywall presentation has closed")),B=setTimeout(()=>E(new m("COMMAND_PENDING","The purchase command is still pending; retry the original request",202,l)),Math.max(0,a-Date.now()));$.signal.addEventListener("abort",H,{once:!0}),$.signal.aborted&&H(),i.then(k,E)})}function J(i){return new Promise(a=>{let l=()=>{clearTimeout(I),$.signal.removeEventListener("abort",l),a()},I=setTimeout(l,i);$.signal.addEventListener("abort",l,{once:!0}),$.signal.aborted&&l()})}async function j(i,a,l){S();let I=O.get(i);if(!I){let h=e.pendingCommands?.find(k=>k.requestId===i)??e.pendingCommand;if(h?.operation==="submit"&&h.requestId===i&&h.nodeId===P&&h.visit===y){a.type==="paywall_quote"&&h.input.type==="paywall_quote"&&h.input.predecessor&&!a.predecessor&&(a={...a,predecessor:h.input.predecessor});let k=le.parse(h),E=le.parse({...h,input:a});if(E.operation!=="submit"||k.operation!=="submit"||JSON.stringify(E.input)!==JSON.stringify(k.input))throw new m("CONFLICT","A restored purchase request cannot change its input");a=E.input,I=k,O.set(i,I)}}if(I){if(JSON.stringify(I.input)!==JSON.stringify(a))throw new m("CONFLICT","A purchase request cannot change its input")}else{let h=e.view;if(!h||h.nodeId!==P||h.visit!==y||h.paywall?.receiptId!==n)throw new m("PRECONDITION_FAILED","The Paywall visit has changed");I={operation:"submit",requestId:i,nodeId:P,visit:y,revision:h.revision,input:a},O.set(i,I)}let w=Date.now()+3e4,v=await x(e.submit(I),w,i);for(;v.run.pendingRequest?.requestId===i&&Date.now()<w&&!C&&(await J(Math.min(1e3,w-Date.now())),!(C||Date.now()>=w));)v=await x(e.resume(i),w,i);if(C)throw new m("IDENTITY_CHANGED","Paywall presentation has closed");if(v.run.pendingRequest?.requestId===i)throw new m("COMMAND_PENDING","The purchase command is still pending; retry the original request",202,i);if(!_(v,l,a.type==="paywall_confirm"||a.type==="paywall_cancel"?a.operationId:void 0))throw new m("PRECONDITION_FAILED","The purchase selection has changed")}async function q(i){if(!o)throw new m("INVALID_REQUEST","A quoted purchase is required");let a=`${i}:${o.operationId}`,l=g.get(a);if(!l){let I=i==="confirm"?"paywall_confirm":"paywall_cancel",w=e.pendingCommands?.find(v=>v.operation==="submit"&&v.input.type===I&&"operationId"in v.input&&v.input.operationId===o.operationId)??e.pendingCommand;l=w?.operation==="submit"&&w.input.type===I&&"operationId"in w.input&&w.input.operationId===o.operationId?w.requestId:crypto.randomUUID(),g.set(a,l)}if(await j(l,{type:i==="confirm"?"paywall_confirm":"paywall_cancel",operationId:o.operationId},r),!D)throw new m("INVALID_RESPONSE","The accepted purchase result is missing");return structuredClone(D)}return{get view(){return structuredClone(f)},get quote(){return o?structuredClone(o):null},get operation(){return D?structuredClone(D):null},get webViewUrl(){return e.webViewUrl},get canReselect(){return T},async refresh(){S();let i=r,a=await e.get();if(_(a,i),a.run.paywall?.receiptId!==n)throw new m("PRECONDITION_FAILED","Paywall presentation has changed");if(!f){if("document"in u||!e.resolvePaywall)throw new m("INVALID_RESPONSE","Public Paywall reader is unavailable");let l=await e.resolvePaywall(u);S(),s(l),f={...u,document:l.document,offering:l.offering,capabilities:ue(u.capabilities,l.capabilities)}}return structuredClone(f)},preview(i){if(!f)return Promise.reject(new m("PRECONDITION_FAILED","Load the Paywall presentation first"));if(d&&d!==i.requestId&&(A||!T))return Promise.reject(new m("COMMAND_PENDING","Retry the original purchase before starting another"));let a=f.document.buttons[i.actionId],l=a?.type==="checkout"?fe(a.product,i.selection,f.capabilities):null;if(!l)return Promise.reject(new m("PRODUCT_UNAVAILABLE","Choose an available Product in this purchase area"));let I=we(f.document.screen,l,i.selection,f.capabilities),w=JSON.stringify({actionId:i.actionId,product:l,featureQuantities:I,offerId:i.offerId,nativeOffer:i.nativeOffer});if(V.has(i.requestId)&&V.get(i.requestId)!==w)return Promise.reject(new m("CONFLICT","A purchase request cannot change its quantities or Product"));if(V.set(i.requestId,w),d===i.requestId&&A)return A;let v=d!==i.requestId&&c>0?{operationId:o?.operationId??null,generation:c}:void 0;if(v&&(!T||c<=0))return Promise.reject(new m("COMMAND_PENDING","Original purchase requires authoritative termination"));d!==i.requestId&&r++;let h=r;d=i.requestId;let k=(async()=>{if(await j(i.requestId,{type:"paywall_quote",actionId:i.actionId,productVersionId:l,...Object.keys(I).length?{featureQuantities:I}:{},...v?{predecessor:v}:{},...i.offerId?{offerId:i.offerId}:{},...i.nativeOffer?{nativeOffer:i.nativeOffer}:{}},h),!o)throw new m("INVALID_RESPONSE","The accepted quote is missing");return ge(o,{productVersionId:l,featureQuantities:I},"The selected purchase changed"),structuredClone(o)})();return A=k,k.then(()=>{A===k&&(A=null)},E=>{A===k&&(A=null),d===i.requestId&&e.pendingCommand?.requestId!==i.requestId&&E instanceof m&&E.status!==void 0&&E.status<500&&![401,425].includes(E.status)&&(d=null)}),k},confirm:()=>q("confirm"),cancel:()=>q("cancel"),async read(){if(S(),!o)throw new m("INVALID_REQUEST","A quoted purchase is required");let i=o.operationId,a=r,l=e.pendingCommands?.find(h=>h.operation==="submit"&&(h.input.type==="paywall_confirm"||h.input.type==="paywall_cancel")&&h.input.operationId===i)??e.pendingCommand;l?.operation==="submit"&&(l.input.type==="paywall_confirm"||l.input.type==="paywall_cancel")&&l.input.operationId===i&&await e.settle?.(l.requestId);let I=await e.get(void 0,{receiptId:n,operationId:i});S();let w=L(I);if(w?.quote&&w.quote.operationId!==i||w?.operation&&w.operation.operationId!==i)throw new m("INVALID_RESPONSE","Purchase operation changed");let v=_(I,a,i)?D:w?.operation;if(!v)throw new m("INVALID_RESPONSE","The current purchase result is missing");return structuredClone(v)},destroy(){C=!0,$.abort(),O.clear(),g.clear(),V.clear()}}}function Ee(e){let b=new Set,n=new Set,P=null;function y(p){if(e.reviewing||b.has(p)||n.has(p)||e.stopped)return;n.add(p);let u=async()=>{if(e.reviewing||e.stopped||e.key!==p){n.delete(p);return}if(e.busy||e.client.pendingCommand){setTimeout(()=>{u()},250);return}let f=(async()=>{let o=e.client.view,D=e.expected(),C=D.requestId,$=!1;try{await e.client.submit({operation:"shown",...D})}catch(d){if(!(d instanceof m)||d.code!=="CONFLICT"||d.status!==409||e.client.pendingCommand)throw d;await e.client.get();let r=e.client.view;if(e.stopped||e.reviewing||e.key!==p||!r||!o||r.id!==o.id||r.source.versionId!==o.source.versionId||r.nodeId!==D.nodeId||r.visit!==D.visit||r.revision<=D.revision||r.stopped||!r.screen||!["running","waiting"].includes(r.status)||e.client.pendingCommand)throw d;let c=e.expected();C=c.requestId,await e.client.submit({operation:"shown",...c})}for(;!e.stopped&&e.key===p&&e.client.pendingCommand?.requestId===C;){if(!e.client.settle)throw new m("COMMAND_PENDING","The original display acknowledgement is still pending");await e.client.settle(C),$=!0,e.client.pendingCommand?.requestId===C&&await new Promise(d=>setTimeout(d,1500))}e.stopped||e.key!==p||($&&await e.client.get(),!(e.stopped||e.key!==p)&&b.add(p))})();P=f;let s=()=>{P===f&&(P=null),n.delete(p)};f.then(s,o=>{s(),e.busy||e.fail(o)})};u()}return{report:y,get inFlight(){return P}}}function Pe(e){let b={},n=new Map;async function P(y){let p=e.client.view,u=p?.screen,f=u?.customerData.nodes[y.nodeId];if(e.stopped||e.busy||!p||!u||!f)return;if(!["refresh","next","previous","filter","sources_next","sources_previous"].includes(y.action)){let r=e.document,c=r?pe(r,y.nodeId):null,T=c?.type==="customer_data"?c.data.outputs?.[y.action]:void 0;T&&u.outputs.includes(T)?await e.perform(()=>e.client.submit({operation:"submit",...e.expected(),input:{type:"screen",output:T,answers:e.answers,selection:y.value?{[y.nodeId]:y.value}:{}}})):await e.onIntent?.(y,p);return}let o=y.action.startsWith("sources_")?f.resources.find(r=>r.key===y.value):null;if(y.action.startsWith("sources_")&&!o)throw new m("INVALID_REQUEST","Choose a current resource");let D=`${p.visit}:${y.nodeId}:${o?.key??""}`,C=n.get(D)??[null],d=b[y.nodeId]??{page:1,after:null,filter:"all",...o?{resourceKey:o.key}:{}};if(y.action==="filter"){let r=y.value;if(!r||!(f.source==="offer_history"?["all","issued","reserved","redeemed","expired","revoked"]:["all","purchase","refund","source","usage","debt","settlement"]).includes(r))throw new m("INVALID_REQUEST","Unknown data filter");d={page:1,after:null,filter:r},C.splice(0,C.length,null)}else if(y.action==="next"||y.action==="sources_next"){let r=o?.sources.at(-1),c=o?r?{kind:"ledger",cursor:{at:r.detail[0],id:r.id,type:"source"}}:null:u.dataCursors[y.nodeId];if(!c||!o&&!f.hasNext)return;C[d.page]=c,d={...d,page:d.page+1,after:c}}else if(y.action==="previous"||y.action==="sources_previous"){if(d.page<=1)return;d={...d,page:d.page-1,after:C[d.page-2]??null}}n.set(D,C),b={...b,[y.nodeId]:d},await e.perform(()=>e.client.get({nodeId:p.nodeId,visit:p.visit,revision:p.revision,components:b}))}return{get queries(){return b},intent:P,reset(){b={},n.clear()}}}function Re(e){let{doc:b,holder:n,reviewHolder:P,mountScreenPreview:y}=e,p=!1,u,f=0,s=null,o="",D=new Map,C=r=>r?`${r.id}:${r.nodeId}:${r.visit}:${r.revision}:${r.paywall?.quote?.operationId??""}`:"";async function $(r){if(e.stopped||!e.client.review)return;p||(o=C(e.client.view),D.set(o,structuredClone(e.answers))),p=!0,u=r,n.hidden=!0,e.suspend(!0),P.hidden=!1;let c=++f;try{let T=await e.client.review(r);if(e.stopped||c!==f||!p)return;if(!T.review)throw new m("INVALID_RESPONSE","Historical projection is missing");s?.destroy(),s=null,P.replaceChildren();let A=T.run.locale.startsWith("zh"),O=b.createElement("p");O.textContent=A?"\u53EA\u8BFB\u56DE\u770B":"Read-only history",P.append(O);for(let[L,S]of T.review.pages.entries()){let _=b.createElement("button");_.type="button",_.textContent=A?`\u7B2C ${L+1} \u9875`:`Page ${L+1}`,_.onclick=()=>{$(S.receiptId)},P.append(_)}if(T.review.page){let L=T.review.page,S=b.createElement("div");if(S.inert=!0,P.append(S),s=y(S,{mode:"live",rendererUrl:e.client.webViewUrl,title:L.document.name,onAction:()=>{},onAnswers:()=>{},onCustomerDataIntent:()=>{},onRendered:()=>{},onEscape:()=>{d()}}),s.update(L.document,T.run.locale,{serverInput:{bindings:L.inputs,answers:L.answers,values:L.values}}),await s.ready,e.stopped||c!==f||!p)return}let g=A?{issued:"\u5DF2\u9886\u53D6",reserved:"\u5DF2\u9884\u7559",redeemed:"\u5DF2\u4F7F\u7528",expired:"\u5DF2\u8FC7\u671F",revoked:"\u5DF2\u64A4\u9500",unknown:"\u72B6\u6001\u5F85\u786E\u8BA4"}:{issued:"Issued",reserved:"Reserved",redeemed:"Used",expired:"Expired",revoked:"Revoked",unknown:"Status unconfirmed"},V=A?{pending:"\u5904\u7406\u4E2D",complete:"\u5DF2\u5B8C\u6210",cancelled:"\u5DF2\u53D6\u6D88",failed:"\u5931\u8D25",unknown:"\u72B6\u6001\u5F85\u786E\u8BA4"}:{pending:"Processing",complete:"Completed",cancelled:"Cancelled",failed:"Failed",unknown:"Status unconfirmed"};for(let L of[...T.review.coupons.map((S,_)=>`${A?"\u4F18\u60E0\u5238":"Coupon"} ${_+1}: ${g[S.status]}`),...T.review.purchases.map((S,_)=>`${A?"\u8D2D\u4E70":"Purchase"} ${_+1}: ${V[S.status]}`)]){let S=b.createElement("p");S.textContent=L,P.append(S)}e.client.view&&await e.enqueue(e.client.view)}catch(T){if(c!==f||e.stopped)return;s?.destroy(),s=null,P.replaceChildren(),e.fail(T)}}async function d(){if(!p||e.stopped||!e.client.review)return;let r=++f;try{if(await e.client.review(),e.stopped||r!==f)return;p=!1,f++,s?.destroy(),s=null,P.replaceChildren(),P.hidden=!0,n.hidden=!1;let c=e.client.view;C(c)!==o?(D.set(o,structuredClone(e.answers)),e.resetScreen()):(D.delete(o),e.suspend(!1)),c&&await e.enqueue(c)}catch(c){if(r!==f||e.stopped)return;s?.destroy(),s=null,P.replaceChildren(),e.fail(c)}}return{get active(){return p},get receipt(){return u},open:$,exit:d,get drafts(){return new Map([...D].map(([r,c])=>[r,structuredClone(c)]))},stop(){p=!1,f++,s?.destroy(),s=null,P.replaceChildren(),P.hidden=!0,n.hidden=!1}}}function De(e){if(!e.client.pageExperiments)throw new Error("The Run controller does not support page experiments");let b=e.client.pageExperiments.bind(e.client),n=!1,P=!1,y=0,p=!1,u=!1,f,s=new Map,o=new Set,D={},C=new Map,$=he(e.appManifestRelease),d=()=>{for(let g of s.values())g.effect.revert();s.clear();for(let g of C.values())g();C.clear()};function r(g){n||o.has(g)||(o.add(g),b(e.appManifestRelease,[g]).catch(V=>{o.delete(g),z(e.onError,V)}))}async function c(){if(n)return;let g=e.client.view;if(!g||g.stopped||!["running","waiting"].includes(g.status)){y++,d();return}if(p){u=!0;return}p=!0;let V=++y,L=`${g.id}:${g.visit}:${g.revision}`,S=location.href;try{let[_,{applyVisualVariation:x}]=await Promise.all([b(e.appManifestRelease),import("./visual-dom-YGLIHSKU.js")]),J=e.client.view;if(n||V!==y||!J||J.stopped||!["running","waiting"].includes(J.status)||`${J.id}:${J.visit}:${J.revision}`!==L||location.href!==S)return;let j=new Set,q=new Set;for(let i of _.assignments){let a=`${_.payload.environmentId}:${i.experimentKey}`;if(q.add(a),C.has(a)||C.set(a,be(a,D)),!!i.inExperiment)for(let l of _.payload.experiments){if(l.key!==i.experimentKey||!de(location.href,l.urlPatterns??[]))continue;let I=l.meta?.findIndex(H=>H.key===i.variationKey)??-1,w=l.variations[I];if(!w?.renderGuard)continue;let v=i.receiptId+":"+l.changeId,h=JSON.stringify([i.variationKey,w]);j.add(v);let k=s.get(v);if(k?.signature===h){k.effect.applied&&r(i.receiptId);continue}s.get(v)?.effect.revert(),s.delete(v);let E=x(w,{requireUniqueTargets:!0,boundVariations:l.variations,allowJs:!1,onApplied:()=>r(i.receiptId),onError:H=>z(e.onError,H)});s.set(v,{signature:h,effect:E}),E.applied&&r(i.receiptId)}}for(let[i,a]of s)j.has(i)||(a.effect.revert(),s.delete(i));for(let[i,a]of C)q.has(i)||(a(),C.delete(i))}catch(_){V===y&&d(),z(e.onError,_)}finally{p=!1,u&&!n&&(u=!1,c())}}let T=e.client.subscribe(()=>{y++,c()}),A=Ie(()=>{y++,d(),c()}),O=async()=>{await c(),n||(f=setTimeout(()=>{O()},15e3))};return{async start(){P||n||(P=!0,await O())},refresh:c,destroy(){n=!0,y++,clearTimeout(f),T(),A(),d(),$.destroy()}}}async function rn(e,b){let n=b,{mountScreenPreview:P}=await import("./screen-renderer-KOKMHO6R.js"),{showPaywall:y}=await import("./paywall-EYRLWKC5.js"),p=n.appManifestRelease?De({client:n.client,appManifestRelease:n.appManifestRelease,onError:n.onError}):void 0;p?.start();let u=e.ownerDocument,f=u.activeElement,s=u.createElement("section"),o=u.createElement("div"),D=u.createElement("div"),C=u.createElement("div"),$=u.createElement("button");C.hidden=!0,$.type="button";let d=u.createElement("p"),r=u.createElement("p"),c=u.createElement("button"),T=u.createElement("button"),A=u.createElement("button"),O=u.createElement("dialog");s.dataset.indianaFunnel="",s.setAttribute("aria-busy","false"),s.style.cssText="box-sizing:border-box;width:100%;min-width:0;font:14px/1.5 system-ui,sans-serif;color:#172033;background:#fff",D.style.cssText="display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 20px",d.setAttribute("role","status"),r.setAttribute("role","alert"),r.hidden=!0,c.type=T.type=A.type="button",D.append(c,d,r,A,$,T),s.append(o,C,D),e.append(s);let g=null,V=null,L=null,S="",_="",x="",J="",j="",q=!1,i=0,a=!1,l="",I=null,w=Promise.resolve(),v=null,h=null,k=new Set,E={},H=(t,R=null)=>{q||(h=R,r.textContent=t instanceof Error?t.message:"Request failed",r.hidden=!1,A.hidden=n.client.pendingCommand===null,z(n.onError,t))};function B(){let t=n.client.view;if(!t)throw new m("INVALID_REQUEST","No current Run is available");return{requestId:crypto.randomUUID(),nodeId:t.nodeId,visit:t.visit,revision:t.revision}}let F=Re({client:n.client,doc:u,holder:o,reviewHolder:C,mountScreenPreview:P,get stopped(){return q},get answers(){return E},suspend(t){V?.setSuspended(t)},resetScreen(){S="",_="",x=""},enqueue:Y,fail:H}),ee=Ee({client:n.client,expected:B,fail:H,get stopped(){return q},get reviewing(){return F.active},get key(){return S},get busy(){return i}}),ne=Pe({client:n.client,expected:B,perform:W,onIntent:n.onCustomerDataIntent,get stopped(){return q},get busy(){return i},get document(){return g?.document},get answers(){return E}}),oe=t=>t&&(t.screen||t.paywall)?`${t.id}:${t.nodeId}:${t.visit}`:"";function X(){let t=n.client.view;c.disabled=!F.active&&(i>0||!!n.client.pendingCommand||!t?.canBack||t.stopped||!["running","waiting"].includes(t.status)||!oe(t)||_!==oe(t))}async function W(t,R=!1){if(!(i&&!R||q||F.active&&!R)){i++,s.setAttribute("aria-busy","true"),X(),r.hidden=!0,h=null;try{if(!R&&ee.inFlight){let N=n.client.view;await ee.inFlight;let U=n.client.view;if(!N||!U||U.id!==N.id||U.nodeId!==N.nodeId||U.visit!==N.visit||U.stopped||!["running","waiting"].includes(U.status))throw new m("PRECONDITION_FAILED","The screen changed while its display was acknowledged")}if(q)return;let Q=await t();q||await Y(n.client.view??Q.run)}catch(Q){H(Q,n.client.pendingCommand?.requestId??null)}finally{i=Math.max(0,i-1),s.setAttribute("aria-busy",String(i>0)),q||(A.hidden=n.client.pendingCommand===null,X())}}}function te(){I&&clearTimeout(I),!(q||!L||!["running","waiting"].includes(L.status)&&!n.client.pendingCommand)&&(I=setTimeout(()=>{I=null,ce().finally(te)},L.pendingRequest||n.client.pendingCommand?1500:5e3))}async function ce(){if(!(q||a||i)){if(F.active){await F.open(F.receipt);return}a=!0;try{let t=n.client.pendingCommand;t&&n.client.settle&&await n.client.settle(t.requestId);let R=n.client.view,Q=ne.queries,N=await n.client.get(R?.screen&&Object.keys(Q).length?{nodeId:R.nodeId,visit:R.visit,revision:R.revision,components:Q}:void 0);!q&&Q===ne.queries&&await Y(n.client.view??N.run)}catch(t){H(t)}finally{a=!1}}}function Se(t){let R=t.screen?.presentation;if(!R||R.type==="inline"){O.open&&O.close(),s.parentElement!==e&&e.append(s);return}s.parentElement!==O&&(O.append(s),e.append(O));let Q={sm:420,md:640,lg:900};O.style.cssText=`padding:0;border:0;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto;width:${"size"in R?Q[R.size]+"px":"100vw"}`,O.setAttribute("aria-label",g?.document?.name??t.screen?.content.document.name??"Funnel"),O.open||O.showModal()}async function Fe(t){if(q)return;L=t,h&&n.client.pendingCommand?.requestId!==h&&(r.hidden=!0,h=null);let R=t.locale.startsWith("zh");if($.textContent=R?"\u56DE\u770B":"History",$.hidden=!n.client.review,c.textContent=F.active?R?"\u8FD4\u56DE\u5F53\u524D":"Return to current":R?"\u8FD4\u56DE":"Back",T.textContent=R?"\u5173\u95ED":"Close",A.textContent=R?"\u91CD\u8BD5":"Retry",X(),A.hidden=n.client.pendingCommand===null,d.textContent=t.pendingRequest?R?"\u6B63\u5728\u5904\u7406":"Processing":t.instruction?.type==="wait"?R?"\u7B49\u5F85\u4E2D":"Waiting":"",l!==`${t.revision}:${t.visit}:${t.status}:${t.stopped}`&&(l=`${t.revision}:${t.visit}:${t.status}:${t.stopped}`,z(n.onState,structuredClone(t))),!t.pendingRequest&&["closed","ineligible","failed"].includes(t.status)){Z();return}if(t.stopped||n.client.configurationReady===!1){F.stop(),g?.destroy(),g=null,V?.destroy(),V=null,o.replaceChildren(),S="",_="",x="",j="",O.open&&O.close(),s.hidden=!0,te();return}if(s.hidden=!1,F.active){te();return}let Q=oe(t);if(Q!==S&&(_="",g?.destroy(),g=null,V?.destroy(),V=null,o.replaceChildren(),S=Q,x="",j="",E={...t.answers},ne.reset()),Se(t),t.screen){let U=t.screen.content;g||(g=P(o,{mode:"live",rendererUrl:n.client.webViewUrl,title:U.document.name,onAction(G,se={},ae={}){if(F.active)return;E={...E,...ae};let Te=Object.fromEntries((t.screen?.inputs??[]).filter(({variable:re})=>Object.hasOwn(E,re)).map(({variable:re})=>[re,E[re]]));W(()=>n.client.submit({operation:"submit",...B(),input:{type:"screen",output:G,answers:Te,selection:se}}))},onAnswers:G=>{F.active||(E={...E,...G})},onCustomerDataIntent:G=>{F.active||ne.intent(G).catch(H)},onEscape:()=>{F.active||ie()},onError:G=>H(new Error(G)),onRendered:()=>ee.report(Q)}));let M={capabilities:t.screen.capabilities,customerData:t.screen.customerData,parameters:t.parameters,serverInput:{bindings:t.screen.inputs,answers:E,values:t.screen.values}},K=JSON.stringify([U,t.locale,M.parameters,t.screen.inputs,t.screen.values]);if(K!==x)g.update(U.document,t.locale,M),x=K,J=JSON.stringify(M.capabilities),j=JSON.stringify(M.customerData);else{let G=JSON.stringify(M.capabilities);G!==J&&(g.updateCapabilities(M.capabilities),J=G),JSON.stringify(M.customerData)!==j&&(g.updateCustomerData(M.customerData),j=JSON.stringify(M.customerData))}await g.ready}else if(t.paywall&&!V){let U=await y(o,{canInteract:()=>!F.active&&!q,start:async()=>Ce(n.client),onPurchase:n.onPurchase,onCheckoutUrl:n.onCheckoutUrl,resolveOfferId:n.resolveOfferId,onEvent:n.onEvent,onOpenUrl:M=>n.onOpenUrl?n.onOpenUrl({receiptId:t.paywall.receiptId,url:M,openIn:"same_window"}):u.defaultView?.location.assign(M),onAction:async M=>{if(F.active)return;let K=await n.client.submit({operation:"submit",requestId:crypto.randomUUID(),nodeId:t.nodeId,visit:t.visit,revision:t.revision,input:{type:"screen",output:M,answers:{}}});await Y(n.client.view??K.run)},onError:H,onDismiss:()=>{!F.active&&!q&&n.client.view?.visit===t.visit&&ie()}});q?U.host?.destroy():(V=U.host,V?.setSuspended(F.active)),ee.report(Q)}if(q)return;_=Q,X();let N=t.instruction;if(N&&(N.type==="open_url"||N.type==="event")&&!k.has(N.receiptId)){let U=u.createElement("button");U.type="button",U.textContent=N.type==="open_url"?`${R?"\u524D\u5F80":"Continue to"} ${new URL(N.url).host}`:R?"\u7EE7\u7EED":"Continue",U.onclick=()=>{let M=B(),K=N.type==="open_url"&&!n.onOpenUrl&&N.openIn==="new_window"?Ne(N.url):null;W(async()=>{let G="success";if(N.type==="open_url")if(n.onOpenUrl)try{G=await n.onOpenUrl({receiptId:N.receiptId,url:N.url,openIn:N.openIn})===!1?"failed":"opened"}catch(ae){z(n.onError,ae),G="failed"}else G=N.openIn==="new_window"&&!K?"failed":"opened";if(N.type==="event"){if(!n.onEvent)throw new m("EVENT_HANDLER_REQUIRED","Provide the event handler");await n.onEvent(N.event)}if(q||n.client.view?.nodeId!==M.nodeId||n.client.view.visit!==M.visit)throw new m("PRECONDITION_FAILED","The client action visit changed");let se=await n.client.submit({operation:"submit",...M,input:{type:"client_action",receiptId:N.receiptId,outcome:G}});return k.add(N.receiptId),N.type==="open_url"&&!n.onOpenUrl&&N.openIn==="same_window"&&u.defaultView?.location.assign(N.url),se})},o.replaceChildren(U)}!t.pendingRequest&&t.status==="completed"&&!k.has(`complete:${t.id}`)&&(k.add(`complete:${t.id}`),z(n.onComplete,structuredClone(t))),te()}function Ne(t){let R=u.defaultView?.open(t,"_blank")??null;return R&&(R.opener=null),R}function Y(t){return X(),w=w.catch(()=>{}).then(()=>Fe(t)),w}let Oe=n.client.subscribe(t=>{n.client.configurationReady===!1&&(s.hidden=!0,g?.destroy(),g=null,V?.destroy(),V=null,o.replaceChildren(),S="",_="",x="",j="",O.open&&O.close()),Y(t).catch(H)}),ke=n.client.subscribeError?.(H);function ie(){return v||(q?Promise.resolve():n.client.view&&!["running","waiting"].includes(n.client.view.status)?(Z(),Promise.resolve()):(v=W(()=>n.client.submit({operation:"close",...B()}),!0).then(()=>{n.client.view?.status==="closed"&&Z()}).finally(()=>{v=null}),v))}function Z(){p?.destroy(),!q&&(q=!0,I&&clearTimeout(I),Oe(),ke?.(),g?.destroy(),F.stop(),V?.destroy(),O.close(),O.remove(),s.remove(),f instanceof HTMLElement&&f.isConnected&&f.focus(),z(n.onDismiss,L?structuredClone(L):null))}c.onclick=()=>{if(!c.disabled){if(F.active){F.exit();return}W(()=>n.client.submit({operation:"back",...B()}))}},$.onclick=()=>{F.open()},T.onclick=()=>{ie()},A.onclick=()=>{W(()=>n.client.retry())},O.addEventListener("cancel",t=>{t.preventDefault(),ie()});try{let t=await n.client.get();await Y(n.client.view??t.run)}catch(t){throw Z(),t}return{destroy:Z,refresh:ce,review:F.open,exitReview:F.exit,get unappliedDrafts(){return F.drafts}}}export{De as a,rn as b};